dポイントプレゼントキャンペーン実施中!

アクセスで作成したデータをVB側の変数に(配列)入れたいのですが、どうすればいいのかよく分かりません

VB.2003です。
JET4.0


ちなみにデータベースとの連携は初めてです。
またDB側には一応連番を振っています。

本はありますが、記載されていないようです。

なにか不足している点があれば補足要求をしてください。

A 回答 (3件)

MDB を開くところとレコードセットを開くところは、↓の参考URL を参照してください。


OpenRecordset は、テーブル名やクエリー名を指定できるだけでなく、SQL を指定することもできますし、2番目以降のパラメータは dbOpenDynaset 以外にもいろいろありますので、そのあたりの詳細は DAO のヘルプを参照してください。

配列に入れるというのは、あるフィールドの内容をレコード数の分だけ、ということでしょうか?
勝手にそういう前提で書きますけど、

Dim db As Database
Dim rs As Recordset
Dim v() As Variant
Dim i As Long

Set db = ...
Set rs = ...
i = 0
Do Until rs.EOF
ReDim Prevserve v(i)
v(i) = rs.Fields("なんとか").Value
i = i + 1
rs.MoveNext
Loop
Set rs = Nothing
という感じでしょうか。
ループの中で ReDim Preserve をするのは効率が悪い、というのであれば、
最初に Set rs2.OpenRecordSet("SELECT COUNT(*) FROM ...") のように、別のレコードセットを作成してレコード数を取得しておいて、最初に一度だけ ReDim することも可能です。( rs.RecordCount はレコードセットのタイプによっては一度 MoveLast しなければ全レコード数を取得できませんし、場合によっては MoveLast するのに非常に時間がかかる場合があるので要注意です。)

参考URL:http://homepage2.nifty.com/inform/vbdb/dao_basic …

この回答への補足

DBを開く部分でエラーになってしまいます。
オブジェクト参照がオブジェクトインターフェースに設定されていませんとで出来ます。

補足日時:2004/08/17 12:34
    • good
    • 0

> VB.2003です。



VB.NET 2003のこと?
ADO.NETでやるのが一般的です。

http://www.atmarkit.co.jp/fdotnet/basics/adonet0 …
http://www.atmarkit.co.jp/fdotnet/aspexp/aspexp0 …

>本はありますが、記載されていないようです。

記載されている本を買いましょう。
    • good
    • 0
この回答へのお礼

皆様 ご回答・アドバイス等ありがとうございます。

お礼日時:2004/08/26 00:24

VB.2003とはVB.netですね。


VB6、アクセスVBA、VB.netの3種が並存してややこしい
時期なので、VB.netであることを明示した方が良いかと。
----
http://www.mitene.or.jp/~sugisita/net/vbnet_rep0 …
にコード例が載っていました。こちらはVB.netを念頭の
記事です。ADOです。
ADOとJet
http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/98 …
    • good
    • 0

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