為改進 Microsoft Access 和透過 Connector/ODBC 的 MySQL 之間的整合
對於所有版本的 Access,啟用 Connector/ODBC 的
傳回符合的資料列
選項。對於 Access 2.0,也啟用模擬 ODBC 1.0
選項。在所有您想要能夠更新的表格中包含
TIMESTAMP
資料行。為了達到最大的可攜性,請勿在資料行宣告中使用長度規格 (在 4.1 之前的 MySQL 版本中不支援)。在您想要與 Access 搭配使用的每個 MySQL 表格中包含一個主鍵。如果沒有,新增或更新的資料列可能會顯示為
#DELETED#
。僅使用
DOUBLE
浮點數欄位。Access 在與單精度浮點數比較時會失敗。症狀通常是新增或更新的資料列可能會顯示為#DELETED#
,或您無法找到或更新資料列。-
如果您使用 Connector/ODBC 來連結到具有
BIGINT
資料行的表格,結果會顯示為#DELETED#
。解決方法是新增一個資料類型為
TIMESTAMP
的虛擬資料行。在 ODBC DSN 管理員的連線對話方塊中,選取
將 BIGINT 資料行變更為 INT
選項。從 Access 中刪除表格連結並重新建立。
舊記錄可能仍然顯示為
#DELETED#
,但新新增/更新的記錄會正確顯示。 -
如果您在新增
TIMESTAMP
資料行後仍然收到錯誤另一個使用者已變更您的資料
,則下列技巧可能會對您有所幫助請勿使用
表格
資料工作表檢視。相反地,請建立一個包含您想要的欄位的表單,並使用該表單
資料工作表檢視。將TIMESTAMP
資料行的DefaultValue
屬性設定為NOW()
。考慮將TIMESTAMP
資料行從檢視中隱藏,以免使用者感到困惑。 在某些情況下,Access 可能會產生 MySQL 無法理解的 SQL 陳述式。您可以從 Access 選單中選取
"查詢|SQL 特定|傳遞"
來修正此問題。在 Windows NT 上,Access 會將
BLOB
資料行回報為OLE OBJECTS
。如果您想要有MEMO
資料行,請使用ALTER TABLE
將BLOB
資料行變更為TEXT
。Access 並非總是能正確處理 MySQL 的
DATE
資料行。如果您遇到這些問題,請將資料行變更為DATETIME
。如果您在 Access 中有一個定義為
BYTE
的資料行,Access 會嘗試將其匯出為TINYINT
而不是TINYINT UNSIGNED
。如果您的資料行中有大於 127 的值,這會導致問題。-
如果您在 Access 中有非常大 (長) 的表格,則開啟它們可能需要很長的時間。或者您可能會用完虛擬記憶體,最終出現
ODBC 查詢失敗
錯誤,且無法開啟表格。為了處理此問題,請選取下列選項傳回符合的資料列 (2)
允許 BIG 結果 (8)。
這些加起來的值為 10 (
OPTION=10
)。
一些在您使用 Access、ODBC 和 Connector/ODBC 時可能有用的外部文章和提示
-
最佳化 Access ODBC 應用程式