アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは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 "レコードセット取得に成功しました
------------------------------------------------

A 回答 (4件)

#3の続き


SQL文のField名とグリッドのField名は一致していますか?括弧などあるとうまくいかない場合があります。
その場合は、SQL分でAS<別名>をつけグリットでも別名をfield名にするとうまきいきます。

これでだめならadodc経由でつないでみてはいかがでしょうか?
    • good
    • 0

グリッドのデータソースを指定した後にグリッドの更新をしないと表示されません。


>  'レコードセットをデータグリッドに連結
>Set D_GRID.DataSource = RECO
この後に
 D_GRID.Refresh

データコントロールを使用している場合には、
 <データコントロール名>.Refresh

この回答への補足

ご回答ありがとうございます。

D_GRID.Refreshと記述してみたんですが、だめでした。データグリッドのCaptionプロパティとかはきちんと反映されるんですけどねぇ~

補足日時:2004/01/22 10:09
    • good
    • 0

まず、SQLが正しいかどうか調べるためにDB上で実行してください。

もし、それでレコードが取得できたのならプログラムに問題があります。
第二にADOコントロールで接続して表示できるか試してください。
残念ながらこのプログラムではメッセージボックスで文字が表示されたからと言って正常にレコードセットが取得できているとは確認できません。とれていなくてもでます。
    • good
    • 0

見た感じでは問題なさそうですね


ですが、2点ほどあります

1.レコードセットの宣言は良いのですが、展開時が?
 ×Set RECO = New Recordset
 ○Set RECO = New ADODB.Recordset

2.SQL文を省略されていますが、そのSQLは正しいですか?

この回答への補足

1.Set RECO = New ADODB.Recordsetに修正しましたができませんでした。(泣)

2.SQL文の実行テストでは正確にデータを抽出してきました。

他の理由は考えられますか?

補足日時:2004/01/22 08:50
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!