VB2005.NETの初級開発者です。
MDBをADO接続で開発を行いたいのですが
記述の方法がわかりませんので教えて下さい。
下記のようなサンプルはネット上でもよく見るのですが
INSERT分で記述を行いたいのですが、サンプルが見つかりません
よろしくお願いします。
後、CurrentProject.Connection.Execute strSQL, , adCmdTex
このような記述をネット上で見るのですがstrSQLにInsert分を
記述すれば良いのですか、わからないので教えて下さい。
また、下記の記述の方がよいのですか?
Dim ct As New Connection()
Dim rt As New Recordset()
' 接続文字列を設定
ct.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\test.mdb"
' データベースに接続
ct.Open()
' テーブルを指定し、レコードセットをオープン
With rt
.CursorType = CursorTypeEnum.adOpenDynamic
.LockType = LockTypeEnum.adLockOptimistic
.Open("Insert_Tbl", ct, , , CommandTypeEnum.adCmdTable)
End With
' データを追加
With rt
.AddNew()
.Fields("aaa").Value = TextBox1.Text
.Fields("bbb").Value = TextBox2.Text
.Update()
End With
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>INSERT文で記述を行いたいのですが、サンプルが見つかりません
とりあえず見つけたものを貼って置きます。
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …
>CurrentProject.Connection.Execute strSQL, , adCmdTex
これは、AccessのApplicationオブジェクトの
CurrentProjectプロパティの事だと思いますので、
AccessVBAのサンプルだと思います。
これを参考にするなら、CurrentProject.Connection の部分を、
データベースに接続した Connectionオブジェクトに置き換えます。
質問のソースで言うと、 ct.Open() の後で、
strSQL = "INSERT INTO Insert_Tbl ( aaa, bbb ) values ('hoge','foo');"
ct.Execute strSQL, , adCmdText + adExecuteNoRecords
これでSQL文を発行できると思います。
レコードセットを返さないSQL文(INSERT, UPDATE, DELETE)の場合は、
adExecuteNoRecordsを付けた方がパフォーマンスが良なるそうです。
http://timberlandchapel.com/adooptim.html
>また、下記の記述の方がよいのですか?
レコードを追加すると言う意味では、どちらでも良いと思います。
どちらがパフォーマンスが良くなるか?と言う意味なら、
私には分かりません。(^^;
環境による影響もありますので、実際の実行環境で
比較テストしてみるのが確実ではないでしょうか?
No.1
- 回答日時:
これで、INSERTの記述ですよ。
このプログラムを説明すると。
1、AddNewでレコードを作ります。
2、Fieldsで値をセットします。
3、.Update()でUpdateします。
ようは、SQL的に言うとinsertで空のレコードを作りUpdateで値をセットしていると思えばわかりやすいでしょうか?
こうも書けますよ。
rt.AddNew TextBox1.Text, TextBox2.Text
この例はinsertのイメージです。
ただ このプログラムで気が付いたことが2、3あります。
1、セッションが切れれば自動コミットが働くのでしょうが、明示的に行ったほうがいいと思います。
rt.Close: Set rt = Nothing
ct.Close: Set ct = Nothing
2、エラー処理がありませんね
AddNewのときと、Updateの時にエラーが起こるかもしれません。
この回答への補足
ありがとうございます。
これで、INSERTの記述ですよ。
→たしかにINSERTの記述だとはわかるんですが
なるべく汎用的に作成したかったもので、
いろいろ調べていたのです。
後、エラー処理がありませんの指摘どおり
記述していないのですが、記述のしかたが
よくわかりませんので教えて頂けますでしょうか。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VB】コンボボックスにデータ...
-
VBでmdbファイルの抽出
-
データベースの接続ができない
-
VB6.0でSQLServerへ・・・Recor...
-
PHPでのsqlite_close();について。
-
VB6.0とaccessのDBを接続する
-
VBA 変数名に変数を使用したい。
-
エクセルでXY座標に並べられた...
-
Accessのフィールド名に半角括...
-
vba フィルター 複数条件 3つ以...
-
Accessで別mdbのテーブルをコピー
-
SQLを発行とは?クエリの作成と...
-
ExcelVBAからAccessMDB内のテー...
-
DataTableに特定のフィールドが...
-
VB6のメモリ解放に関して
-
【C#】textBoxの指定行のデータ...
-
『列名 '担当者CD' があいま...
-
accessでフィールド追加のあと...
-
文字列から、null値を除去する方法
-
VBからID3タグをいじる方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VB】コンボボックスにデータ...
-
UPDATE時にSETしたい日本語文字...
-
初心者ですデータベースの形式 ...
-
名前'dbOpenDynaset'は宣言され...
-
データベースの接続ができない
-
複数SQL発行について
-
VB6.0とaccessのDBを接続する
-
OracleDataReaderについて…
-
VB6.0でSQLServerへ・・・Recor...
-
ListviewにDB内容を表示し方に...
-
ExcelVBAでのAccessデータベー...
-
vb.netでデータベース(Access)...
-
ASP.NET(VB.NET)でADO.NETを使...
-
VB6.0でアクセス2000...
-
レンタルサーバでのDB接続の件
-
エクセルVBAでアクセスのテーブ...
-
VBでAccessにSQL文を実行して値...
-
ASPでoracleの接続について教え...
-
MSFlexGridでデータの追加の方...
-
VBSでADOを使ってaccessのテー...
おすすめ情報