トップ回答者
既存MDB(ACCESS)のテーブルへの物理的な更新ができない → VB.net 2005

質問
-
初心者のVB.NET 2005ユーザーです。
ACCESS 2002 で作成したテーブルに対してVB側から更新結果が保存できていません。
簡単に作ったプログラムで MDB形式(Access) に用意したテーブル
をTableAdaper でVB.netが自動生成したプログラム を実行してみたところ うまく更新されません。
参考:URL
http://oshiete1.goo.ne.jp/qa1304483.html
他の方法をいろいろ試したがダメでした。
下記は二つの項目を画面に配置して自動生成されたものでs。
自分で書いたコードでOledbDataAdpter も実験してみたのですが結果は同じです。
メモリー上では更新されますが 物理的にはUpdateがされません。
一旦、画面をとじて開くと更新されていません。
なぜでしょうか?
SQL Server ではこんなことはおきませんでした。
__________________________________________________________
Public Class TESTfm
Private Sub TBL_交信記録BindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TBL_交信記録BindingNavigatorSaveItem.Click
Me.Validate()
Me.TBL_交信記録BindingSource.EndEdit()
Me.TBL_交信記録TableAdapter.Update(Me.QSO_LOG_DATASET.TBL_交信記録)
End Sub
Private Sub TESTfm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: このコード行はデータを 'QSO_LOG_DATASET.TBL_交信記録' テーブルに読み込みます。必要に応じて移動、または削除をしてください。
Me.TBL_交信記録TableAdapter.Fill(Me.QSO_LOG_DATASET.TBL_交信記録)
End Sub
Private Sub TESTfm_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
MAINMENU.Visible = True
End Sub
End Class
____________________________________________
回答
-
以下を参考にしてみて下さい。
データーベースに変更内容を保存する。
http://social.msdn.microsoft.com/Forums/ja-JP/csharpexpressja/thread/fd7da4f7-c2a7-473d-8ee9-49fd70d9e5f4/
実際のアプリケーションはexeからの相対パスでmdbを指定することになりますから、このように毎回上書きされることはありません。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/- 回答としてマーク 高橋 春樹 2009年7月21日 8:26
-
> 疑問なんですが MDBの「出力ディレクトリにコピー」 いったい どんな意味でしょうか?
以下の Web ページが参考になると思います
Visual Studio 2005でデータベースの更新が反映されない場合には?
http://www.atmarkit.co.jp/fdotnet/dotnettips/532dbfilecopy/dbfilecopy.htmlSQL Server の場合について書いてありますが、Access でも「出力ディレクトリにコピー」の意味は
同じようです。- 回答としてマーク 高橋 春樹 2009年7月21日 8:26
すべての返信
-
以下を参考にしてみて下さい。
データーベースに変更内容を保存する。
http://social.msdn.microsoft.com/Forums/ja-JP/csharpexpressja/thread/fd7da4f7-c2a7-473d-8ee9-49fd70d9e5f4/
実際のアプリケーションはexeからの相対パスでmdbを指定することになりますから、このように毎回上書きされることはありません。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/- 回答としてマーク 高橋 春樹 2009年7月21日 8:26
-
> 疑問なんですが MDBの「出力ディレクトリにコピー」 いったい どんな意味でしょうか?
以下の Web ページが参考になると思います
Visual Studio 2005でデータベースの更新が反映されない場合には?
http://www.atmarkit.co.jp/fdotnet/dotnettips/532dbfilecopy/dbfilecopy.htmlSQL Server の場合について書いてありますが、Access でも「出力ディレクトリにコピー」の意味は
同じようです。- 回答としてマーク 高橋 春樹 2009年7月21日 8:26
-
こんにちは。フォーラムオペレーターの高橋春樹です。
SurferOnWwwさん、trapemiyaさん
いつもお世話になっております。MYNOBUさん、はじめまして。
MSDNフォーラムのご利用ありがとうございます。情報が更新されないという問題はよくありますよね(^-^)
同じような問題で悩んでいる方にとっても、有用な情報になったと思います。
問題が解決したようなので、大丈夫とは思いますが、
今回、SurferOnWwwさんとtrapemiyaさんの投稿に、
回答マークを付けさせてもらいました。今後ともMSDNフォーラムをよろしくお願いします。
マイクロソフト株式会社 フォーラム オペレータ 高橋春樹