Sub oracletest() 'オラクルのデータを読み込むテスト 'オブジェクト変数の宣言 Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset 'オラクルと接続 'cn.ConnectionString = "Provider=MSDAORA; Data Source=*****; USER ID = *****; PASSWORD =*****;" '大釜用 'cn.ConnectionString = "Provider=MSDAORA; Data Source=*****; USER ID = *****; PASSWORD =*****;" '金ヶ崎用 cn.ConnectionString = "Provider=MSDAORA; Data Source=*****; USER ID = *****; PASSWORD =*****;" 'じゃんまる用 'オラクルのDBにアクセス開始 cn.Open Set rs = CreateObject("ADODB.Recordset") selcmd = "SELECT JPLMST.PLCD, JPLMST.CLCD" selcmd = selcmd & " FROM JPLMST" selcmd = selcmd & " WHERE (((JPLMST.CLCD)='230101'))" rs.Open selcmd, cn rs.MoveFirst a = rs("plcd") rs.MoveNext rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub Sub sqltest() 'sqlのデータを読み込むテスト 'オブジェクト変数の宣言 Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset 'sqlと接続 'cn.ConnectionString = "Provider=MSDAORA; Data Source=ogama; USER ID = *****; PASSWORD =*****;" '大釜用 'cn.ConnectionString = "Provider=MSDAORA; Data Source=kanega; USER ID = *****; PASSWORD =*****;" '金ヶ崎用 'cn.ConnectionString = "Provider=MSDAORA; Data Source=janm1; USER ID = *****; PASSWORD =*****;" 'じゃんまる用 cn.ConnectionString = "Provider=SQLOLEDB.1;Data Source=motohiro7\SQL_INSTANCE;User ID=sa;Password=sa;Initial Catalog=RPOS-SYSTEM; " 'Data Source=motohiro7\SQL_INSTANCE" '自宅用" 'sqlのDBにアクセス開始 cn.Open Set rs = CreateObject("ADODB.Recordset") selcmd = "SELECT JPLMST.PLCD, JPLMST.CLCD" selcmd = selcmd & " FROM JPLMST" selcmd = selcmd & " WHERE (((JPLMST.CLCD)='230101'))" rs.Open selcmd, cn rs.MoveFirst a = rs("plcd") rs.MoveNext rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub Sub accesstest() 'accessのデータを読み込むテスト 'オブジェクト変数の宣言 Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset 'sqlと接続 'cn.ConnectionString = "Provider=MSDAORA; Data Source=*****; USER ID = *****; PASSWORD =*****;" '大釜用 'cn.ConnectionString = "Provider=MSDAORA; Data Source=*****; USER ID = *****; PASSWORD =*****;" '金ヶ崎用 'cn.ConnectionString = "Provider=MSDAORA; Data Source=*****; USER ID = *****; PASSWORD =*****;" 'じゃんまる用 cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=c:\sa\tushida.mdb;" '自宅用" 'sqlのDBにアクセス開始 cn.Open Set rs = CreateObject("ADODB.Recordset") selcmd = "SELECT *****_JPLMST.PLCD, *****_JPLMST.CLCD" selcmd = selcmd & " FROM *****_JPLMST" selcmd = selcmd & " WHERE (((*****_JPLMST.CLCD)='230101'))" rs.Open selcmd, cn rs.MoveFirst a = rs("plcd") rs.MoveNext rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub '総合マスターアップのモジュール Sub 総合マスターup1() Dim tmpcd As String '店舗コード Dim actablenm As String 'アクセスの追加するテーブル名 Dim reccnt As Integer '登録する週のレコードの件数をいれておく tmpcd = Sheets("sheet1").Range("c4") '店舗コードを設定する actablenm = "総合マスタ" 'テーブル名はこれ 'それぞれの週データのレコード件数を確認しておく Sheets("sheet6").Select If Range("A2").Value = "" Then MsgBox "レコードがありません" Exit Sub Else reccnt = Range("a1").End(xlDown).Row 'レコードの最終行を取得 reccnt = reccnt '- 1 これ引く1がレコード数だが、2行からスタートするのでそのまま End If 'ここからはaccessへの追加の分なので、変数宣言の分から分けておく(判らなくなるから) Dim cn As Connection 'コネクションの設定宣言 Dim rs As Recordset 'レコード設定の宣言 '接続 db名 c:\FB\総合マスタ.mdbがパス名 Set cn = New Connection Select Case tmpcd Case 1001 '大釜店 cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=\\monkey\d\FB\総合マスタ.mdb" Case 1002 '金ヶ崎店 cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=\\bird\d\FB\総合マスタ.mdb" Case 1003 '津志田店 'cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=\\bird\d\FB\総合マスタ.mdb" cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=c:\FB\総合マスタ.mdb" End Select cn.Open '接続宣言 '各店週データテーブルからデータを取得 Set rs = New Recordset rs.Open actablenm, cn, adOpenKeyset, adLockOptimistic '追加する件数をループする For i = 2 To reccnt 'データ追加 rs.AddNew rs!フィールド1 = Cells(i, 1).Value rs!総合コード = Cells(i, 2).Value rs!銀行cd4 = Cells(i, 3).Value rs!銀行名 = Cells(i, 4).Value rs!カナギンコウ15 = Cells(i, 5).Value rs!支店cd7 = Cells(i, 6).Value rs!支店番号3 = Cells(i, 7).Value rs!支店名 = Cells(i, 8).Value rs!カナシテン15 = Cells(i, 9).Value rs!種別 = Cells(i, 10).Value rs!口座No = Cells(i, 11).Value rs!口座No先頭1普通2当座8 = Cells(i, 12).Value rs!口座名義30 = Cells(i, 13).Value rs!口座漢字名義名30 = Cells(i, 14).Value rs!その他の内容 = Cells(i, 15).Value rs!グループ分け = Cells(i, 16).Value rs!区分1 = Cells(i, 17).Value rs!区分2 = Cells(i, 18).Value rs!振込手数料 = Cells(i, 19).Value rs!手数料仮払消費税 = Cells(i, 20).Value rs!受取手数料 = Cells(i, 21).Value rs!受取手数消費税 = Cells(i, 22).Value rs!他1 = Cells(i, 23).Value rs!テナントコード = Cells(i, 24).Value rs!旧台帳銀行名 = Cells(i, 25).Value rs!率 = Cells(i, 26).Value rs!住所 = Cells(i, 27).Value rs!電話番号 = Cells(i, 28).Value rs!店舗名 = Cells(i, 29).Value rs!分類コード = Cells(i, 30).Value rs!分類名 = Cells(i, 31).Value rs!取り扱い品 = Cells(i, 32).Value rs!分類コード2 = Cells(i, 33).Value rs!形態 = Cells(i, 34).Value rs!大 = Cells(i, 35).Value rs!金 = Cells(i, 36).Value rs!フィールド37 = Cells(i, 37).Value rs.Update 'これらをアップデートする ! Next i MsgBox actablenm & " " & reccnt & " 件のレコードを追加しやんすた !" '一応確認の意味でのメッセージ(何の意味もないが) 'レコードセットなどの後処理をする rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub '*******総合マスター削除のモジュール Sub 総合マスター削除() Dim tmpcd As String '店舗コード Dim actablenm As String 'アクセスの追加するテーブル名 Dim reccnt As Integer '登録する週のレコードの件数をいれておく tmpcd = Sheets("sheet1").Range("c4") '店舗コードを設定する actablenm = "総合マスタ" 'テーブル名はこれ 'それぞれの週データのレコード件数を確認しておく Sheets("sheet6").Select If Range("A2").Value = "" Then MsgBox "レコードがありません" Exit Sub Else reccnt = Range("a1").End(xlDown).Row 'レコードの最終行を取得 reccnt = reccnt '- 1 これ引く1がレコード数だが、2行からスタートするのでそのまま End If 'ここからはaccessへの追加の分なので、変数宣言の分から分けておく(判らなくなるから) Dim cn As Connection 'コネクションの設定宣言 Dim rs As Recordset 'レコード設定の宣言 '接続 db名 c:\FB\総合マスタ.mdbがパス名 Set cn = New Connection Select Case tmpcd Case 1001 '大釜店 cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=\\monkey\d\FB\総合マスタ.mdb" Case 1002 '金ヶ崎店 cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=\\bird\d\FB\総合マスタ.mdb" Case 1003 '津志田店 'cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=\\bird\d\FB\総合マスタ.mdb" cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=c:\FB\総合マスタ.mdb" End Select cn.Open '接続宣言 '各店週データテーブルからデータを取得 Set rs = New Recordset rs.Open actablenm, cn, adOpenKeyset, adLockOptimistic '削除 ret = MsgBox("一旦すべてのレコードを削除ステ、現状のデータを書込むけど、ほんとにいいんだぇんが?", vbYesNo + vbQuestion, "削除") Select Case ret Case vbYes Do Until rs.EOF rs.Delete rs.MoveNext Loop Case vbNo Exit Sub End Select MsgBox actablenm & " " & reccnt & " 件のレコードを削除しやんすた !" '一応確認の意味でのメッセージ(何の意味もないが) 'レコードセットなどの後処理をする rs.Close Set rs = Nothing cn.Close Set cn = Nothing