ExcelのODBC接続にバグ?

仕事で頼まれて、数十枚のシートをACCESSのテーブルにinsertするこんなコードを書いたのだが、

Dim db As DAO.Database

Set db = OpenDatabase("scott.mdb")
Dim s As Object
For Each s In Sheets
s.Activate
ActiveWorkbook.Names.Add Name:="data", _
RefersToR1C1:="=" & s.Name & "!R1C1:R2C3"
db.Execute "insert into test select name,address,saraly from " & _
[excel 8.0;database=test.xls].[data]"
Next

「オブジェクト data が見つからない」というエラーメッセージを出してdb.executeで止まって
しまう。
いろいろ試したところでは、シート名の最初の一文字が全角数字だとこのエラーが出る模様。
仕方がないのでとりあえず、strconvで全角数字を半角数字に変換してからinsertすること
にした。全角のかな・カナや英字も変換されてしまうが、今回の場合はExcelのブック自体、
ワークファイルだったのでこれでいいだろうと見切りをつけた。

なお、ACCESS側にクエリを作ってそれを実行することでも回避できそう。
[PR]
by nora1962 | 2007-12-04 23:58
<< 秋の新宿御苑 結局 openrowset 関数 >>