ドライバは、古い {SQL Server} ドライバを使用していますが、VBS では、{SQL Native Client} を使っても同じだと思います。 SQLExpress(SQLServer) の 32ビット クライアントの設定です
MSSQLServer のレジストリ位置を開く VBScript のダウンロード ※ コメント部分ですが、このサンプルで SQL の更新を接続オブシェクトのメソッドで SQL 文字列を使って実行しています。 フィールドオブジェクトにセットして更新する方法もありますが、他の言語間での移植が困難になるので、このほうが良い環境はたくさんあると思います 関連する記事 SQLExpress 2005 の接続設定 VBScript : ADO : フィールドオブジェクトを使用した同一フォーマットのテーブル間のデータコピー VBScript : ADO : 純正接続 : SQLExpress(SQLServer) 接続と通常処理 SQLExpress にインポートするデータ(MDB)
![]()
' *********************************************************** ' SQLExpress / ODBC / {SQL Server} ' ADO : 文字列更新 ' FileSystemObject : CSV出力 ' *********************************************************** strDriver = "{SQL Server}" strTarget = "reiwa" ' 別名 strDB = "lightbox" strUser = "sa" strPass = "passwordpassword" ' *********************************************************** ' ADO + FileSystemObject ' *********************************************************** Set Cn = CreateObject( "ADODB.Connection" ) Set Rs = CreateObject( "ADODB.Recordset" ) Set Fso = CreateObject( "Scripting.FileSystemObject" ) ' ********************************************************** ' 接続文字列 ' ********************************************************** ConnectionString = _ "Provider=MSDASQL;" & _ "Driver=" & strDriver & ";" & _ "SERVER=" & strTarget & ";" & _ "DATABASE=" & strDB & ";" & _ "UID=" & strUser & ";" & _ "PWD=" & strPass & ";" ' ********************************************************** ' 接続 ' クライアントカーソル(3)を使う事が推奨されます ' ********************************************************** Cn.CursorLocation = 3 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 * from [社員マスタ]" ' ********************************************************** ' レコードセット ' オブジェクト更新時はレコード単位の共有的ロック(3)を ' 使用します( デフォルトでは更新できません ) ' ※ デフォルトでも SQLによる更新は可能です ' ********************************************************** 'Rs.LockType = 3 on error resume next Rs.Open Query, Cn if Err.Number <> 0 then Cn.Close Wscript.Echo Err.Description Wscript.Quit end if on error goto 0 ' ********************************************************** ' 出力ファイルオープン ' ********************************************************** Set Csv = Fso.CreateTextFile( "社員マスタ.csv", True ) ' ********************************************************** ' タイトル出力 ' ********************************************************** Buffer = "" For i = 0 to Rs.Fields.Count - 1 if Buffer <> "" then Buffer = Buffer & "," end if Buffer = Buffer & Rs.Fields(i).Name Next Csv.WriteLine Buffer ' ********************************************************** ' データ出力 ' ********************************************************** ' UpdateCnt = 0 Do While not Rs.EOF Buffer = "" For i = 0 to Rs.Fields.Count - 1 if Buffer <> "" then Buffer = Buffer & "," end if Buffer = Buffer & Rs.Fields(i).Value Next ' 更新 ' strDay = (UpdateCnt mod 10) + 1 ' Query = "update [社員マスタ] set [生年月日] = '2005/01/0" & strDay & "'" ' Query = Query & " where 社員コード = '" ' Query = Query & Rs.Fields("社員コード").Value ' Query = Query & "'" Cn.Execute( Query ) Csv.WriteLine Buffer Rs.MoveNext ' UpdateCnt = UpdateCnt + 1 Loop ' ********************************************************** ' ファイルクローズ ' ********************************************************** Csv.Close ' ********************************************************** ' レコードセットクローズ ' ********************************************************** Rs.Close ' ********************************************************** ' 接続解除 ' ********************************************************** Cn.Close
hanbaic.mdb よりインポートする為の バッチファイル
C:\Windows\SysWOW64\cscript.exe import.vbs
Windows10 64ビットで、Office が 32ビットの場合を想定しています hanbaic.mdb よりインポートする為の VBScript
' *********************************************************** ' hanbaic.mdb からインポート ' *********************************************************** strMdbPath = "C:\Users\lightbox\Downloads\hanbaic_mdb\hanbaic.mdb" strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strMdbPath & ";" ' *********************************************************** ' ADO ' *********************************************************** Set Cn = CreateObject( "ADODB.Connection" ) ' ********************************************************** ' MDB 用接続文字列 ' ********************************************************** ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strMdbPath & ";" ' ********************************************************** ' 接続 ' ********************************************************** on error resume next Cn.Open ConnectionString if Err.Number <> 0 then WScript.Echo Err.Description Wscript.Quit end if on error goto 0 ' ********************************************************** ' 実行 ' ********************************************************** RefString = "[ODBC;Driver={SQL Server};Server=reiwa;Database=lightbox;Uid=sa;Pwd=passwordpassword]" Query = "select * into " & RefString & ".[社員マスタ] from [社員マスタ]" on error resume next Cn.Execute Query if Err.Number <> 0 then WScript.Echo Err.Description Wscript.Quit end if on error goto 0 ' ********************************************************** ' 接続解除 ' ********************************************************** Cn.Close