このサンプルを実行すると、実行プログラムと同一フォルダにschema.iniというファイルが作成されます。このファイルの中身を見てみるとフィールド名とデータ型等の内容が記載されており、SQL文を実行する時にこのschema.iniというファイルを参照してエクスポートいるようです。このファイルは一度作成されてしまうと以降のエクスポート処理では再作成されず、参照だけされるのでテーブルの中にフィールドを追加したり、データ型を変更した場合はこのファイルを削除しておく必要があります。削除しないと以前のフィールド名とデータ型等でエクスポート処理が実行されるため望んだ結果になりません。
※サンプル中で使用されているMakeFileNameとStripFileNameに関しては
パス名からファイル名取得
パス名からファイル名を除く
を参照して下さい。
Private SubForm_Load()
CallExport(App.Path & "\work.mdb", "新規テーブル", App.Path & "\export.txt", "csv")
CallExport(App.Path & "\work.mdb", "新規テーブル", App.Path & "\export.xls", "xls")
End Sub
PrivateSubExport(strDbPathAs String, strTblNameAs String, strExpPathAs String, strFlgAs String)
DimretAsIntegerDimwsAsWorkspace
DimdbAsDatabase
Dim rsAsRecordset
DimstrConnectAsString
DimstrSqlAsString
On Error GoToErrHandler
Select CasestrFlg
Case"csv"
'CSVファイルの場合
strConnect = "[Text;database=" & StripFileName(strExpPath) & "]."
Case"xls"
'Excelの場合
strConnect = "[Excel 5.0;database=" & strExpPath & "]."
End Select
'データベースのオープン
Setws = DBEngine.Workspaces(0)
Setdb = ws.OpenDatabase(strDbPath,False,False)
strSql = "SELECT * INTO " & strConnect & MakeFilename(strExpPath) & " FROM " & strTblName
db.Execute strSql
db.Close
ws.Close
Exit Sub
ErrHandler:
ret = MsgBox("<" & Err & ">" & Error(Err), vbOKOnly, "Export")
End Sub
DownLoad vbtips018.lzh 9KB (VB6.0)