Access插入SQL错误

Access插入SQL错误,sql,ms-access,Sql,Ms Access,插入sql时遇到问题。下面的所有代码都有效,除了为级别添加值的SQL字符串。这是我的onclick代码,用于一个包含三个框的表单。存储pH值、温度值和液位值的表格采用数字格式,所有三个字段的字段大小均设置为“单个” 同样,如果我将“级别”框留空,它会工作!但是,当我尝试插入一个级别值以及其他任何值的组合时,它失败了 代码如下: Private Sub SubmitSampleData_Click() Dim pH, Temp, Level As Single Dim TodaysDate As

插入sql时遇到问题。下面的所有代码都有效,除了为级别添加值的SQL字符串。这是我的onclick代码,用于一个包含三个框的表单。存储pH值、温度值和液位值的表格采用数字格式,所有三个字段的字段大小均设置为“单个”

同样,如果我将“级别”框留空,它会工作!但是,当我尝试插入一个级别值以及其他任何值的组合时,它失败了

代码如下:

Private Sub SubmitSampleData_Click()
Dim pH, Temp, Level As Single
Dim TodaysDate As Date

TodaysDate = Date

If IsNull(Me.pH.Value) Then
    pH = 1
Else
    pH = Me.pH.Value
End If
If IsNull(Me.Temp.Value) Then
    Temp = 1
Else
    Temp = Me.Temp.Value
End If
If IsNull(Me.Level.Value) Then
    Level = 1
Else
Level = Me.Level.Value
End If

If Level = 1 And Temp = 1 And pH = 1 Then
     Exit sub
ElseIf Level = 1 And Temp = 1 Then
    CurrentDb.Execute "INSERT INTO SampleDataQuery (DateCreated, pH) VALUES (#" & TodaysDate & "#, " & pH & ")"
ElseIf Temp = 1 And pH = 1 Then
    CurrentDb.Execute "INSERT INTO SampleDataQuery (DateCreated, Level) VALUES (#" & TodaysDate & "#, " & Level & ")"
ElseIf Level = 1 And pH = 1 Then
    CurrentDb.Execute "INSERT INTO SampleDataQuery (DateCreated, Temp) VALUES (#" & TodaysDate & "#, " & Temp & ")"
ElseIf Level = 1 Then
    CurrentDb.Execute "INSERT INTO SampleDataQuery (DateCreated, pH, Temp) VALUES (#" & TodaysDate & "#, " & pH & ", " & Temp & ")"
ElseIf Temp = 1 Then
    CurrentDb.Execute "INSERT INTO SampleDataQuery (DateCreated, pH, Level) VALUES (#" & TodaysDate & "#, " & pH & ", " & Level & ")"
ElseIf pH = 1 Then
    CurrentDb.Execute "INSERT INTO SampleDataQuery (DateCreated, Temp, Level) VALUES (#" & TodaysDate & "#, " & Temp & ", " & Level & ")"
Else    
    CurrentDb.Execute "INSERT INTO SampleDataQuery (DateCreated, pH, Temp, Level) VALUES (#" & TodaysDate & "#, " & pH & ", " & Temp & ", " & Level & ")"
End If

MsgBox "Submit Successful!", vbOKOnly, "Success!"

Me.pH.Value = Null
Me.Temp.Value = Null
Me.Level.Value = Null
End Sub

级别是保留字,必须用方括号括起来

CurrentDb.Execute "INSERT INTO SampleDataQuery (DateCreated, [Level]) VALUES (#" _
   & TodaysDate & "#, " & Level & ")"
保留字



为什么不使用参数化查询?忽略不使用参数化查询,您的数据库中级别的数据类型是什么?级别的数据类型是大小为Single的数字您会遇到什么错误?这不是对你问题的回答,但非常重要:你听说过吗?欢迎来到StackOverflow。说“错误”和“失败”是没有意义的,如果不解释你会遇到什么错误或者它以什么方式失败。在输入这些词(或“异常”)后,您应该做的第一件事是开始输入您得到的确切错误或异常消息(包括任何内存地址)或故障方式的描述。请记住,在这里发帖时,我们无法看到您的屏幕或读懂您的心思,除非您分享这些信息,否则我们不知道您所说的“失败”或“错误”是什么意思。谢谢。或者,字段名可以更改为其他名称,如“lvl”,非常感谢!这工作做得很好!!我不知道这个级别是保留的,我会立即更改!哇!想知道在哪里可以找到所有保留字的列表。再次感谢@PowerUser有一条规则规定不要使用缩写词,所以,比如说,使用Verevel会更好。我不知道为什么对lvl的建议会被投票通过。我使用了TankLevel,现在它工作得非常完美!谢谢你的保留字链接!比我所知道的大约10个还多。。。。