2017-03-15 19 views
0

私のデータベースを更新しようとしましたが、構文エラーが続いています。私は構文エラーを見つけることを試みたが、私はそれを見つけることができない。このデータベースはパスワードで保護されています。UPDATE文の構文エラー - MS。アクセス

sql12 = "SELECT * FROM x Where id='rd1996'" 
da12 = New OleDb.OleDbDataAdapter(sql12, con)  
da12.Fill(ds12, "tbl12") 

Dim cd As New OleDb.OleDbCommandBuilder(da12) 

ds12.Tables("tbl12").Rows(0).Item(1) = txtNNM.Text 
ds12.Tables("tbl12").Rows(0).Item(2) = txtNPS.Text 
DataGridView1.DataSource = ds12.Tables("tbl12") 

da12.Update(ds12, "tbl12") 

答えて

-1

このための最も一般的な理由は、あなたの列名の1が予約語であるか、またはスペースや他の特殊文字が含まれていることです。クエリでワイルドカードを使用すると、コマンドビルダはアクションコマンドの列名をエスケープしないので、構文エラーが発生します。次の3つのオプションがあります。

  1. エスケープする必要がないものに列名を変更します。 他のオプションのいずれかを使用する場合でも、これを行う必要があります。
  2. クエリでワイルドカードを使用せず、各列を指定する代わりに、 を入力します。この場合、少なくとも という列を引用する必要があります。
  3. コマンド ビルダーのプロパティーをQuotePrefixおよびQuoteSuffixに設定して、それらの値にすべての列名をラップします。 アクセスの場合は、それぞれ「[」と「]」を使用します。
関連する問題