Excelbat
Gebruiker
- Lid geworden
- 23 mrt 2012
- Berichten
- 403
Hallo allemaal,
In de bijlage 2x een access-database en 1x een excelfile. In de excelfile wil ik de gegevens inlezen vanuit beide databases. Het lukt me om met VBA beide tabellen apart in te lezen.
Maar in sql is er een commando 'inner join'. Weet iemand hoe ik dit 'inner join' verwerk in VBA zodat ik gegevens van de ene tabel kan koppelen aan de andere tabel?
Dit heb ik al met de macrorecorder opgenomen:
Bekijk bijlage JoinTables.rar
Greetz/Excelbat
In de bijlage 2x een access-database en 1x een excelfile. In de excelfile wil ik de gegevens inlezen vanuit beide databases. Het lukt me om met VBA beide tabellen apart in te lezen.
Maar in sql is er een commando 'inner join'. Weet iemand hoe ik dit 'inner join' verwerk in VBA zodat ik gegevens van de ene tabel kan koppelen aan de andere tabel?
Dit heb ik al met de macrorecorder opgenomen:
Code:
Sub TabelInlezenOne()
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
"ODBC;DSN=MS Access Database;DBQ=D:\Persoonlijk Data\Documenten\DatabaseOne.accdb;DefaultDir=D:\Persoonlijk Data\Documenten;DriverId=" _
), Array("25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;")), Destination:= _
Range("$A$1")).QueryTable
.CommandType = 0
.CommandText = Array( _
"SELECT TabelOne.Who, TabelOne.When" & Chr(13) & "" & Chr(10) & "FROM `D:\Persoonlijk Data\Documenten\DatabaseOne.accdb`.TabelOne TabelOne" _
)
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Tabel_Query_van_MS_Access_Database"
.Refresh BackgroundQuery:=False
End With
End Sub
Code:
Sub TabelInlezenTwo()
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
"ODBC;DSN=MS Access Database;DBQ=D:\Persoonlijk Data\Documenten\DatabaseTwo.accdb;DefaultDir=D:\Persoonlijk Data\Documenten;DriverId=" _
), Array("25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;")), Destination:= _
Range("$H$1")).QueryTable
.CommandType = 0
.CommandText = Array( _
"SELECT TabelTwo.Who, TabelTwo.What" & Chr(13) & "" & Chr(10) & "FROM `D:\Persoonlijk Data\Documenten\DatabaseTwo.accdb`.TabelTwo TabelTwo" _
)
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Tabel_Query_van_MS_Access_Database_1"
.Refresh BackgroundQuery:=False
End With
End Sub
Bekijk bijlage JoinTables.rar
Greetz/Excelbat