C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

VBNETでmdbをSQLで更新したいのですが

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■94420 / inTopicNo.1)  VBNETでmdbをSQLで更新したいのですが
  
□投稿者/ 元COBOLプログラマー (1回)-(2020/04/10(Fri) 20:09:08)

分類:[.NET 全般] 

COBOL歴30年 VB.NET初心者です
VB.NETでMDBを更新(追加、UPDATE、削除)したいのですが
どこかにサンプルはないでしょうか?
ついでにExcelも更新(新シートの追加、データの読み書き)もしたいのですが・・
あちこちにサンプルがあり、コピーして作成したのですが
DAO,ADO参照の(ヴァージョン)が悪いのか
エラーになってしまいます
例)
Dim Cn As New im Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\Database\Animals.mdb")
Dim SQLCm As OleDbCommand = Cn.CreateCommand
のOleDbConnection、と OleDbCommandがエラー
何が参照の対象か記載はなく(もしかしたら参照方法がおかしいのかも なにせ初心者なので)
よくわかりません
また、MDBファイルの位置やテーブルの例が書いていない場合があるのでコーディングの方法も
わかっていません
どなたかご教授お願いします
引用返信 編集キー/
■94423 / inTopicNo.2)  Re[1]: VBNETでmdbをSQLで更新したいのですが
□投稿者/ 魔界の仮面弁士 (2680回)-(2020/04/10(Fri) 20:55:07)
No94420 (元COBOLプログラマー さん) に返信
> DAO,ADO参照の(ヴァージョン)が悪いのか

VB.NET から DAO や ADO を使うことは稀です。
一般的には ADO.NET が利用されます。


> Dim Cn As New im Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\Database\Animals.mdb")

OleDbConnection クラスは ADO.NET のものなので、方向性としては正しいですよ。

※投稿時に構文が崩れてしまったようで、上記のままだと文法エラーになりますが、


ただ、"Microsoft.Jet.OLEDB.4.0" という OLE DB Provider は、
32bit 版しか存在しない古い物ですので、64bit アプリケーションだと動作しません。
32bit で実行されるよう、x86 ビルドでコンパイルしておくと良いでしょう。
(お使いの VB のバージョン・エディションによって設定箇所が微妙に異なります)


もしくは、"Microsoft.Jet.OLEDB.4.0" の代わりに "Microsoft.ACE.OLEDB.12.0" を使えば、
64bit 環境にも対応できます。こちらは .mdb ファイルだけでなく .accdb ファイルにも利用可能です。


※いずれの場合も、対応する OLE DB Provider が実行環境にインストールされている必要があります。


> のOleDbConnection、と OleDbCommandがエラー

Dim SQLCm As OleDbCommand を
Dim SQLCm As System.Data.OleDb.OleDbCommand にしてみてください。

もしくは名前空間を省略できるよう、ファイルの冒頭に『Imports System.Data.OleDb』と記述しておいても良いです。
http://rucio.a.la9.jp/main/VBdotNet/Database/Database3.htm


> 何が参照の対象か記載はなく(もしかしたら参照方法がおかしいのかも なにせ初心者なので)

OleDbConnection 等を使うために、追加の参照設定は不要です。

参照設定として System.Data アセンブリが要求されるのですが、
これは最初から参照済みの状態になっているはずです。


> また、MDBファイルの位置やテーブルの例が書いていない場合があるのでコーディングの方法も
> わかっていません

コーディングを最小限にして、デザイナー機能に頼ってみることもできます。

ちょっと古い記事ですが:

[10 行でズバリ !! 非接続型のデータ アクセス (ADO.NET) (VB)]
https://github.com/microsoftarchive/msdn-code-gallery-community-0-9-non-alphabetic/tree/master/10%20%E8%A1%8C%E3%81%A7%E3%82%BA%E3%83%90%E3%83%AA%20!!%20%E9%9D%9E%E6%8E%A5%E7%B6%9A%E5%9E%8B%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%20(ADO.NET)%20(VB)
引用返信 編集キー/
■94425 / inTopicNo.3)  Re[2]: VBNETでmdbをSQLで更新したいのですが
□投稿者/ 元COBOLプログラマー (2回)-(2020/04/11(Sat) 15:17:15)
ご返答ありがとうございます
他にも参考にし易いぱーじがあれば、ご指導お願いします
引用返信 編集キー/
■94479 / inTopicNo.4)  Re[3]: VBNETでmdbをSQLで更新したいのですが
□投稿者/ 元COBOLプログラマー (3回)-(2020/04/14(Tue) 20:07:25)
No94425 (元COBOLプログラマー さん) に返信
> ご返答ありがとうございます
Dim Cn As Newc("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\Database\Animals.mdb")
Dim SQLCm As OleDbCommand =Cn.CreateCommand

SQLCm.CommandText = "INSERTINTO T_目マスタ VALUES (999, 'テスト', 'てすと', 1, 'これはテストです。')"

Cn.Open()
SQLCm.ExecuteNonQuery()
Cn.Close()

MsgBox("追加しました。")
教えていただいたページでやってみたのですが
OleDbConnection
がコンパイルえらーになります
どうすればよいでしょうか?
お手数ですが教えてください


引用返信 編集キー/
■94485 / inTopicNo.5)  Re[4]: VBNETでmdbをSQLで更新したいのですが
□投稿者/ Hongliang (1000回)-(2020/04/14(Tue) 21:12:02)
エラーメッセージを書いていただかないと、なかなか適切な回答を示すことができません。

なお、エラーメッセージ類を掲示板に書き込むときはできる限りコピー&ペーストでお願いします。
(ただし個人情報や機密の類が含まれていないかだけは確認してください)

> Dim Cn As Newc("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\Database\Animals.mdb")
Newしてる c って何でしょう…。
引用返信 編集キー/
■94526 / inTopicNo.6)  Re[5]: VBNETでmdbをSQLで更新したいのですが
□投稿者/ 元COBOLプログラマー (6回)-(2020/04/16(Thu) 17:11:15)
No94485 (Hongliang さん) に返信
> エラーメッセージを書いていただかないと、なかなか適切な回答を示すことができません。
>
> なお、エラーメッセージ類を掲示板に書き込むときはできる限りコピー&ペーストでお願いします。
> (ただし個人情報や機密の類が含まれていないかだけは確認してください)
>
>>Dim Cn As Newc("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\Database\Animals.mdb")
> Newしてる c って何でしょう…。
引用返信 編集キー/
■94527 / inTopicNo.7)  Re[5]: VBNETでmdbをSQLで更新したいのですが
□投稿者/ 元COBOLプログラマー (7回)-(2020/04/16(Thu) 17:26:19)
No94485 (Hongliang さん) に返信
>>>Dim Cn As Newc("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\Database\Animals.mdb")
> Newしてる c って何でしょう…。


申し訳ございません


    Dim Cn As Newc("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\Database\Animals.mdb")
Dim SQLCm As System.Data.OleDb.OleDbCommand
SQLCm.CommandText = "INSERTINTO T_目マスタ VALUES (999, 'テスト', 'てすと', 1, 'これはテストです。')"

Cn.Open()
SQLCm.ExecuteNonQuery()
Cn.Close()


こちらでございます
OleDbConnection と
Cn.Open()
Cn.Close()
がコンパイルエラーとなります




引用返信 編集キー/
■94528 / inTopicNo.8)  Re[6]: VBNETでmdbをSQLで更新したいのですが
□投稿者/ 魔界の仮面弁士 (2691回)-(2020/04/16(Thu) 17:49:59)
2020/04/16(Thu) 17:55:12 編集(投稿者)

No94527 (元COBOLプログラマー さん) に返信
> こちらでございます
提示頂いたそのコードには、

> OleDbConnection と
という文字列が、一切含まれていませんよ?

また No94527 のコードは、 No94420 と違って
SQLCm 変数が未初期化になってしまっています。

掲示板への転記時のミスかもしれませんが、
先に紹介した URL の内容と、
実際のコードの内容と、
掲示板に投稿された内容を、
もう一度よく見直してみてください。
http://rucio.a.la9.jp/main/VBdotNet/Database/Database3.htm


> がコンパイルエラーとなります
どの行で、何というコンパイルエラーになっているのか、
『具体的』なエラーメッセージを示してください。

エラー情報が無いと、問題点を絞り切れません。

たとえばスペルミスなのかもしれないし、
記述する場所が間違っているのかもしれないし、
参照設定に問題があるのかもしれないし
名前空間の指定が間違っているのかもしれないし…。
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ