2012-08-27 235 views
1

我有一個MS Access 2010應用程序鏈接到MS SQL 2008在後端。MS Access 2010運行時錯誤'2467'

當我運行應用程序時,遇到運行時錯誤'2467' - 您輸入的表達式指的是一個關閉或不存在的對象。

當我選擇調試,行點:!

形式FRM_MAIN_HOME FRM_SUB_EDIT.Form.RecordSource =

我已經運行在SSMS查詢並工作正常。

我查找了遺漏的參考資料,並沒有任何。

當我使用Shift運行應用程序以呈現窗體時,出現不同的錯誤:數據類型在標準表達式中不匹配。這次我沒有調試選項,但我懷疑這是真正的問題。

還有一件事:當我在不同的數據庫上運行這個應用程序時,它加載時沒有錯誤。

任何幫助,非常感謝。

謝謝。


Forms!FRM_MAIN_HOME!FRM_SUB_EDIT.Form.RecordSource = _ 
    "SELECT V.VendorNumber, V.VendorName, T.DocumentNumber, " _ 
    & "T.DocumentDate, T.AmountInc, T.GSTClaim, T.GSTBatch " _ 
    & "FROM TBL_VENDOR_MASTER AS V INNER JOIN TBL_GST_01_TRANSACTIONS AS T " _ 
    & "ON V.AAVendorID = T.AAVendorID WHERE T.GSTBatch =" _ 
    & Me.BATCH_NUM & " ORDER BY V.VendorName" 

當我運行在SSMS這個代碼,它工作得很好。另外,當我選擇不同的數據庫時,它沒有任何錯誤。

+0

FRM_MAIN_HOME是否打開?這是啓動形式嗎?什麼查詢工作正常?當手動打開啓動表單並單步執行代碼時會發生什麼? – Fionnuala

+0

表單即將打開,我收到錯誤。該查詢從表中選擇一條記錄。當我手動打開表單時,我得到了不匹配數據類型的其他錯誤。 – mikimr

+0

什麼是查詢,我的意思是請發佈sql。一個需要的表格不應該打開,它必須打開。 – Fionnuala

回答

0

這個問題似乎爲表都相當大,與一些內存問題(和我的機器不是最快的......),但是MS Access運行時出現的錯誤消息(每當我點擊一個字段,一個選項卡或其他任何東西時,我會得到相同的錯誤,只是沒有調試選項),與我有MS Access不喜歡其中一個字段的表有關。

要解決此錯誤,我加載了一個較舊的備份,並開始更新某些列並測試MS Access,直到發現問題。此外,我添加了一些索引,並將ODBC的默認超時值更改爲註冊表中的0(無限制)。

這似乎解決了這個問題。

0

我準備打賭你在錯誤的事件中運行這個。您不能使用Open事件來引用表單上的控件。我不知道你爲什麼動態設置子表單記錄源。

記錄來源應該是:

SELECT V.VendorNumber, 
     V.VendorName, 
     T.DocumentNumber, 
     T.DocumentDate, 
     T.AmountInc, 
     T.GSTClaim, 
     T.GSTBatch 
FROM TBL_VENDOR_MASTER AS V 
INNER JOIN TBL_GST_01_TRANSACTIONS AS T 
ON V.AAVendorID = T.AAVendorID 
ORDER BY V.VendorName 

應設置鏈接區,像這樣:

Link child field : GSTBatch 
Link master field : BATCH_NUM 
+0

recordsource從數據庫中檢索一些記錄以顯示在應用程序中。不會改變代碼破壞與其他數據庫的操作?另外,如何設置鏈接字段? – mikimr

+0

鏈接字段是子窗體控件的屬性。子窗體由子窗體控件和包含的窗體組成。如何訪問子窗體控件的屬性取決於您正在使用的MS訪問版本的某種程度的擴展。如果您有穩定的手,則可以單擊包含表單外部的細線。當您看到數據選項卡上的鏈接字段時,您會知道您擁有正確的控件,該控件將被稱爲FRM_SUB_EDIT。 – Fionnuala

+0

謝謝,但這不起作用。我在FRM_SUB_EDIT中設置了鏈接字段,當我運行應用程序並選擇我的數據庫時,彈出式窗口要求輸入參數GSTBatch,然後輸入Batch_Num。 – mikimr