処理の内容は、MySQL から Excel へのエクスポートですが、接続には Access を使用します。ただ、環境の問題で MySQL のドライバを 32ビットしかインストールしていなかったのでこのようになっています。 ShellSpecialFolderConstants Enumeration
<JOB> <SCRIPT language="JScript"> // **************************** // SysWOW64\cscript.exe を使用 // **************************** str = WScript.FullName; if ( str.search(/syswow/i) == -1 ) { shell = new ActiveXObject("Shell.Application"); folder = shell.Namespace( 0x29 ); folderItem = folder.Self; target_path = folderItem.Path; str = WScript.ScriptFullName; WshShell = new ActiveXObject("WScript.Shell"); WshShell.Run( "cmd.exe /c " + target_path + "\\cscript.exe \"" + str + "\" & pause", 3 ); WScript.Quit(); } // **************************** // オブジェクト作成 // **************************** var cn = new ActiveXObject( "ADODB.Connection" ) // **************************** // 接続用の文字列を準備 // **************************** var file_path1_accdb = "C:\\Users\\sworc\\Documents\\hanbaic-set\\hanbaic.accdb"; var connection_string = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + file_path1_accdb + ";"; // **************************** // エクスポート用の文字列を準備 // **************************** var import_target = "[ODBC;Driver={MySQL ODBC 5.3 Unicode Driver};server=localhost;database=lightbox;uid=root;pwd=]"; var target_name = "社員マスタ"; var file_path_xlsx = "C:\\Users\\sworc\\Documents\\hanbaic-set\\new.xlsx"; var export_target = "[Excel 12.0 xml;DATABASE=" + file_path_xlsx +"]"; var export_query = "select * into " + export_target + "." + target_name + " from " + import_target + "." + target_name; WScript.Echo( export_query ); // **************************** // エクスポート // **************************** cn.Open( connection_string ); cn.Execute( export_query ); cn.Close(); WScript.Echo( target_name + " の Excel へのエクスポート処理が終了しました" ); </SCRIPT> </JOB>
|