ドライバは、古い {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
|
【SQLExpressの最新記事】
- SQLServer の BCP で INT IDENTITY 列に csv からリストアする
- Microsoft SQLExpress : sa に空のパスワードを設定する方法
- SQLExpress バッチ DB バックアップ
- C# : VB.net : SQLExpress(SQLServer) : SQL-DMO と同等の SMO によるバックアップ
- 各RDBMS の正規表現の実装状況 : MySQL, SQLServer, PostgreSQL, Oracle
- SQLServer の OPENDATASOURCE 関数による Excel の参照( Microsoft.Jet.OLEDB.4.0 と Microsoft.ACE.OLEDB.12.0 )
- SQLServer(SQLExpress) : SQL学習用販売管理データとインポート用スクリプト
- SQLExpress 2005( および 2008 ) の接続設定
- SQLExpress 内に存在する表の CREATE 文を取得する
- ファイルから直接データベースを別のPCでリストアする / SQLExpress
- 目的のDBが使用している物理ファイルのパスの確認 / SQLExpress
- ピンポイントですが、SQLServer 2008 は SQLServer 7.0 のデータをロード出来ないのです
- SQLExpress2005 で副問い合わせを含む VIEW が異常終了しました
- VBS : SQLServerよりExcel へエクスポート(Excel製品は必要ありません)
- SQLServer のドキュメント
- VBS : SQLExpress(SQLServer) テーブルの正しい CREATE 文を取得する
- PHP : SQLExpress(SQLserver) : COM による接続処理
- PHP : PDO : SQLExpress(SQLServer)の読み込みと同時更新
- ODBC 用 JDBC : 動的接続 / SQLExpress(SQLServer) / 読み込みながらの行更新
- VBScript : ADO : 純正接続 : SQLExpress(SQLServer) 接続と通常処理