VB6.0 DataGridでのfirstRowの設定について
VB6.0でデータベースの内容を更新するプログラムを作成しています。
1.データベースの内容をデータグリッドに読み込む
2.グリッドより1行を選択、レコードを新しくOpenしたダイアログに表示する。
3.ダイアログ内でレコードを修正・更新する。更新した内容をデータグリッドに反映させるため、グリッドのRefreshを行う。
4.ダイアログを閉じる。
とした場合、3のリフレッシュでブックマークの位置が変わってしまいます。
ブックマークを元通りに戻すため、2でブックマークの位置をバリアント型変数に退避し、4以降でブックマークを退避しておいた値に戻すようにしましたが、こうすると設定しなおしたブックマークの行がグリッドの先頭に表示されてしまい、ダイアログを開く前のグリッドとは違った表示になってしまいます。
FirstRowプロパティを使えば良いような気がしますが、FirstRowを単にストリング型変数を使って退避し、元に戻すわけではないようです。
(元に戻すときにエラーになります。)
FirstRowプロパティをうまく使われている方、ぜひご教示ください。
お願いいたします。
Public Sub Click_Mainte修正ボタン(Frm As Form, Dgd As DataGrid, AdoD As Adodc, NewFrm As Form)
Dim lngRow As Long
Dim strFirstRow As String
Dim varRow As Variant
On Error Resume Next
If Not Chk_Records(Dgd, Frm) Then GoTo Exit_
strFirstRow = Dgd.FirstRow
varRow = Dgd.Bookmark
Load NewFrm
NewFrm.Show vbModal
AdoD.Refresh
Dgd.Bookmark = varRow
Dgd.FirstRow = strFirstRow '「ブックマークの値が不正です」エラーになってしまう。
Exit_:
On Error GoTo 0
End Sub
お礼
確かにサイズが変わります。オブジェクトそのものというよりも、貼り付けるためのバックグラウンドの領域が広がっているような感じですね。 想定差分として作業を進めます。 ありがとうございました。