2017-07-10 16 views
0

クエリ式を使用した構文エラー?エラー私はコードMS-Accessのクエリ式を使用した構文エラー番号

CurrentDb.Execute "UPDATE StateBudget " & _ 
      " Set S_ID='" & Me.cbState & "'" & _ 
      ", C_ID=" & Me.cbCategory & _ 
      ", Year='" & Me.cbYear & "'" & _ 
      ", 1=" & Me.Ctl1 & _ 
      ", 2=" & Me.Ctl2 & _ 
      ", 3=" & Me.Ctl3 & _ 
      " WHERE S_ID = """ & _ 
      DLookup("ID", "States", "State='" & _ 
      Me.subformStateBudget.Form.Recordset.Fields("State") & "'") & """" 

の下に実行しながらS_IDと年がテキストフィールド、C_ID残り1,2,3は、Numberフィールドですです。 もし私が逃したものがあれば?私はプログラミングの初心者ですので、...

答えて

0

おそらく数値Me。*フィールドの1つがnullなので、SQLには構文エラーがあります。そのような種類の引数にはNz関数を使用します。デバッグの場合は、実行前に文字列変数にSQLを作成し、Debug.Printを使用してこの変数の内容をイミディエイトウィンドウにダンプします。問題が簡単にわかります。

Dim strSQL 

strSQL = "UPDATE StateBudget " & _ 
      " Set S_ID='" & Me.cbState & "'" & _ 
      ", C_ID=" & Nz(Me.cbCategory, 0) & _ 
      ", Year='" & Me.cbYear & "'" & _ 
      ", 1=" & Nz(Me.Ctl1, 0) & _ 
      ", 2=" & Nz(Me.Ctl2, 0) & _ 
      ", 3=" & Nz(Me.Ctl3, 0) & _ 
      " WHERE S_ID = """ & _ 
      DLookup("ID", "States", "State='" & _ 
      Me.subformStateBudget.Form.Recordset.Fields("State") & "'") & """" 

Debug.Print strSQL 
CurrentDb.Execute strSQL, dbFailOnError 
関連する問題