※ ChatGPTを利用し、要約された質問です(原文:階層フレキシブルコントロールで質問です。)
VB6の階層フレキシブルコントロールでADODCのスクロール位置の問題が発生する
このQ&Aのポイント
VB6の階層フレキシブルグリッドコントロール(MSHFLEXGRID)を使用して、ADODCで接続したODBCデータベースのデータを表示しています。しかし、ADODCを使用すると、スクロールする前後でクリック位置が異なる問題が発生します。
具体的には、データ件数が40件で最大表示が30件の状態で、スクロール前後でクリックした位置(プロパティMouseRow)が変化します。スクロール前では正しくクリックした位置が表示されますが、スクロール後ではクリックした位置が1ずつずれて表示されます。
この問題はADODCを使用することによって発生するようです。対策としては、別の方法でデータを表示するか、ADODCを使用せずにデータを表示する方法を検討することが必要です。
今、VB6で、階層フレキシブルグリッドコントロール(MSHFLEXGRID)を
使用して、ADOデータコントロール(ADODC)で接続した、
ODBCデータベースのデータを表示させています。
その表示されたセルをクリックすることで、横1行データを選択して、
変更用フォームにデータをコピーさせているのですが、
垂直方向のスクロールをしていない状態と
スクロールさせた状態で、クリックした位置(プロパティMouseRowを使用)が
違うのです。
具体的には、データ件数40件で、最大表示30件の状態で、以下のようでした。
『スクロール前』 クリック位置 MouseRowの値
項目欄 0
1行目 0
2行目 1
20行目 19
35行目 クリックせず
40行目 クリックせず
欄外 クリックせず
『スクロール後』
項目欄 0
1行目 1
2行目 2
20行目 20
35行目 35
40行目 40
欄外 40
また、表示件数15件だと、まったく『スクロール前』の状態でしたが、
別の日付のデータでスクロールをさせると、『スクロール後』の状態に
なりました。
どうも、ADODCを使用すると、こうなるらしいのですが、
対策を教えていただけませんか?
お礼
この通りやりましたが、うまくいきませんでした。 ただ、SQL文がまずかったらしく、構成を変えたら うまくいきました。結果オーライ!ありがとございます。