ACCESSに接続するには初めはこれでいいと思いますが
最後のところが分かりません。
Set cn = New ADODB.Connection
cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;" _
& "data source=f:\sales\sales.mdb"
cn.Open
Set rs = New ADODB.Recordset
rs.ActiveConnection = cn
rs.Source = "T_商品一覧"
rs.CursorType = adOpenStatic
rs.LockType = adLockOptimistic
rs.Properties("irowsetidentity") = True
rs.Open
”Set MSFlexGrid1.DataSource = rs”最後の部分をDATAGRIDと同じように記述しましたが機能しません。どうすればいいのでしょうか?
MSFlexGrid には、動的にDataSourceを指定できない由、ヘルプに記載
があります。
抜粋・・・
メモ 2 つの古いタイプのコントロールであるデータ (Data) コントロール
およびリモート データ (RemoteData) コントロールは、データ ソースとし
て使用できますが、実行時に別のコントロールまたはオブジェクトの
DataSource プロパティをこれらのコントロールに設定することはできません。
たとえば、次のコードを実行すると、エラーが発生します。
Set Text1.DataSource = Data1 ' エラーが発生します。実行時に DataSource を
' 組み込みデータ コントロールに設定できません。
データ コントロールまたはリモート データ コントロールをデータ ソース
として使用するには、デザイン時に連結コントロールの DataSource
プロパティを設定します。
抜粋終わり・・・
Dataコントロールとの組み合わせで、テーブルを指定するか、SQL文を指定
して、レコードの抽出を行い、Gridに表示させるならば・・・
Data1.Connect = "Access 2000;"
Data1.DatabaseName = App.Path & "\test2.mdb"
Data1.RecordSource = "select * from TEST"
Data1.Refresh
'Set MSFlexGrid1.DataSource = Data1
MSFlexGrid1.Refresh
※ ここで、MSFlexGrid1.DataSource の代入部分は、エラーとなるので
予めプロパティに設定しておく。
もしくは、ADOデータコントロールを使った場合・・・
DataGridコントロールになってしまいますが・・・
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.mdb;Persist Security Info=False"
Adodc1.CommandType = adCmdText
Adodc1.CursorLocation = adUseClient
Adodc1.CursorType = adOpenDynamic
Adodc1.LockType = adLockReadOnly
Adodc1.RecordSource = "select * from TEST"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
DataGrid1.ReBind
DataGrid1.Refresh
ではどうでしょうか?
※ RecordSourceやCommandTypeは、必要に応じて変更してみて下さい。
以上。
岡田さん丁寧なご説明有難うございました。
全て解決しました。
ツイート | ![]() |