• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB.NET、mdbに新しいデータを追加したい)

VB.NETでmdbに新しいデータを追加したい

このQ&Aのポイント
  • VB.NETのプログラムでオペレータの新規登録と既存データの更新を行いたい
  • オペレータ名が一致する場合にはデータを更新し、一致するデータがない場合には新規登録を行いたい
  • VB.NET初心者でマイクロソフトの文献も難しく、どのようにプログラムを書けば良いかわからない

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

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

INSERT文になって再度発行処理をすればいいだけです。 Dim cmd As New OleDbCommand( "INSERT INTO table1 (オペレータ名, ランク, 補足, パスワード) VALUES " & "(?, ?, ?, ?)", cn) cmd.Parameters.Add("ランク", OleDbType.Integer).Value = RANK cmd.Parameters.Add("パスワード", OleDbType.Char).Value = PWORD cmd.Parameters.Add("補足", OleDbType.Char).Value = HOSOKU cmd.Parameters.Add("オペレータ名", OleDbType.Char).Value = OPE cmd.ExecuteNonQuery() ところでcn.Open()の後にcmd.ExecuteNonQuery()が2回もありますが、1回で十分です。

19lalatombo52
質問者

お礼

お世話になりました。2回目の質問をさせてもらいましたが解決しました。まことに感謝感激です。 ERORの内容は変数cmdが重複して使用されているということがmicrosoftのサイドで確認できました。 そこでcmd→cmd1にして書き替えるとばっちり動作しました。 cmd.Parameters.Add等の単語の意味がピンとくるように自己研鑽したいと思います。 すばらしい回答を頂きまことにありがとうございました。解決です。

19lalatombo52
質問者

補足

早速の回答ありがとうございます。 プログラムを記入してみたのですが 下記IF(else)文中のDim cmdのcmdにてERRORが出ます。  内容:”変数'cmd'はそれを囲むブロック内の変数を非表示にします” else文の中に記載してはだめなのでしょうか?。 If COUNTC > 0 Then MessageBox.Show("更新 完了") Else 'INSERTの手順  '*** パラメータを作成 **************** '**** パラメータを作成 ****************       Dim cmd As New OleDbCommand( "INSERT INTO table1 (オペレータ名, ランク, 補足, パスワード) VALUES " & "(?, ?, ?, ?)", cn) cmd.Parameters.Add("ランク", OleDbType.Integer).Value = RANK cmd.Parameters.Add("パスワード", OleDbType.Char).Value = PWORD cmd.Parameters.Add("補足", OleDbType.Char).Value = HOSOKU cmd.Parameters.Add("オペレータ名", OleDbType.Char).Value = OPE cmd.ExecuteNonQuery() End If '-------------------------- cn.Close()

関連するQ&A