• ベストアンサー

グリッドを更新した時のグリッドの表示の仕方

WINDOWS2000、VB6.0(SP5)で開発しています。 データベースをグリッドに表示して、 追加や更新、削除などはテキストボックスに入力して、 コマンドボタンで処理すようにしています。 例えば行を追加したとき、並び替えをして表示させたいので、 Refreshします。そうするとカレントレコードの位置が最初の行になります。 これを追加した行に来るようにしたいです。 Move.Nextとかでその行まで移動させたら出来るのですが、 レコードが100件あって、50番目のレコードを追加したとき、 Move.Nextで移動させると、どんな場合でも画面上一番下の方に表示されてしまいます。 50番目のレコードが一番上に表示されるように、 スクロールバーを調節して追加しても、一番下になってしまいます。 うまく説明できないのですが、ご理解いただけましたら、 ご教授お願いいたしますm(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.2

Move メソッドを使う recordset.Move 移動数, 開始位置 Bookmark プロパティを使う var = recordset.Bookmark recordset.Refresh recordset.Bookmark = var 詳しくはヘルプを参照してください。 テストできる環境がなかったので、ご希望の動作をするかちょっと確認できませんでした(^^;

その他の回答 (1)

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.1

1.データベースのカラムに連番をつける。 2.Dim cn as ADODB.connection とするとき   cn.execute("select * from テーブル名 order by 連番 desc") では?

関連するQ&A

  • グリッドにデータベースの更新を反映させるには?

    VB6.0SP5で開発しています。 単純なデータベースの更新プログラムなんですが、 更新した後にRefreshやRebindしても更新内容が反映されません。 ADODCをつかってグリッドに内容を表示しているのですが、 グリッドをクリックして選択した行のレコードを削除します。 そのあとに、ADODCをRefreshしてもグリッドをRefreshしても反映されないんです。 データは削除されています。 DataGrid,TDBGridの二つのグリッドで試したんですが、 どっちもだめでした。 みななんどうやって反映させているのでしょうか? どうぞ、よろしくお願いしますm(_ _)m

  • グリッドの動き

    以下の現象で困っています。 解決策をご存知の方いらっしゃいましたら教えてください。 1.スクロールバーのあるグリッド(画面では10行を表  示)で一番下までスクロールし、グリッドに表示され  ている下段の方の行をクリックし反転表示させます。 2.いったんグリッドからロストフォーカスし(グリッドの 行は反転表示のまま)今度はグリッドの上段の方の行を  クリックします。 以上のオペレーションをすると、最上部までスクロールし、2回目にクリックした行から最上部の行までが反転表示されます。 このような現象の原因もしくは解決策をご存知の方、 ぜひ教えてください。よろしくお願いします。

  • フレキシブルグリッドコントロールについて

    フレキシブルグリッドコントロールをスクロールすると行もしくは、列単位でスクロールします。これを任意の位置で固定させるようなスクロールは出来ないでしょうか?(一番左に表示される列が、とぎれるようなスクロールをしたい。と言うことです) 出来ないなら、VBに標準で付いてる表のコントロールでこれが出来るコントロールはないでしょうか?表のデータに対しては特に対した処理はしないのですが。

  • テキストボックスとグリッド線について

     内容はタイトルのとおりなのですが、他のパソコンでは表示されるのに、私のではされないのです。 一応テキストボックスを選択して「順序」→「テキストの背面へ移動」とか「最背面へ移動」を選択しても だめです。  それから、「グリッド線の設定」で文字グリッド線の間隔を「1字」、行グリッド線の間隔を「1行」と設定 しても、勝手にミリ単位に変わっています。これはなぜでしょうか。

  • ワードのグリッドで一コマを正方形にするには?

    ワードのグリッドで一コマを正方形にするには? 下のようにすると、たて1.3センチ、よこ1.4センチになってしまいます。たとえば、1センチ×1センチなどにする方法をお教えください。 [図形の調整]―[グリッド]―[グリッド線を表示する]―[文字グリッドを表示する間隔:4]―[行グリッドを表示する間隔:1] Word2000です。よろしくおねがいします。

  • ADODCとデータグリッドを連動させるには?

    WINDOWS2000,VB6,SP5で開発しています。 グリッドのデータソースにADODCコントロールを指定して、 これらを連動させたいのですが、どうもできません。 やりたいのは、レコードの削除です。 ADODC1.RecordSet.Delete で、カレントレコードを削除させてるのですが、 グリッドで削除したい行を選択しただけでは、 ADODCのカレントレコードは動いてないようなのです。 なので、ADODCの一番初めの行が削除されてしまい、困ってます。 こんな初心者なわたくしですが、どうぞよろしくお願いしますm(_ _)m

  • サブフォームに新規レコードを追加する際、一番下に表示するのではなく一番上に表示したい

    Access2000を用いて開発を行っています。 Aフォームの中のサブフォームにレコードを追加する場合、デフォルトの設定では一番下に新規登録するためのレコードが表示されます。 しかし、私がやりたいことは新規レコードを追加するために、わざわざ一番下までスクロールしてから追加するのではなく、新規レコードが一番上に表示されていて欲しいのです。 Webで調べるにもどのように調べたらよいのかわからず、回答を見つけることができません。まったく、手がかりなしの状態であります。 お手数ですが、誰か教えていただける方がいらっしゃったら教えてください。よろしくお願いします。

  • DataGridViewでの追加行の表示について

    VB2005で作成。 DataGridViewを非バインドで作成しました。 追加行のプロパティもtrueにしています。 通常そのまま作成すると新規行が1行だけ空白表示で その下はグレーで何もない状態です。 画面いっぱい(グリッドの画面)にグリッドの行の枠を 表示してほしいとの要望がありました。 つまりデフォルトでグリッドの画面いっぱいにexcel表示のように グリッドの枠を表示してどこからでも入力できるほうが良い ということを言われました。 それが設定か何かをするだけで、簡単できると 思っているので調べてますが、方法が まったく見つからない状態で困っています。 わたしは無理なんじゃないの?と思ってます。 考えているのは、 ・自分である程度の行を最初に無理やり追加して  その行数でイベント(削除、追加、データ保存時など)で  コントロールする。手間がかかりますが仕方ない。 ・設定するプロパティがある(ぜひご教授ください) ・他に回避策がある。(ぜひご教授ください) ・有料のツールにあれば買う。(今あるもので済ませたいので避けたい) 何か良い方法がないでしょうか?よろしくお願いします。

  • Delphiでグリッドのある列を指定するとカーソルを移動できるようにしたい

    はじめまして。 よろしくお願いいたします。 グリッドにシーケンス番号と内容が列として表示される状態です。 12番の内容を見たいと思って、 12番→表示ボタンと押すと 選択カーソルが12番目を探し出してカーソルを移動させるように したいのですが、どういった方法でやればよろしいでしょうか? コンポーネントの機能でありそうなのですが、 分からないのでよろしくお願いいたします。

  • javascriptのエラーについて

    javascriptのエラーについて。初心者です。 最近、学校でjavascriptの勉強をしていて、セレクトボックスの並び替えを以下のサイトで参考にさせていただきました。http://blog.asial.co.jp/268 そして自分で少しアレンジしてみようと思い、 ・リストを「あ から ん」までに変更 ・リストの増加に伴い、縦スクロールバーの追加 以上の2点を行いました。 そして動かしてみたところ、スクロールバーを下に移動させ、「ら」などを選択し、並び替えを行うと、 スクロールバーが強制的に一番上に移動してしまいます。もちろん表示も「あ」付近を表示しています。 並び替えは正しく行われています。 自分はselectbox.focus()が原因だと考えていますが、 この一文を消すと二番目を一番上と入れ替える際に、リストボックス内にマウスカーソルを乗せないと、並び替えが画面に 反映されないという不具合が起こってしまいます。 実行環境はIEを使用しています。 分かる方がいましたらご回答よろしくお願いします。 ちなみにソースコードなのですが学校のパソコンにあるためここに載せることはできないです。 まことに申し訳ありません。