SQLServer は、SQLExpress を使用しています。古い環境からの移行なので、sa のパスワードは空になっています。 エクスポートする為に、Microsoft Access の select into 〜 from 〜 を使用し、SQLServer への接続は、動的に SQL 内で接続文字を作成して使用しています。SQLServer への接続部分は、『mypc\sqlexpress,1433』で、ポートが必要で、サーバー側の設定も必要です。別名を使う方法もありますが、SQLServer 構成用のソフトウェアをインストールしていないクライアントでは、レジストリに登録する必要があるので、この方法(mypc\sqlexpress,1433)が良いと思います。 Office 2003 までで動作する互換処理
Set Fso = CreateObject( "Scripting.FileSystemObject" ) Set Cn = CreateObject( "ADODB.Connection" ) Set Adox = CreateObject( "ADOX.Catalog" ) Set Shell = CreateObject( "Shell.Application" ) SelectDir = "C:\user\lightbox\vbs" ' Excel 削除 on error resume next Fso.DeleteFile(SelectDir & "\エクスポート.xls") on error goto 0 ' ユーザーフォルダ( C:\Users\ユーザ名 ) Set objFolder = Shell.Namespace(&H28) Set objFolderItem = objFolder.Self ' XP の場合の為、( Windows7 でもシステムが対応してくれます ) strPath = objFolderItem.Path & "\Local Settings\Temp\dummy.mdb" ' 一時 Microsoft Access の削除 on error resume next Fso.DeleteFile(strPath) on error goto 0 ' 接続文字列 ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & strPath & ";" ' 一時 Microsoft Access 作成 Adox.Create ConnectionString ' 作成した Microsoft Access に接続 Cn.Open ConnectionString ' V_EXCELOUT は、SQLExpress のビュー Query = "select * " Query = Query & "into [Excel 8.0;DATABASE=" & SelectDir & "\エクスポート.xls].[社員データ] " Query = Query & " from [ODBC;Driver={SQL Server};SERVER=mypc\sqlexpress,1433;Database=mydb;UID=sa;PWD=].[V_EXCELOUT]" Query = Query & " WHERE 年度 = '2013' and コード = '0001'" Query = Query & " ORDER BY V_EXCELOUT.ふりがな" Cn.Execute Query Call Cn.Close() MsgBox("処理が終了しました")
ここでの環境は Office 2007 です
Set Fso = CreateObject( "Scripting.FileSystemObject" ) Set Cn = CreateObject( "ADODB.Connection" ) Set Adox = CreateObject( "ADOX.Catalog" ) Set Shell = CreateObject( "Shell.Application" ) SelectDir = "C:\user\lightbox\vbs" ' Excel 削除 on error resume next Fso.DeleteFile(SelectDir & "\エクスポート.xlsx") on error goto 0 ' ユーザーフォルダ( C:\Users\ユーザ名 ) Set objFolder = Shell.Namespace(&H28) Set objFolderItem = objFolder.Self ' XP の場合の為、( Windows7 でもシステムが対応してくれます ) strPath = objFolderItem.Path & "\Local Settings\Temp\dummy.accdb" ' 一時 Microsoft Access の削除 on error resume next Fso.DeleteFile(strPath) on error goto 0 ' 接続文字列 ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & strPath & ";" ' 一時 Microsoft Access 作成 Adox.Create ConnectionString ' 作成した Microsoft Access に接続 Cn.Open ConnectionString ' V_EXCELOUT は、SQLExpress のビュー Query = "select * " Query = Query & "into [Excel 12.0 Xml;DATABASE=" & SelectDir & "\エクスポート.xlsx].[社員データ] " Query = Query & " from [ODBC;Driver={SQL Server};SERVER=mypc\sqlexpress,1433;Database=mydb;UID=sa;PWD=].[V_EXCELOUT]" Query = Query & " WHERE 年度 = '2013' and コード = '0001'" Query = Query & " ORDER BY V_EXCELOUT.ふりがな" Cn.Execute Query Call Cn.Close() MsgBox("処理が終了しました")
関連する記事
VBScriptドキュメント
|
【VBS + ADOの最新記事】
- VBScript : Oracle Database Express Edition 11g Release 2 に MDB(販売管理C) のデータをインポートする
- VBScript : PostgreSQL(9.3.4) に MDB(販売管理C) のデータをインポートする
- VBscript : 新しい Mictrosoft Access(2007以降)へ、古い MDB からデータを移行する
- VBScript : 古い Access2003 までのデータベース作成と新しい Access2007 以降のデータベース作成
- VBScript : ADO で Excel2007(Excel 2010、Excel 2013) にアクセスする( シートをテーブルとして読み込む )
- VBScript : ADO を使用して、MDB(Access2003) のデータを SQLite ODBC Driver で sqlite3(UTF-8) を作成
- VBScript +ADO / MDB から SQLite3 へ ODBC ドライバを使ってフィールドオブジェクトを使用した同一フォーマットのテーブル間のデータコピー(データベースは自動的に作成されま..
- VBScript : ADO経由の一時PL/SQL でエクスポートを実行する(Data Pump Export)
【VBScript関連のカテゴリ】