ich möchte gerne die Abfrage von Excel auf eine Access-DB dynamisch gestalten. Bei Pivotcaches kann ich das schon. Hab ich hier gelernt :-). Nun stellt sich für mich die Frage, wie das bei Abfrage funktioniert. Ich habe gedacht gleich. Anscheinend jedoch nicht. Ich verwende folgende Code:
Sub Load_Data_AKT()
Dim strsql As String
Dim strdb_name As String
Dim strdb_path As String
Dim stractive_sheet_name As String
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strcon1 As String
Dim strcon2 As String
Dim strcon3 As String
'externe Datenquelle eines Excel-Pivottabellen-Berichtes anpassen
'Microsoft Office 2003 Professional
' OLE-Datenconnection zu einer ACCESS-Datenbank
'1. Teil des Connection Strings
strcon1 = "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";"
strcon1 = strcon1 & "User ID=Admin;"
'3. Teil des Connection Strings
strcon3 = "Mode=Share Deny Write;"
strcon3 = strcon3 & "Extended Properties="""";"
strcon3 = strcon3 & "Jet OLEDB:System database="""";"
strcon3 = strcon3 & "Jet OLEDB:Registry Path="""";"
strcon3 = strcon3 & "Jet OLEDB:Database Password="""";"
strcon3 = strcon3 & "Jet OLEDB:Engine Type=5;"
strcon3 = strcon3 & "Jet OLEDB:Database Locking Mode=0;"
strcon3 = strcon3 & "Jet OLEDB:Global Partial Bulk Ops=2;"
strcon3 = strcon3 & "Jet OLEDB:Global Bulk Transactions=1;"
strcon3 = strcon3 & "Jet OLEDB:New Database Password="""";"
strcon3 = strcon3 & "Jet OLEDB:Create System Database=False;"
strcon3 = strcon3 & "Jet OLEDB:Encrypt Database=False;"
strcon3 = strcon3 & "Jet OLEDB:Don't Copy Locale on Compact=False;"
strcon3 = strcon3 & "Jet OLEDB:Compact Without Replica Repair=False;"
strcon3 = strcon3 & "Jet OLEDB:SFP=False"
'Definition der Datenbank
strdb_name = "Test.mdb"
'Worksheetname ermitteln
stractive_sheet_name = ActiveSheet.Name
'Pfad Datenbank ermitteln
strdb_path = "N:\Privat\"
'2. Teil des Connection Strings. Dieser Teil ist variabel mit Dateiname der Datenbank
strcon2 = "Data Source=" & strdb_path & strdb_name & ";" 'variabler Teil Connection-String
'Datenbasis und Max-Stichtag ermitteln
strsql = "SELECT tbl_tablename.coloumn_name " _
& "FROM `" & strdb_path & strdb_name & "`.tbl_tablename"
'Datenquelle Pivottabelle aktualisieren
With ActiveSheet.QueryTables
.Connection = strcon1 & strcon2 & strcon3
.CommandText = strsql
.MaintainConnection = False
End With
Worksheets(stractive_sheet_name).Select
Selection.QueryTable.Refresh BackgroundQuery:=False
rs.Close
Set rs = Nothing
Set db = Nothing
End Sub
Könnt ihr mir bitte weiterhelfen?
danke
lg Mario