Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
DataTableから新たなDataTableを生成し表示
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30415#CommentId83620
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
さすが
 (社会人)
投稿日時
2019/8/22 10:18:13
当初の質問につき、引き続きよろしくお願いします。
実は、DataGridViewのフォームとは別に、レコードの追加・編集用フォームを設けたいのです。
レコードを追加・編集をすれば、瞬時にDataGridViewの表示内容も更新されるようにです。
表示させる順序も決めていまして、Columns("決算日")の降順です。
ここでDataGridViewのDataSourceはDs、
DataMenberは"クエリ1"というDataTableとします。
まずは、レコードの追加から取り掛かっています。
自分で調べ、コードを書き、試行錯誤の末、ついに
データベース(Accessファイル)へのレコード追加ができました。
次に、更新後の内容をDataGridViewに表示させるところに取り掛かっています。
頭を冷やす時間がなく、昨晩は、わざわざDataSetから"クエリ1"をRemoveしたり、
そのためにRelationやForeingKeyConstraintのRemoveをしたりして
再度"クエリ1"を生成する方法をとりました。
あとで、直接"クエリ1"にRowsをAddするコードに書き直した方がいいですかね?
本題に戻りますと、
ところがその後、DataGridViewが更新されません。
DataSetビジュアライザーを覗くと、"クエリ1"は更新されていますのに。
実は、今回の質問をさせていただく前は、Access側のTable(正規化に問題あり)で、
レコード追加後に瞬時にDataGridViewは更新されました。
その時のコードは、
Rs =
New
ADODB.Recordset
(中略)
Da.Fill(Ds, Rs,
"クエリ1"
)
でした。つまりRecordsetがありました。
現在は、正規化に伴い必要となったコードの書き換え作業ということで、
教えていただいたコードを用い、
Ds.Fill(dt1)
としています。
ここから、Recordsetがないのが原因では?と推測しているのですが、
かといって、どう書き直せば良いかも分かりません。
以上、改めましてよろしくお願いします。