Я работаю в базе данных для моей работы, и я пытаюсь вставить и обновить значения из таблиц с SQL внутри редактора VB Это мой код:MS Access Ошибка выполнения 3464
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
После попытки чтобы нажать кнопку, она сначала добавляет две записи и останавливается на третьем, просто чтобы выдать сообщение об ошибке «Runtime Error: 3464». После того, как я нажимаю debug, он отмечает строку DoCmd.RunSQL strSQL3
.
Буду признателен за любой ответ, который я получаю. Большое спасибо заранее.
Используйте 'Debug.Print strSQL3' для вывода текста из сложного оператора UPDATE в окно Immediate. Скопируйте этот текст и вставьте его в свой вопрос. – HansUp
'ArtikelNr' звучит, как будто он сокращен немецкий для номера статьи .. это правильно? Если типом данных этого поля является число, вы должны, вероятно, удалить эти одинарные кавычки, когда сопоставляете его с полем. Как это '' WHERE ArtikelNr = "& ArtikelNr &" AND Lager = '"& Lager & "';" ' –
Да, но не нужно ли возвращать его обратно в Integer? –