タイトルの通り アクセスデータベースのテーブルの列フィールドを配列に格納したいのですが 「※」印のところの記述の仕方が わかりません。
もしかして 自分の考え方が 全く違っているんでしょうか?
With prRsKaisya
'件数のカウント開始を0とする
prlngDatNo = 0
'使用可能なファイルナンバーを取得
prIntRsFileNo = FreeFile
Open ※ For Input As #1
'先頭レコードから最終レコードまで実行
For i = 1 To .RecordCount
'件数をカウント
prlngDatNo = prlngDatNo + 1
'配列の宣言
ReDim Preserve prStrKaisyaCd(prlngDatNo) As String
ReDim Preserve prStrKaisyaNm(prlngDatNo) As String
'データを変数に格納
Input #1, prStrKaisyaCd(prlngDatNo), prStrKaisyaNm(prlngDatNo)
Next
End With
例えば・・・。
c:\Access.txt
という場所に保存したければ
Open "c:\Access.txt" For Input As #prIntRsFileNo
でいいかと思います。
#'使用可能なファイルナンバーを取得
#prIntRsFileNo = FreeFile
#ってやっているのになぜ固定?
'データを変数に格納
Input #prIntRsFileNo, prStrKaisyaCd(prlngDatNo), prStrKaisyaNm(prlngDatNo)
返信ありがとうございます。
>例えば・・・。
>c:\Access.txt
>
>という場所に保存したければ
>Open "c:\Access.txt" For Input As #prIntRsFileNo
>
>でいいかと思います。
すいません。
言葉足らずでした。
ファイルパスを入力しなければいけないのはわかっていたんですが
アクセスデータベース内のテーブル名を指定するやり方が わからないんです。
根本的な考えならば↓を参考のこと
http://homepage2.nifty.com/inform/vbdb/
>根本的な考えならば↓を参考のこと
>http://homepage2.nifty.com/inform/vbdb/
わかりませんでした・・・。
よく考えたら テーブルのフィールドじゃなくて
レコードセットのフィールドの 配列への格納の仕方でした。
レコードセットのOpenは、Openステートメントではなくて
Openメソッドを使います。
レコードセットをOpenステートメントでOpenしてると理解されてる
ように受け取れましたので、、。
勘違いだったらすみません|o_o;
考え方が間違っていましたので 質問内容を変えます。
コンボボックスへの格納は
With prRsKaisya
'先頭レコードから最終レコードまで実行
For i = 0 To .RecordCount - 1
'会社コンボボックスに会社名称フィールドを追加
cboCompanyNm.AddItem (.Fields("V_KAISYA_NM").Value)
.MoveNext
Next
End With
上記でできたのですが レコードセットの列フィールドを配列に格納したい場合は
どうすればいいでしょうか?
GetRowsメソッドについてヘルプで調べてみてください。
>GetRowsメソッドについてヘルプで調べてみてください。
ありがとうございます。
ただ 今の場合 レコードセットオブジェクトがひとつしかなくて
しかも 列が二つしかないのですが GetRowsメソッド使ったほうがいいんでしょうか?
'会社コンボボックスに会社名称フィールドを追加
cboCompanyNm.AddItem (.Fields("V_KAISYA_NM").Value)
.MoveNext
できるなら 上記のような感じのコードにしたいのですが・・・。
そうしたければそうすればいいじゃん
ただし聞く耳持たないなら人に聞くな
'カレントレコードを先頭に移動
prRsKaisya.MoveFirst
'先頭レコードから最終レコードまで実行
For i = 0 To .RecordCount - 1
'件数をカウント
prlngDatNo = prlngDatNo + 1
'配列の再定義
ReDim Preserve prStrKaisyaCd(prlngDatNo) As String
ReDim Preserve prStrKaisyaNm(prlngDatNo) As String
'会社CD・会社名称フィールドを配列に格納
prStrKaisyaNm(prlngDatNo) = .Fields("V_KAISYA_NM").Value
prStrKaisyaCd(prlngDatNo) = .Fields("N_KAISYA_CD").Value
.MoveNext
Next
上記でできました。
ありがとうございました。
解決したらCheckも忘れずに :D~
>解決したらCheckも忘れずに :D~
すいません。
ツイート | ![]() |