[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/01/23(Mon) 21:56
投稿者名:たけひこ
Eメール:
URL :
タイトル:
DataGridの矢印について
DataGridに値を表示させた後に出てくる左の矢印(→)についてなのですが、
これをマウスでクリックして移動させるのではなく、例えばコマンドボタンをクリックして
矢印を動くようにしたいのですが、どのようにすればいいのでしょうか?
ヘルプを見て色々と試したのですが、それに対応する用語が分からず
思った通りの結果には至りませんでした。
環境はVB6でWindowsXPです。
どうか、ご教授お願いします。

投稿時間:2006/01/24(Tue) 12:17
投稿者名:水無月
Eメール:
URL :
タイトル:
Re: DataGridの矢印について
データグリッドということはデータファイル(というかレコードセット)を接続している、と考えてい
いのですよね?
であればレコードセットのカレントレコードを前に後ろに、といったかたちになります。
recordset.MovePrevious や  recordset.MoveNext といった命令をコマンドボタンのクリックイベン
トに書き込んで下さい

投稿時間:2006/01/24(Tue) 19:15
投稿者名:たけひこ
Eメール:
URL :
タイトル:
Re^2: DataGridの矢印について
水無月さま、お答えくださりありがとうございます。

私の場合、private rs AS ADODB.Recordset としているので、rs.MoveNextとして
実行してみたのですが、フォームロード時にDatagrid1にセットした後にはMoveNextで移動しましたが、コマンドボタンではMoveNextをした後にオブジェクトが必要です。と出てしまいました。
rs.closeとはしていないのですが、rsが無くなってしまっているということなのでしょうか?
ご教授お願いします。

投稿時間:2006/01/25(Wed) 09:12
投稿者名:那岐
Eメール:
URL :
タイトル:
Re^3: DataGridの矢印について
水無月様ではありませんが。

Form_Loadイベント内でPrivate宣言されたオブジェクトはForm_Loadイベントを抜けると
スコープが異なるので使用できません。
DatagridのレコードセットをMoveNextしましょう。

投稿時間:2006/01/25(Wed) 11:30
投稿者名:たけひこ
Eメール:
URL :
タイトル:
Re^4: DataGridの矢印について
那岐様 ご解答くださり、ありがとうございます。
DataGrid1.Datasouce.MoveNextなど色々と試してみたのですが、エラーが出てしまいます。
具体的にはどのように書けばよろしいのでしょうか?私の察しが悪くてお手数をお掛けいたしますが、
ご教授を
お願いします。

投稿時間:2006/01/25(Wed) 13:40
投稿者名:水無月
Eメール:
URL :
タイトル:
Re^5: DataGridの矢印について
可能であるならそのフォームモジュールの先頭部分で
private rs AS ADODB.Recordset
を宣言するなら大丈夫かと…

プロシージャ内で宣言すると確かに他のプロシージャでは使えない…

投稿時間:2006/01/25(Wed) 15:01
投稿者名:那岐
Eメール:
URL :
タイトル:
Re^6: DataGridの矢印について
DataGridのDataSourceに何をセットしているかにもよりますが。
ADODCコントロールを利用している場合はADOCDコントロールの
RecordsetをMoveNextですしDataコントロールならDataコントロールの
RecordsetをMoveNextです。

もしDataGridのDataSourceにrsをそのままセットしているのなら
BookmarkプロパティとGetBookmarkメソッドを使っても実現可能です。
下記コードにてVB6+WinXPでの動作確認はしました。
ただしEOFとBOFの検出をどうにかしないといけませんが。

#最初にrsのRecordCountを共通変数か何かに取って置いてそれと
#Rowプロパティ値でEOFとBOFの検出みたいな動作はできます(多分)
#そこまでは書きません。そう難しくはないと思うので頑張ってください。

まさかとは思いますが丸写しせずに一度MSDNでBookmarkプロパティと
GetBookmarkメソッドについて調べてからご利用くださいね?
このメソッドの挙動が希望仕様どおりの挙動かどうかは
私にはまったくもって解りませんので。

'MoveNext
DataGrid1.Bookmark = DataGrid1.GetBookmark(1)

'MovePrevious
DataGrid1.Bookmark = DataGrid1.GetBookmark(-1)


#最悪Rowプロパティで行移動という風にしてもいけたりはします。
#色々混同しやすくなるのであまり好きではないですが。

投稿時間:2006/01/25(Wed) 18:29
投稿者名:たけひこ
Eメール:
URL :
タイトル:
Re^7: DataGridの矢印について(解決)
水無月様 那岐様(返信を下さった順です)

お二人の方法を試した所、どちらの方法でも思った通りの実行結果が出ました。
これで、システム作りを再開できるようになりました。

水無月様、那岐様、本当にありがとうございました。