度々スイマセン。
VB2005、SQLServer2005環境です。
FormA、FormBの2つのフォームがあり、FormAはデータを表示、
FormBはそれに対してデータを追加するというプログラムを
作っています。
FormBでデータを登録し、FormBを閉じたタイミングで、
FormAのDataGridViewを再描画して、最新のデータの状態に
したいのですが、うまくいきません。
---FormAで記述しているコード---
Public Sub Form_Closed(ByVal sender As Object, ByVal e _
As System.Windows.Forms.FormClosedEventArgs)
'登録終了時に、グリッドを再表示
'再表示
Me.TestTableAdapter.Fill(Me.DataSet1.Test)
End Sub
---FormBで記述しているCD---
Private Sub FormB_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Load
AddHandler Me.FormClosed, AddressOf FormA.Form_Closed
End Sub
上記のように、FormBが閉じた時に、イベントで、
Me.TestTableAdapter.Fill(これの中身は、該当テーブルをアスタで
すべて取得してます)を呼んでいます。
FormAには削除処理もあって、その時は、Deleteが流れた後に
Me.TestTableAdapter.Fillを呼んだらデータが最新の状態になった
ので、これで出来るかと思ったのですが…。
Fillの後にDatagridView.Refreshも追加してみましたが、
ダメでした。
どうすれば再描画できるでしょうか?
ご教授ください。
No.3ベストアンサー
- 回答日時:
# 追加検証してみて …
# ANo.2 でMDBと書いてますが SQL Server2005 Express の間違えです
FormBの追加イベントで TableAdapterのUpdateメソッド呼び出して追加行をデータベースに反映すれば良いようですよ
追加イベントで
Dim row as DataRow = TestDS1.Test.NewRow
Row("Name") = TextBox1.Text
TestDS1.Test.Rws.Add( Row )
TesttableAdapter1.Update( TestDS1.Test )
といった具合で データベースに追加行を反映します
その後で FormBを閉じます
このときFormAの Form_Closedイベントにやってくるかどうか確認しましょう
回答ありがとうございます。
ご教授いただいたコードを参考に、反映させることができました。
大変助かりました、ありがとうございました。
No.2
- 回答日時:
FormBの追加登録イベントで Insertメソッドなどで追加はされているのでしょうか?
私は、DB自体あまり詳しくないのですが ・・・
FormB側で使っている DataAdapterのFillメソッドだけでは MDBファイルへの反映がうまくいかないようです
Insertメソッドで明示的に追加した場合は反映されるのですが …
当方の確認コード
FormBの追加イベントで
TestTableAdapter.Insert(TextBox1.Text)
Form1.UpdateGrid()
FormA側に
Public Sub UpdateGrid()
TestTableAdapter.Fill(Me.DataSet1.Test)
TestDataBinder.ResetBindings(False)
End Sub
といった具合で確認しました
回答ありがとうございます。
とりあえず、暫定的にFormAのActivateイベントで再度読むように
しています。
FormBのほうでinsertは流しているのですが…。
No.1
- 回答日時:
呼び出された FormAのClosedイベントで Fillした後に
DataSourceのResetBindingsメソッドを実行してみましょう
Me.TestTableAdapter.Fill(Me.DataSet1.Test)
Me.TestDataBinder.ResetBindings(False)
といった具合です …
回答ありがとうございます。
ResetBindingsメソッドを使用してみましたが、やはりダメでした。
試しにFormAに適当なボタンを配置して、それのクリックイベントで
ResetBindingsメソッドを呼ぶと再描画できていました。
別のFormが絡むからなのでしょうか…。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) Excel VBAでの右クリックのポップアップメニューの非表示方法は? 1 2023/04/12 17:03
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Visual Basic(VBA) 【VBA】Excelで罫線を引きたい 3 2022/07/14 12:04
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
mainメソッドのthrows節で設定...
-
worksheets & rows メソッドは...
-
JSPで<SELECT>の中にDBから持っ...
-
final修飾子を使っているのに、...
-
boolean型のフィールドとゲッタ...
-
配列のメソッド
-
DataGridViewでセルクリックイ...
-
ポストバック時のDatasourceバ...
-
Excel VBA でExcelを終了したい...
-
Application.Wait の参照設定
-
Refreshメソッドの使い方
-
ByteArrayInputStreamを配列に
-
二分探索木のheight(高さ?)を見...
-
onClickで関数呼出し後に、結果...
-
C++/CLIにてForm1の要素に外部から
-
DBを扱う上でのclose()メソッド...
-
Strutsで「setterメソッドが見...
-
Vectorについて
-
HyperLinkのNavigateUrl属性に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
Labelコントロールに数字を代入...
-
final修飾子を使っているのに、...
-
エクセルVBAにおけるON TIMEメ...
-
コマンドプロンプト実行後に画...
-
mainメソッドのthrows節で設定...
-
DataGridViewでセルクリックイ...
-
javascriptからjavaを呼び出したい
-
VBPをダブルクリックするとたま...
-
onClickで関数呼出し後に、結果...
-
ExcelのxlDialogInsertPictureで。
-
Refreshメソッドの使い方
-
JSPで<SELECT>の中にDBから持っ...
-
【sendkeysメソッドが動かずに...
-
ウィンドウを最前面にできません
-
(String args[])というメッソ...
-
C# 演算 最大値 最小値 表現の仕方
-
Excel VBA シェイプの原型のサ...
-
VB.netで、シリアル通信のタイ...
-
Excel VBA でExcelを終了したい...
おすすめ情報