當我單擊發票預覽上的確定按鈕時,出現「運行時錯誤」3615「類型在表達式中不匹配」。DoCmd.OpenReport上的錯誤
我打開主菜單>>選擇一個工單ID >>點擊發票預覽>>接受默認信息>>點擊確定。當我這樣做時,我得到了上述錯誤。我無法弄清楚它爲什麼會發生,並且在兩個地方都改變了字段類型,並且認爲我錯誤地編碼了各種不同格式的VBA代碼。
是否有人可以幫助我得到錯誤的底部...
鏈接刪除...
當我單擊發票預覽上的確定按鈕時,出現「運行時錯誤」3615「類型在表達式中不匹配」。DoCmd.OpenReport上的錯誤
我打開主菜單>>選擇一個工單ID >>點擊發票預覽>>接受默認信息>>點擊確定。當我這樣做時,我得到了上述錯誤。我無法弄清楚它爲什麼會發生,並且在兩個地方都改變了字段類型,並且認爲我錯誤地編碼了各種不同格式的VBA代碼。
是否有人可以幫助我得到錯誤的底部...
鏈接刪除...
當您單擊該按鈕,這是btnInvoicePreview_Click()線觸發錯誤#3615,「表達式中的類型不匹配」。
DoCmd.OpenReport "Invoice", acPreview
錯誤的發生是由於在發票報表的記錄源查詢這一條款。
FROM
Employee
RIGHT JOIN
(
Client
INNER JOIN [Work Order]
ON Client.ClientID = [Work Order].ClientID
)
ON Employee.EmployeeID = [Work Order].EmployeeID
Employee.EmployeeID
是自動編號,這意味着它的基本數據類型是長整型。但[Work Order].EmployeeID
是文本數據類型。所以你得到「類型不匹配」錯誤,因爲查詢要求加入一個帶有文本字段的數字字段。
兩種方式來解決這個問題...
ON Employee.EmployeeID = CLng([Work Order].EmployeeID)
;或ON CStr(Employee.EmployeeID) = [Work Order].EmployeeID
第一種方法可能需要改變其它數據庫對象(查詢,窗體,報表),使他們不因場數據類型的變化打破。我不知道這會是多麼廣泛(也是痛苦)。
第二種方法可以工作,但Access查詢設計器將不再能夠在設計視圖中顯示聯接條件。如果您需要轉換的值與您需要轉換的值不兼容,則會存在更大的問題。例如,所有這些拋出錯誤:CLng(Null)
; CLng("")
; CLng("foo")
謝謝......現在我可以修復我的報告問題,但至少會顯示出來。大聲笑! :) 謝謝 –