掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB6でADOを使ってAccess2000のmdbに保存するには? (ID:82698)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 保存できない内容として、新規追加もデータの更新も出来ません。 処理的には大きなミスは無いような気がしますので、 ・Option Explicitが宣言されているか、確認してください。(スペルミスの予防) ・Jet 4.0 Service Pack 8が適用済みか、確認してください。(環境による問題の軽減) ・「エラー発生時に中断」の設定で実行してみてください。(On Errorでスキップされる事を回避) ・他のmdb——例えばVB付属のNWIND.MDBなど——でも同じ現象が起きますか? (mdb破損の可能性) といった所を確認してみてください。 で、以下細かい突っ込みを。 > Call MyTable.Open(Scan, AdoDBType, adOpenDynamic, adLockOptimistic) Jetプロバイダは、動的カーソル(adOpenDynamic)をサポートしていません。 替わりに、 サーバ側カーソル(adUseServer)の時は、キーセットカーソル(adOpenKeyset) クライアント側カーソル(adUseClient)の時は、静的カーソル(adOpenStatic) を指定するようにして下さい。 > MyTable!フィールド0 = ID > MyTable("フィールド1") = IIf(frmT.txtT(0) <> "", frmT.txtT(0), "") 前者はコレクションによる列参照、後者はプロパティによる参照ですね。 その場その場で記法を変えたりせず、いずれかに統一させた方が良いですよ。 なお、速度的な面から言えば、 MyTable.Fields("フィールド0").Value = frmT.txtT(0).Text のように、FieldsプロパティとValueプロパティを明示した方が 高速となります。(TextBoxのTextプロパティも、省略しない方が望ましいです) もしくは、Field.Valueの替わりにCollectプロパティを使って MyTable.Collect("フィールド0") = frmT.txtT(0).Text でもOKです。 この点に関しては、下記が一つの指針になると思います。 http://www.gj.il24.net/~nakasima/vb/tech/style/ http://www.fukkey.dyndns.org/pins/vb/010814/29262.html http://www.ocv.ne.jp/~oratorio/junk/draft/VBML_FAQ-Project/vb-free.044761.html
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.