none
Accessのようなアプリの開発 RRS feed

  • 質問

  • mdbファイルを開き、あるテーブルを選択したときにDataGridViewコントロールを使ってデータを表示させるまではできたのですが、Accessのように、セルの更新をして行を移動すると、自動でmdbファイルの更新も行うようにすることはできるのでしょう?

    DataGridViewにDataSourceを設定して、必要なときにAdapterのUpdateを実行したら変更はできたのですが、もっと簡単に自動的にできる方法などがありましたら教えてください。

    よろしくお願いいたします。

    2015年1月9日 10:03

すべての返信

  • MSDN ライブラリで「セルの更新をして行を移動する」のに該当するイベントを探して、そのハンドラで Update を実行すると言うことではダメなんですか? (そもそも、行の移動で更新というのは、ちょっとやりすぎという感じもしますが)
    2015年1月9日 10:36
  • おそらく行を削除することもありますよね? これも加味するのであれば、以下にあるような方法になるのではないかと思います。

    VB DataGridView Automatically Saving Updates to a Bound Database
    http://www.codeproject.com/Articles/14759/VB-DataGridView-Automatically-Saving-Updates-to-a


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2015年1月9日 13:59
    モデレータ
  • 【追伸】

    今頃何ですが・・・

    Windows クライアント開発のフォーラムに投稿されてますが、作っているのは Windows Forms アプリなのですよね?

    その理解で、質問の本筋とは関係ない話かもしれませんが、ついでに参考情報を書きます。

    Visual Studio のデータソース構成ウィザードを利用して型付 DataSet + TableAdapter を使ってウィザードベースでアプリを作っていますか?

    先の質問にあった、

    > DataGridViewにDataSourceを設定して、必要なときにAdapterのUpdateを実行

    ところを見ると、どうもそうではなささそうな気がします。

    もし、データソース構成ウィザードを使わず自力でコードを書いてアプリ作っているのでしたら、是非一度ウィザードを使って定番の構成のアプリを作ってみてください。

    以下のチュートリアルは SQL Server DB の FK 制約を持った 2 つのテーブルを対象にしていますが、Access でも同様なことができますし、テーブルが一つならさらに簡単に自分では一行もコードを書かずに実装できるはずです。

    10 行でズバリ !! 非接続型のデータ アクセス (ADO.NET) (C#)
    https://code.msdn.microsoft.com/windowsdesktop/10-ADONET-C-cbfe7688

    上記の手順で作ると以下のページの図の構造のようになります。

    Visual Studio でのデータへの接続の概要
    http://msdn.microsoft.com/ja-jp/library/wxt2cwcc(VS.80).aspx

    これでもまだ最初の質問にあった「セルの更新をして行を移動すると、自動でmdbファイルの更新も行う」ということが必要かどうか評価してみることをお勧めします。

    なお、Access でオートナンバーを使っている場合、新規レコードを INSERT した時に DB 側で設定したオートナンバー値を DataSet に書き込むのは自力でコードを書いて対応する必要があります。詳しくは以下の記事を見てください。

    Access の更新
    http://surferonwww.info/BlogEngine/post/2010/09/04/Updating-Access.aspx


    • 編集済み SurferOnWww 2015年1月10日 2:09 誤字訂正
    2015年1月10日 2:01