1

VBA での変換について質問があります。フォームにボタンを作成し、それを押すと、データベース テーブルが更新されるはずですが、エラーが発生します。

arithmetic overflow error converting numeric to data type numeric

この問題をどのように解決できますか? これが私のコードです:

Private Sub Inserare_Click()
  Dim strSQL As String
  Dim rst As New ADODB.Recordset

  strSQL = "UPDATE dbo.Soferi_test SET number= '" &  
           Me![subform_soferi].Form!certificat_cipti & _
           "',drivers= '" & Me![subform_soferi].Form!categorii_permis & _
           "' WHERE IDNO = " & Forms!Forma_redactare_soferi!IDNO

  Call AttServ(strSQL, rst)
  MsgBox ("Datele au fost introduse cu success")
End Sub
4

2 に答える 2

1

number予約語です。ステートメントでその名前を括弧で囲んでUPDATE、db エンジンがフィールド名であることを認識できるようにします。

strSQL = "UPDATE dbo.Soferi_test SET [number]= '" &  

その変更で問題が解決しない場合は、完成した SQL ステートメントを調べます。文字列を に保存した後に、この行を挿入しますstrSQL

Debug.Print strSQL

その出力をイミディエイト ウィンドウで表示できます ( Ctrl+でそこに移動しますg)。次に、そのステートメント テキストを新しい Access クエリの SQL ビューにコピーして、テストすることができます。正しく動作しない場合は、質問にステートメントを追加し、同じエラー メッセージが表示されるか、異なるエラー メッセージが表示されるかをお知らせください。

AttServを使用する手順のコードを示すことも役立つ場合がありますstrSQL

于 2013-05-03T18:53:36.793 に答える