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

投稿時間:2007/05/07(Mon) 10:24
投稿者名:miura
Eメール:
URL :
タイトル:
データグリッドに表示されない
お世話になります。

WinXPでVB6.0 + Access2003の環境です。
Accessのクエリを元に、データグリッドにデータを表示するだけの
単純な作業です。

しかし、データグリッドに何も表示されません。エラーも出ません。
データは間違いなく存在しますし、msgboxでは表示されます。

自分の持っている本には、これ以上詳しいことが載っていないので
質問させて頂きました。

よろしくお願い致します。


Private Sub Form_Load()

    strPath = App.Path & "\..\誕生日.mdb"

    Set cn = New ADODB.Connection
    cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;" _
                        & "data source=" & strPath
    cn.Open
    
    
    Call Settei_rtn
    Call Kensaku_rtn
    
            
    Set rs = New ADODB.Recordset
    rs.Open "Q_誕生日", cn, adOpenStatic, adLockOptimistic
    
    Set dgdSub.DataSource = rs
    
    MsgBox rs!社員コード & rs!氏名
    
    'dgdSub.Columns("ID").Visible = False
    'dgdSub.Columns("会社コード").Width = 60 * 15
    'dgdSub.Columns("社員コード").Width = 150 * 15
    'dgdSub.Columns("氏名").Width = 60 * 15
    'dgdSub.Columns("性別").Width = 60 * 15
    'dgdSub.Columns("誕生日").Width = 60 * 15
    'dgdSub.Columns("年齢").Width = 60 * 15
    
End Sub

投稿時間:2007/05/07(Mon) 10:58
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: データグリッドに表示されない
> Accessのクエリを元に、データグリッドにデータを表示するだけの
> 単純な作業です。

DataGrid に表示する際は、CusorLocation = adUseClient にしておいた方が無難です。


データ量の都合から、adUseServer モードを使う必要がある場合には、
 Set rs = New ADODB.Recordset
 With rs
  Set .ActiveConnection = cn
  .CursorLocation = adUseServer
  .Properties("IRowsetIdentity").Value = True '★
  .Open SQL, , adOpenKeyset, adLockOptimistic, adCmdText
 End With
のように、IRowsetIdentity ダイナミックプロパティを True にすれば OK です。

http://msdn.microsoft.com/library/ja/jpoledb/reference35.asp

投稿時間:2007/05/07(Mon) 11:48
投稿者名:miura
Eメール:
URL :
タイトル:
Re^2: データグリッドに表示されない
CusorLocation = adUseClient

とすることで問題が解決しました。
大変お世話になりました。

ありがとうございました。