- 締切済み
VBのデータグリッドが表示されない!!!
こんにちはtmgmです。 データグリッドが表示されません。 状況としては 1.プログラムは正常に動いています。(「接続に成功しました」メッセージ、「レコード取得に成功しました」メッセージ、ともに表示されます。) 2.しかしデータグリッドには何一つ表示されません。(ツールボックスから貼り付けたままの状態です) 3.参照設定はMicrosoft ActiveX Data Objects 2.5 Library、コンポーネントはMicrosoft DataGrid Control6.0(SP5)(OLEDB)です。 どなたかお分かりになる方いらっしゃいますでしょうか?非常に困っています。 ご返答よろしくお願いします。 ------------------------------------------------ Dim CONN As ADODB.Connection 'レコードセットの宣言 Dim RECO As ADODB.Recordset '接続の宣言 Set CONN = New ADODB.Connection '接続のプロパティ With CONN .ConnectionString= "provider=Microsoft.jet.oledb.4.0;" _ & "data source=C:\TESTMDB.mdb" .Open End With MsgBox "データベース接続に成功しました" 'レコードセットのプロパティ Set RECO = New Recordset With RECO .ActiveConnection = CONN .Source = "SELECT ~(省略)" .CursorLocation = adUseClient .CursorType = adOpenStatic .LockType = adLockOptimistic .Properties("IRowsetIdentity") = True .Open End With 'レコードセットをデータグリッドに連結 Set D_GRID.DataSource = RECO MsgBox "レコードセット取得に成功しました ------------------------------------------------
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- nonyuchan
- ベストアンサー率50% (1/2)
#3の続き SQL文のField名とグリッドのField名は一致していますか?括弧などあるとうまくいかない場合があります。 その場合は、SQL分でAS<別名>をつけグリットでも別名をfield名にするとうまきいきます。 これでだめならadodc経由でつないでみてはいかがでしょうか?
- nonyuchan
- ベストアンサー率50% (1/2)
グリッドのデータソースを指定した後にグリッドの更新をしないと表示されません。 > 'レコードセットをデータグリッドに連結 >Set D_GRID.DataSource = RECO この後に D_GRID.Refresh データコントロールを使用している場合には、 <データコントロール名>.Refresh
- Tibian
- ベストアンサー率15% (30/188)
まず、SQLが正しいかどうか調べるためにDB上で実行してください。もし、それでレコードが取得できたのならプログラムに問題があります。 第二にADOコントロールで接続して表示できるか試してください。 残念ながらこのプログラムではメッセージボックスで文字が表示されたからと言って正常にレコードセットが取得できているとは確認できません。とれていなくてもでます。
- how-do-you-do
- ベストアンサー率56% (59/104)
見た感じでは問題なさそうですね ですが、2点ほどあります 1.レコードセットの宣言は良いのですが、展開時が? ×Set RECO = New Recordset ○Set RECO = New ADODB.Recordset 2.SQL文を省略されていますが、そのSQLは正しいですか?
補足
1.Set RECO = New ADODB.Recordsetに修正しましたができませんでした。(泣) 2.SQL文の実行テストでは正確にデータを抽出してきました。 他の理由は考えられますか?
補足
ご回答ありがとうございます。 D_GRID.Refreshと記述してみたんですが、だめでした。データグリッドのCaptionプロパティとかはきちんと反映されるんですけどねぇ~