[英]MS Access runtime error 3464
我正在為我的工作開發一個數據庫,我正在嘗試在 vb 編輯器中使用 sql 從表中插入和更新值這是我的代碼:
Option Compare Database
Private Sub Übernehmen_Click()
Dim strSQL1 As String
Dim strSQL2 As String
Dim strSQL3 As String
Dim ArtikelNr As Integer
Dim Stück As Integer
Dim Lieferant As String
Dim Bestellnr As Integer
Dim EkPreis As String
Dim Mwst As String
Dim Einkaufsort As String
Dim GhIndex As String
Dim Datum As String
Dim Uhrzeit As String
Dim Lager As String
Dim Beschreibung As String
ArtikelNr = [Forms]![Einkauf]![ArtikelNr].Value
Stück = [Forms]![Einkauf]![Stück].Value
Lieferant = [Forms]![Einkauf]![Lieferant].Value
Bestellnr = [Forms]![Einkauf]![Bestellnr].Value
EkPreis = [Forms]![Einkauf]![EK-Preis].Value
Mwst = [Forms]![Einkauf]![Mwst-Satz].Value
Einkaufsort = [Forms]![Einkauf]![Einkaufsort].Value
GhIndex = [Forms]![Einkauf]![GH-Index].Value
Datum = [Forms]![Einkauf]![Datum].Value
Uhrzeit = [Forms]![Einkauf]![Uhrzeit].Value
Lager = [Forms]![Einkauf]![Lager].Value
strSQL1 = "INSERT INTO Einkäufe (ArtikelNr, Stück, Lieferant, Bestellnr, EKPreis, MwstSatz, Einkaufsort, GHIndex) VALUES (" & ArtikelNr & "," & Stück & ",'" & Lieferant & "','" & Bestellnr & "','" & EkPreis & "','" & Mwst & "','" & Einkaufsort & "','" & GhIndex & "');"
Beschreibung = DLast("EinkaufID", "Einkäufe")
strSQL2 = "INSERT INTO Transaktionen VALUES ('" & ArtikelNr & "','" & Datum & "','" & Lager & "','" & Stück & "','EinkaufID ' + '" & Beschreibung & "' ,'Einkauf',NULL,NULL,'" & Uhrzeit & "');"
strSQL3 = "UPDATE Lagerbestand SET Stück = Stück+" & Stück & " WHERE ArtikelNr = '" & ArtikelNr & "' AND Lager = '" & Lager & "';"
DoCmd.RunSQL strSQL1
DoCmd.RunSQL strSQL2
DoCmd.RunSQL strSQL3
End Sub
在嘗試按下按鈕后,它首先添加兩個條目並在第三個條目處停止,只是為了拋出一個錯誤,說“運行時錯誤:3464”。 在我按下調試后,它標記了DoCmd.RunSQL strSQL3
行。
我會很感激我得到的任何答案。 提前謝謝了。
“運行時錯誤 3464”的快速谷歌表明這是數據類型不匹配。 當您嘗試在字符串字段或類似字段中保存日期值時,您通常會看到這一點。
仔細檢查傳遞給 SQL 語句的類型是否與它們應保存到的列匹配 - 如果發現差異,則應用任何必要的轉換。
還有最后一個提醒……通過動態構建 SQL 字符串,您很容易受到 SQL 注入攻擊 - 您應該考慮使用帶有參數的 ADOCommands。
我的錯誤是嘗試將整數與字符串進行比較。 即使在創建新條目時 sql 確實將其從整數轉換為字符串,但如果您想在 where 中進行比較,它也不會轉換它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.