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