みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

データグリッドコントロールに表示されません!

OS:XP、VB6、ACCESS2000の環境でADOの勉強をしています。
ある参考書を見て、次のサンプルを実行しました。

【サンプル】
フォームにデータグリッドコントロールを貼り付ける。
フォームのLoadイベントプロシージャ内でデータベース(MDB)に接続し、レコードセットを取得して、データグリッドコントロールに取得したレコードセットを表示させる。
データベースはACCESS97で作成されたものです。

(ソース)
---------------------------------------------------------------
Option Explicit

Private cn As ADODB.Connection
Private rs As ADODB.Recordset


Private Sub Form_Load()

'データーベースに接続
Set cn = New ADODB.Connection
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=G:\VB_TEST\Book.mdb"
cn.Open

'レコードセットを取得
Set rs = New ADODB.Recordset
rs.Open "本", cn, adOpenStatic

'データグリッドコントロールに取得したレコードセットを表示
Set DataGrid1.DataSource = rs

End Sub
---------------------------------------------------------------

上記のプログラムを実行するともちろんうまく表示されました。
が、接続プロバイダ名を

"Provider=Microsoft.Jet.OLEDB.3.51;"
 ↓↓↓↓↓
"Provider=Microsoft.Jet.OLEDB.4.0;"

にすると表示されません。

そこで、データベースをACCESS2000で作成し直し、実行してもダメです。

この処理はJet4.0では出来ないのでしょうか?

投稿日時 - 2002-10-31 20:09:11

QNo.394136

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

2ch

ちょっとだけ思い出したことを書きます。
Access2000が出た当初は、DataGridには直結できなかったと思います。

本当を言うと、現在はどうかわかりません。
Dataコントロール経由なら、SP5導入マシンならたしか可能だったと思います。

遠い記憶で話しております。

投稿日時 - 2002-11-01 21:20:52

補足

いろいろとコメントありがとうございます。

なんとか Jet4.0で上手く表示されました! !(^^)!

rs.Open の前に

rs.CursorLocation = adUseClient

を記入すると表示されました。
しかし、この違いは何なんでしょうねえ? (ーー;)

投稿日時 - 2002-11-13 10:58:55

ANo.3

参照設定で
>Microsoft ActivX Data Objects 2.X Library
2.X ← このバージョンが古いとか?

投稿日時 - 2002-11-01 13:04:56

補足

2.7です。
本来は問題なく表示されるのでしょうか?
もしかして、私のマシンの環境が悪い....?

投稿日時 - 2002-11-01 19:32:24

ANo.2

Form_Loadというのが少し気になります。

他の場所(コマンドボタン等)で試してみてはいかがでしょうか。

後はForm_Loadじゃないところで(やはりコマンドボタン等)グリッドの
リフレッシュをかけてみるとか。

全然違ったらすいません。

投稿日時 - 2002-11-01 09:08:07

補足

試してみましたがダメでした。

投稿日時 - 2002-11-01 09:16:58

ANo.1

2ch

SP5あててみたらいいダス

投稿日時 - 2002-10-31 23:52:04

補足

すでにSP5があたっているのですが、ダメなんですけれど?

投稿日時 - 2002-11-01 09:13:06

あなたにオススメの質問