もう一つ、mdbファイル作成スクリプトを載せておきます。このようにACCESSデータペースは、アプリケーションがなくても、WSH機能を応用して自作のプログラムで自由に操作できます。シンプルなテキストデータとして取り出すことも、EXCELブックに埋め込むことも、これらの逆の操作も可能です。
' 取引データテーブル作成スクリプト
' プログラム名 "BokiDB_Create.vbs"
'
Option Explicit
Private ansYN
Private NewDBPath,SQL1
Private ConnectionString
Private Dbmei
Syori
Sub Syori()
DBMei="簿記.mdb"
' 取引データベース創成
With CreateObject("Scripting.FileSystemObject")
NewDBPath = "C:\"
' もし、このスクリプトと同じフォルダにファイルを作成したいときは、次のコードを使ってフォルダのパスを設定する。
' NewDBPath = .BuildPath(.GetParentFolderName(WScript.ScriptFullName),DBMei)
End With
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & NewDBPath & ";"
With CreateObject("ADOX.Catalog")
If Not CreateObject("Scripting.FileSystemObject").FileExists(NewDBPath) Then
.Create ConnectionString
.ActiveConnection.Close
Else
ansYN=MsgBox("すでに " & DBMei & "は存在しています。" & vbCrLf & "元のファイルを削除しますか?", vbYesNo, "ファイル差し替え確認")
If ansYN = vbYes Then
CreateObject("Scripting.FileSystemObject").DeleteFile NewDBPath
.Create ConnectionString
.ActiveConnection.Close
Else
MsgBox("処理を終わります。")
Exit Sub
End If
End If
End With
' 取引データベース内のテーブルを創成
With CreateObject("ADODB.Connection")
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Open NewDBPath
' 取引マスタテーブルを削除
' SQL1 = "DROP TABLE 取引マスタテーブル;"
' .Execute SQL1
' 現金出納帳テーブルを削除
' SQL1 = "DROP TABLE 現金出納帳テーブル;"
' .Execute SQL1
' 更新テーブルを削除
' SQL1 = "DROP TABLE 更新テーブル;"
' .Execute SQL1
SQL1 = "CREATE TABLE 取引マスタテーブル (取引コード INTEGER, 取引内容 char (50), PRIMARY KEY (取引コード));"
.Execute SQL1
SQL1 = "CREATE TABLE 現金出納帳テーブル (取引番号 INTEGER, 日付 DATE, 取引コード INTEGER, 貸借区分 SMALLINT, 金額 CURRENCY, PRIMARY KEY (取引番号));"
.Execute SQL1
' 更新テーブルを創成
SQL1 = "CREATE TABLE 更新テーブル (更新区分 SMALLINT, 取引番号 INTEGER, 日付 DATE, 取引コード INTEGER, 貸借区分 SMALLINT, 金額 CURRENCY, PRIMARY KEY (取引番号));"
.Execute SQL1
.Close
End With
End Sub