アクセスデータベースのテーブルのフィールドを配列に格納するには?

解決


銀河系軍団  2005-08-08 15:27:13  No: 123995  IP: [192.*.*.*]

タイトルの通り  アクセスデータベースのテーブルの列フィールドを配列に格納したいのですが  「※」印のところの記述の仕方が  わかりません。
もしかして  自分の考え方が  全く違っているんでしょうか?

    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

編集 削除
いな  2005-08-08 15:54:17  No: 123996  IP: [192.*.*.*]

例えば・・・。
c:\Access.txt

という場所に保存したければ
Open "c:\Access.txt" For Input As #prIntRsFileNo

でいいかと思います。

#'使用可能なファイルナンバーを取得
#prIntRsFileNo = FreeFile
#ってやっているのになぜ固定?

'データを変数に格納
Input #prIntRsFileNo, prStrKaisyaCd(prlngDatNo), prStrKaisyaNm(prlngDatNo)

編集 削除
銀河系軍団  2005-08-08 16:12:11  No: 123997  IP: [192.*.*.*]

返信ありがとうございます。

>例えば・・・。
>c:\Access.txt
>
>という場所に保存したければ
>Open "c:\Access.txt" For Input As #prIntRsFileNo
>
>でいいかと思います。

すいません。
言葉足らずでした。
ファイルパスを入力しなければいけないのはわかっていたんですが
アクセスデータベース内のテーブル名を指定するやり方が  わからないんです。

編集 削除
ん〜  2005-08-08 16:42:03  No: 123998  IP: [192.*.*.*]

根本的な考えならば↓を参考のこと
http://homepage2.nifty.com/inform/vbdb/

編集 削除
銀河系軍団  2005-08-08 18:21:38  No: 123999  IP: [192.*.*.*]

>根本的な考えならば↓を参考のこと
>http://homepage2.nifty.com/inform/vbdb/

わかりませんでした・・・。
よく考えたら  テーブルのフィールドじゃなくて
レコードセットのフィールドの  配列への格納の仕方でした。

編集 削除
KG  2005-08-08 18:45:00  No: 124000  IP: [192.*.*.*]

レコードセットのOpenは、Openステートメントではなくて
Openメソッドを使います。

レコードセットをOpenステートメントでOpenしてると理解されてる
ように受け取れましたので、、。

勘違いだったらすみません|o_o;

編集 削除
銀河系軍団  2005-08-09 11:35:55  No: 124001  IP: [192.*.*.*]

考え方が間違っていましたので  質問内容を変えます。
コンボボックスへの格納は

    With prRsKaisya

        '先頭レコードから最終レコードまで実行
        For i = 0 To .RecordCount - 1
        
            '会社コンボボックスに会社名称フィールドを追加
            cboCompanyNm.AddItem (.Fields("V_KAISYA_NM").Value)
            .MoveNext
        
        Next

    End With

上記でできたのですが  レコードセットの列フィールドを配列に格納したい場合は
どうすればいいでしょうか?

編集 削除
もげ  2005-08-09 11:53:08  No: 124002  IP: [192.*.*.*]

GetRowsメソッドについてヘルプで調べてみてください。

編集 削除
銀河系軍団  2005-08-09 12:43:11  No: 124003  IP: [192.*.*.*]

>GetRowsメソッドについてヘルプで調べてみてください。

ありがとうございます。
ただ  今の場合  レコードセットオブジェクトがひとつしかなくて
しかも  列が二つしかないのですが  GetRowsメソッド使ったほうがいいんでしょうか?

            '会社コンボボックスに会社名称フィールドを追加
            cboCompanyNm.AddItem (.Fields("V_KAISYA_NM").Value)
            .MoveNext

できるなら  上記のような感じのコードにしたいのですが・・・。

編集 削除
名無し  2005-08-09 14:18:15  No: 124004  IP: [192.*.*.*]

そうしたければそうすればいいじゃん
ただし聞く耳持たないなら人に聞くな

編集 削除
銀河系軍団  2005-08-09 14:28:31  No: 124005  IP: [192.*.*.*]

'カレントレコードを先頭に移動
        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

上記でできました。
ありがとうございました。

編集 削除
KG  2005-08-09 14:43:28  No: 124006  IP: [192.*.*.*]

解決したらCheckも忘れずに :D~

編集 削除
銀河系軍団  2005-08-09 15:47:00  No: 124007  IP: [192.*.*.*]

>解決したらCheckも忘れずに :D~

すいません。

編集 削除