プロが教える店舗&オフィスのセキュリティ対策術

下記のコードは、
(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

A 回答 (1件)

>>クエリーが複雑すぎます」とのエラーが出て、データベース(登録.mdb)の更新が行えません。


何とかエラーを出なくする方法は無いでしょうか?

たぶんクエリをなんとかシンプルに変更するしか対策は無いと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!