3

SQLへの挿入に問題があります。以下のすべてのコードは機能しますが、レベルの値を追加するSQL文字列を除きます。これが、3つのボックスを持つフォームのonclickコードです。pH、Temp、およびLevelの値を格納するテーブルには、3つのフィールドすべてにフィールドサイズ「single」が設定された数値形式があります。

繰り返しますが、「レベル」ボックスを空白のままにすると、機能します。しかし、他の値の組み合わせでレベル値を挿入しようとすると、失敗します。

以下のコード:

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
4

1 に答える 1

4

レベルは予約語であり、角かっこで囲む必要があります。

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

予約語

ジェット
エース

于 2012-08-09T15:50:59.953 に答える