【发布时间】:2015-06-22 17:08:27
【问题描述】:
问题:我不断收到以下语句的语法错误:
CurrentDb.Execute "INSERT INTO Inventory ([Part #], [Year], [Week], [In], [Out]) " _
& "VALUES ('" & Me.txtFindPart & "'," & Me.txtYear & "," & i & "," _
& Me.Controls("in" & i) & "," & Me.Controls("out" & i) & ");"
现在我有一种感觉,是 Me.Controls 函数不断抛出此错误,但我无法让它消失。
上下文:这是一个更新按钮,它检查是否有记录,表单中的两个空格是否为空和 strong> 如果这两个条件都不满足,它将创建一个新记录。
现在发生这种情况时,文本框 in# 和 out# 中的数据将用于创建新记录。
守则:
Dim i As Integer
i = 1
Do Until i = 53
If DCount("[Part #]", "[Inventory]", "([Inventory].[Part #] = '" & txtFindPart & "' AND [Inventory].[Year] = " & txtYear & " AND [Inventory].[Week] = " & i & ")") > 0 Then
CurrentDb.Execute "UPDATE Inventory SET [In] = '" & Me.Controls("in" & i) & "' WHERE [Part #] = '" & txtFindPart & "' AND [Year] = " & txtYear & " AND [Week] = " & i & ";"
CurrentDb.Execute "UPDATE Inventory SET [Out] = '" & Me.Controls("out" & i) & "' WHERE [Part #] = '" & txtFindPart & "' AND [Year] = " & txtYear & " AND [Week] = " & i & ";"
i = i + 1
ElseIf Me.Controls("in" & i) = Null And Me.Controls("out" & i) = Null Then
i = i + 1
Else
CurrentDb.Execute "INSERT INTO Inventory ([Part #], [Year], [Week], [In], [Out]) " _
& "VALUES ('" & Me.txtFindPart & "'," & Me.txtYear & "," & i & "," _
& Me.Controls("in" & i) & "," & Me.Controls("out" & i) & ");"
i = i + 1
End If
Loop
Me.Requery
【问题讨论】:
-
您的表单上是否真的有名为:
in1, in2, in3, in4...和out1, out2, out3, out4...的文本框?您是否还会收到特定的语法错误? -
运行时错误 '3134' INSERT INTO 语句中的语法错误。
-
@user2517352:将
CurrentDb.Execute替换为Debug.Print。这会将您所有的实际 SQL 语句输出到即时窗口中。然后,编辑您的问题并粘贴一两条 SQL 语句,以便我们可以看到实际执行的 SQL。 -
当我替换代码并单击我的按钮时,它什么也没做。没有执行任何操作,没有更新或添加任何内容,也没有错误消息或弹出窗口。
标签: ms-access vba ms-access-2010