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

解決


銀河系軍団  2005-08-09 00:27:13  No: 123995

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

    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-09 00:54:17  No: 123996

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

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

でいいかと思います。

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

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


銀河系軍団  2005-08-09 01:12:11  No: 123997

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

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

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


ん〜  2005-08-09 01:42:03  No: 123998

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


銀河系軍団  2005-08-09 03:21:38  No: 123999

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

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


KG  2005-08-09 03:45:00  No: 124000

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

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

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


銀河系軍団  2005-08-09 20:35:55  No: 124001

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

    With prRsKaisya

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

    End With

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


もげ  2005-08-09 20:53:08  No: 124002

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


銀河系軍団  2005-08-09 21:43:11  No: 124003

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

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

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

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


名無し  2005-08-09 23:18:15  No: 124004

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


銀河系軍団  2005-08-09 23:28:31  No: 124005

'カレントレコードを先頭に移動
        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 23:43:28  No: 124006

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


銀河系軍団  2005-08-10 00:47:00  No: 124007

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

すいません。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加