adoRsで読み込むアクセステーブルの列名のルール
こんばんは。
お世話になります。
エクセルでアクセスのデータを読み込みに行き、
取得した結果をシートに出力しています。
このとき、一部の列は出力ができ、一部の列は出力しようとするとエラーになります。
以下のサンプルをご確認ください。
adoRs.Open strSQL, adoCn 'SQLを実行して対象をRecordSetへ
' Range("B12:AI1000").ClearContents '前のデータクリア
Range("B12:AI1000").Clear '前のデータクリア
i = 12 'スタート行
Do Until adoRs.EOF 'レコードセットが終了するまで処理を繰り返す
Cells(i, 2) = adoRs!ID
Cells(i, 3) = adoRs!item_no
Cells(i, 4) = adoRs!color_no
Cells(i, 5) = adoRs!item_name
Cells(i, 6) = adoRs!FREE
Cells(i, 7) = adoRs!3m
Cells(i, 8) = adoRs!50_0-1m
この例で行くと、Cells(i, 7)の部分でエラーになります。
列名に数字が入っていると、列名として適切に認識しないのでしょうか?
Cells(i, 8)については列名に「_」まで入っているので、
エクセルのstrSQLへのSQLクエリのセットの改行時にも使われる記号ですし、
より悪いのかなとも思います。
列名に数字を入れるとダメなものでしょうか?
また列名が数字の場合でもエラーにならない表現方法はあるのでしょうか?
ご回答よろしくお願いいたします。
お礼
kuukoさん アドバイスありがとうございます。 いろいろ名称を変えたり…と試してみました。 結果、 <Table1 NO=001> </Table1> といった書き方で、NOというレコードがある別のテーブルが あることが原因でした。 <Table11> <NO>001</NO> </Table1> とすると解決できました。 ありがとうございました。