|
▼kokoa さん:
>Accessの配達者一覧のテーブルから
>すでに入力されているEXCEL側の配達者に対して地域を入力させたいのですが
>可能ですか?
もう、解決されていると思いますが
こんな感じで出来ます。
Option Explicit
Sub MdbXlsSet()
Dim strMdb As String
Dim strXls As String
Dim strSQL As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
strXls = ThisWorkbook.FullName
strMdb = "D:\AccessAPP\db21.mdb"
strSQL = "SELECT T1.[地域], T2.[日々配達者] " & _
"FROM 配達者一覧 AS T1 RIGHT JOIN (SELECT * FROM [配達記録$] IN '" & strXls & "' " & _
"'Excel 8.0;HDR=YES') AS T2 ON T1.[配達者] = T2.[日々配達者]"
'配達者一覧 (Access側)
'地域|配達者
'大阪|太郎
'京都|次郎
'東京|三郎
'
'
'配達記録 (EXCEL側)
'地域名|日々配達者
' |三郎
' |次郎
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & strMdb
.Open
End With
Set rs = New ADODB.Recordset
With rs
.ActiveConnection = cn
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockOptimistic
.Source = strSQL
.Open Options:=adCmdText
End With
With Worksheets("配達記録")
.Cells.Resize(.Rows.Count - 1).Offset(1).Clear
.Range("A2").CopyFromRecordset rs
End With
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
End Sub
|
|