0
我試圖編寫一個按鈕來更新基於用戶輸入的ID的行。該ID是由該表生成的自動編號字段。用戶可以使用另一個按鈕創建行,但是當他們需要修復錯誤時,我希望他們能夠使用正確的信息更新行。但是,我的代碼給了我標題中的錯誤。訪問VBA:查詢輸入必須包含至少一個表或查詢
這是「更新」按鈕:
Private Sub Command133_Click()
Dim dbsCurrent As Database
Set dbsCurrent = CurrentDb
dbsCurrent.Execute " INSERT INTO tbl_Downtime " _
& "(job, suffix, production_date, reason, downtime_minutes, comment) VALUES " _
& "('" & Me.Text116 & "','" & Me.Text118 & "','" & Me.Text126 & "','" & Me.Text121 & "','" & Me.Text123 & "','" & Me.Text128 & "') WHERE ID='" & Me.Text135 & "';"
Call ClearControl(Me.Text116)
Call ClearControl(Me.Text118)
Call ClearControl(Me.Text126)
Call ClearControl(Me.Text121)
Call ClearControl(Me.Text123)
Call ClearControl(Me.Text128)
End Sub
此語法存在問題 - 從SELECT語句開始的所有內容都是紅色的。 – whatwhatwhat
我玩過並嘗試過:'dbsCurrent.Execute「INSERT INTO tbl_Downtime(job,suffix,production_date,reason,downtime_minutes,comment)SELECT'」&Me.Text116&「','」&Me.Text118& ','&Me.Text126&'','「&Me.Text121&」','「&Me.Text123&」','「&Me.Text128&」'從tbl_Downtime作爲t WHERE t.ID = ''&Me.Text135 & "';「' - 全部在一行(因爲我不想處理那些額外的下劃線,你需要在VBA中使用)但現在我又遇到了另一個錯誤:'數據類型不匹配在標準表達式中。'任何提示? – whatwhatwhat
這可能是因爲你傳遞的是text/char數據類型的文本框值,如果production_date字段是日期時間,而downtime_minutes是數字,你必須使用'CDate ()'和'CINT()'函數來轉換它們,你應該仔細檢查你的其他字段的數據類型,看看你是否需要做其他轉換 – Yllzarith