goo blog サービス終了のお知らせ 

VB POWER

visual basicは本当にpowerfulです。このVb powerを紹介していきます。

adoでexcel dataを取り出すには

2004-12-13 10:24:24 | ado&dao
Excelのdataを扱うとき、SQLで処理できればすごく便利。あえて、acccessにdataを移す必要は
ないです。以下は、excelが自分自身のdataをSQLで取り出すときの方法です。ただし、accessのときとの違い・注意は次の3点。
- connection stringに"Extended Properties=Excel 8.0;"を記述する。
- table nameの代わりにsheet nameを使えるが、[TABLENAME$]と[,],$をつける必要あり。
- sheetの一行目がtableのfieldに相当し、最初の数行でdata typeが自動的に判断されるので注意。
- accessと違って、メモリがうまく開放されないようで、同じprogram中で何度もacccessを繰り返すと、tableのリンクが外れてしまう。

Dim CN As New ADODB.Connection
CN.Open "Provider=Microsoft.Jet.OLEDB.4.0; Extended Properties=Excel 8.0; Data Source=" + ThisWorkbook.Path & "\" & ThisWorkbook.Name
Dim RS As New ADODB.Recordset
SQL1 = "Select * From [TABLENAME$]"
RS.Open SQL1, CN, 3, 3
I = 0
Do While Not RS.EOF
I = I + 1
FIELD1_DATA(I) = RS("FIELD1")
FIELD2_DATA(I) = RS("FIELD2")
RS.MoveNext
Loop
RECORDNUM = I
RS.Close
Set RS = Nothing
CN.Close
Set CN = Nothing