DB 作成

  Excel



Excel(*.xls) は 既存の Excel または MDB に Microsoft.Jet.OLEDB.4.0 で接続されている場合、接続されている Excel に存在するテーブルを転送する事によって作成する事ができますが、転送されたテーブルは完全な削除ができないので注意する必要があります

※ ADO からテーブルの定義を削除する事はできますが、実体としてのシートは削除されません。
※ Excel.Application を使用すれば シートも削除 できますが、Excel がインストールされていなければなりません。
※ ( 但し、Excel の Book には、少なくとも一つのシートが必要なので、この処理では使用できません )

接続文字列の IMEX=1 を省くと、ブックが存在しなくても接続可能です
CREATE 文でテーブルを作成すると、ブックが作成されます

IMEX=1 そのものの意味については、Microsoft の こちら に書かれていますが、Excel で作成されたデータを ADO からアクセスする時に重要になります。

何故存在チェックをしたりしなかったりするのかは解りませんが、Excel を純粋に DB として扱うのは稀なので、IMEX=1 を記述したパターンを紹介しています。

  
strTarget = "C:\TEMP\excel\Book1.xls"

ConnectionString = _
	"Provider=Microsoft.Jet.OLEDB.4.0;" & _
	"Data Source=" & strTarget & ";" & _
	"Extended Properties=""Excel 8.0;IMEX=1;"""

on error resume next
Cn.Open ConnectionString
if Err.Number <> 0 then
	WScript.Echo Err.Description
	Wscript.Quit
end if
on error goto 0

Query = "select * into [Excel 8.0;DATABASE=C:\TEMP\excel\New.xls].[dummy]"
Query = Query & " from [社員マスタ] where 0"

Cn.Execute Query
Cn.Execute "drop table [Excel 8.0;DATABASE=C:\TEMP\excel\New.xls].[dummy]"

Cn.Close
  

where 0 という条件によって、データの無いテーブルが dummy として作成されます。
dummy の定義は 社員マスタ と同じで、ADO 経由で drop table 文で削除する事によってdummy の定義は失われ、dummy という名前だけが残ります

これによって、[dummy] というテーブルにはアクセスできなくなります(削除される)が、[dummy$] というテーブル(ワークシート)が残っており、アクセスも可能です。










  infoboard   管理者用   
このエントリーをはてなブックマークに追加




SQLの窓  天気  IT用語辞典
Yahoo!ニュース  マルチ辞書
PHP マニュアル  Google URL短縮 


フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ