VB6 DataGirdでデータが表示されない
かなり前にリリースされたプログラムですが、プログラムを実行するパソコンを新しいものに入れ替えを行ったところ、VB6でAdoデータコントロールを使用してAccess2000のデータをDataGridに表示する部分で問題が発生した。
開発環境では問題ないのに、プログラム配布先の環境ではなぜかDataGridが空っぽになってしまう。
以下のように修正したところ問題なく表示された。
DataGridコントロールを使用している箇所が少なかったので助かった。
【修正前】
With Adodc1
.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb"
.CursorType = adOpenStatic
.CursorLocation = adUseClient
.RecordSource = "select * from hoge"
.Refresh
End With
【修正後】
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cn.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = db1.mdb"
cn.CursorLocation = adUseClient
With rs
.ActiveConnection = cn
.Source = "select * from hoge"
.CursorType = adOpenStatic
.LockType = adLockOptimistic
.Properties("IRowsetIdentity") = True
.Open
End With
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
※この一文が重要と思われる。
.Properties("IRowsetIdentity") = True
参考URL
[VB]Jet.OLE DB 4.0 Provider で DataGrid に表示できない
http://support.microsoft.com/kb/224192/ja
最近のコメント