• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MDBテーブルへの追加変更を教えてください)

MDBテーブルへの追加変更方法を教えてください

このQ&Aのポイント
  • VB2005の初心者の方が、MDBテーブルに行を追加や変更する方法について質問しています。
  • データの変更頻度が少ないため、MDBテーブルをDataGridViewで表示させ、行の状態から追加や変更を行いたいとのことです。
  • VB2005でのデータの追加や変更方法について、具体的なコード例を示したらより詳しい回答ができるでしょう。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

ANo.1 です。 初心者の方には不親切なアドバイスだったかなと思い補足いたします。 また、記述に一部誤りがあったので訂正とお詫びいたします。 まず、MDBファイルをデータソースとして扱うために「データソースの追加」を 行っていますよね? 私はサンプルのNorthwind.mdbの「社員」テーブルを使用しました。 そうすると、「表示」→「ソリューション エクスプローラ」でソリューション エクスプローラに 指定した"「データソース名」.xsd"が表示されます。これをダブルクリックしてください。 表示された"「データソース名」.xsd"には"「テーブル名」TableAdapter"という項目がありますので、 これを右クリック→追加→QueryでInsertのSQL文を記述します。 これで"「テーブル名」TableAdapter"にはInsertQueryというメソッド(ですよね?)が追加されます。 (ここではInsert文だけ記述していますが、Select文、Update文も記述できるはずです。) あとはコードを見てもらえばわかっていただけると思います。 ==== Code ==== Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: このコード行はデータを 'NorthwindDataSet1.社員' テーブルに読み込みます。必要に応じて移動、または削除をしてください。 Me.社員TableAdapter.Fill(Me.NorthwindDataSet1.社員) End Sub Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim dTbl As NorthwindDataSet.社員DataTable Dim i As Integer dTbl = Me.NorthwindDataSet1.社員 For i = 0 To dTbl.Rows.Count - 1 If dTbl.Rows(i).RowState = DataRowState.Added Then MessageBox.Show(i, "件目") '→デバック表示です Me.社員TableAdapter.InsertQuery(dTbl.Rows(i).Item(0), dTbl.Rows(i).Item(1), dTbl.Rows(i).Item(2), dTbl.Rows(i).Item(3)) End If Next End Sub End Class ==== end of Code ==== ちなみに私は、 SELECT 社員コード, 氏名, 在籍支社, 部署名 FROM 社員 でテーブルを開き、 INSERT INTO `社員` (`社員コード`, `氏名`, `在籍支社`, `部署名`) VALUES (?, ?, ?, ?) というふうにクエリを設定していますので、 Me.社員TableAdapter.InsertQuery(dTbl.Rows(i).Item(0), dTbl.Rows(となります。 (InsertQuery()の1つ目の引数が、Values()の1つ目の"?"に対応します。) ==== 訂正とお詫び ==== 前回、 >InsertCommandプロパティを設定し、OleDataAdapterメンバのUpdateメソッドを実行すれば良いのでは? と書きましたが、Insertメソッドの実行が正しいです。 誤った記述をしてごめんなさい。 ==== 追記 ==== これを機会に、Visual Basic 2005 Express Editionをインストールしてみました。 ついでにASP.NET環境も整えました。 知識を新しくする機会を与えてくれたことを感謝します。

akatuka
質問者

お礼

お礼が遅くなり申し訳ありません。 詳細に回答をいただきながら感謝なんて恐れ入ります。 当方も自力で対処できるよう、また新しい知識の蓄積に努めてまいります。 どうもありがとうございました。

その他の回答 (1)

回答No.1

回答される方がいらっしゃらないようなので。。。 当方、VBを書いたことがありません。Visual Studioも持っていませんので あくまで参考です。 OleDataAdapterクラス http://msdn2.microsoft.com/ja-jp/library/system.data.oledb.oledbdataadapter(VS.80).aspx というものがあるようです。 そして、OleDataAdapterメンバにInsertCommandプロパティというInsert文を定義するためのプロパティがあります。 InsertCommandプロパティを設定し、OleDataAdapterメンバのUpdateメソッドを実行すれば良いのでは? ちなみにOleDataAdapterメンバは、上記URLのページの下方「参照」からたどっていけます。 ページの左のツリーからたどってもいけます。

関連するQ&A

専門家に質問してみよう