• 締切済み

MDBのフィールド数が多いとエラーになります。

下記のコードは、 (1)フォームロード時にアクセスのデータベースにアクセスし、データグリッドビューに表示 (2)フォーム上のデータグリッドビューを編集 (3)データベースに登録ボタン押下すると、フォーム上にあるデータグリッドビューをアクセスのデータベースに反映(update) という作業を行うプログラムです。 このコードを実行した場合、アクセスのデータベース(登録.mdb)のフィールド数の100以上になると、「クエリーが複雑すぎます」とのエラーが出て、データベース(登録.mdb)の更新が行えません。 何とかエラーを出なくする方法は無いでしょうか? PC環境はWINXP+VS2008です。 Imports System.IO Imports System.Data Imports System.Windows.Forms Public Class Form1 Public dAdp As OleDb.OleDbDataAdapter Public dSet As DataSet = New DataSet("T_資料") Public Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load ''▼フォームロード時の処理 Dim cn1 As New OleDb.OleDbConnection("Provider=""Microsoft.Jet.OLEDB.4.0"";Data Source=" & Application.StartupPath & "\登録.mdb;") Dim cmd1 As New OleDb.OleDbCommand("SELECT * FROM T_資料", cn1) cn1.Open() dAdp = New OleDb.OleDbDataAdapter("SELECT * FROM T_資料", cn1) dAdp.Fill(dSet, "T_資料") Me.DataGridView1.DataSource = dSet.Tables("T_資料") cn1.Close() End Sub Public Sub cmd_Db_reg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_Db_reg.Click '▼「データベースに登録」ボタンを押下したときの処理 Try Dim Builder As New OleDb.OleDbCommandBuilder(dAdp) Builder.GetUpdateCommand() dAdp.Update(dSet.Tables("T_資料")) MessageBox.Show("更新に成功しました。") Catch ex As Exception MessageBox.Show("更新に失敗しました。" + vbCr + ex.Message) End Try End Sub End Class

みんなの回答

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

>>クエリーが複雑すぎます」とのエラーが出て、データベース(登録.mdb)の更新が行えません。 何とかエラーを出なくする方法は無いでしょうか? たぶんクエリをなんとかシンプルに変更するしか対策は無いと思います。