ACCESSのDB更新に伴ってDBリストの表示を更新するには?

解決


AAR  2004-07-19 23:11:15  No: 114894

はじめまして、AARといいます。
初めての投稿なので無礼があったらすみません。

現在、VB6(SP6)professional でACCESSを使ったデータベースを作成しているのですが、ADOをつかってMDBを更新すると、form上に配置してあるDBリストの表示も更新するようにしたいのですがうまくいきません。ソースの方は以下のようになっています。

'参照設定;[Microsoft ActiveX Data Objects 2.1 Library]
Private Sub Command1_Click()
    Dim cnADO As New ADODB.Connection
    Dim rsADO As New ADODB.Recordset
    Dim dmy As Variant
    

     cnADO.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=[データベース名];"
            
    rsADO.Open "[テーブル名]", cnADO, adOpenKeyset, adLockOptimistic
      With rsADO
        .AddNew
        .Fields("[colum名]").Value = DBList.VisibleCount + 1
        .Update
      End With
    End If

    Data1.Refresh
    DBlist.Refill
End Sub

データベースの更新のほうはうまくいっております。表示だけうまくいきません。
どなたか詳しい方ご教授願います。よろしくお願いいたします。


特攻隊長まるるう  2004-07-21 01:01:24  No: 114895

ADODB でデータ更新の後、
    Data1.Refresh
…のみを0.5秒ごとに3回くらいやったら更新されました。
……一応、情報ということで。


だい  2004-07-21 01:56:20  No: 114896

Jet(MDBファイルを読み書きするデータベースエンジン)の場合、
読み込む側のReadキャッシュと、書き込んだ側のWriteキャッシュ、それから、
OSのWriteキャッシュ等の絡みでいくらかの遅延が生じる場合があります。
トランザクションを利用して更新したり、Readキャッシュをフラッシュすることで、遅延を少なくすることが可能です。

Jet Engineのキャッシュとその制御
http://www.canalian.com/workshop/access/JetCache.html


AAR  2004-07-21 07:05:36  No: 114897

丁寧かつ、適切な解答をいただきありがとうございました。

特攻隊長まるるうさんの通りにソースを変更すると、更新することができました。
また、だいさんの言う通りにすると遅延を減らすことができました。

お二方、本当にありがとうございます。
また、どうしてもわからないことが出てきましたら書き込ませていただきますで、
その際はよろしくおねがいします。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加