03.04.2021, 23:25
Hi,
wieder mal eine kleine Frage zu meinen Übungsaufgaben. Als Übungsaufgabe war vorgegeben, dass ich eine Tabelle aus Access in Excel übernehmen soll. Das habe ich auch hinbekommen.
Jetzt wollte ich versuchen, einen bestimmten Datensatz anhand der ID zu filtern, bekomme es aber nicht hin.
Hier mal meine funktionierender Code
Wie müsste ich den abändern, wenn ich nur die ID1 in das Datenblatt übernehmen möchte?? Ich hab keine Idee!
Gruß
Roy
wieder mal eine kleine Frage zu meinen Übungsaufgaben. Als Übungsaufgabe war vorgegeben, dass ich eine Tabelle aus Access in Excel übernehmen soll. Das habe ich auch hinbekommen.
Jetzt wollte ich versuchen, einen bestimmten Datensatz anhand der ID zu filtern, bekomme es aber nicht hin.
Hier mal meine funktionierender Code
Code:
Function DatenVonAccessHolen()
'Alte Daten im Blatt löschen (Zieltabelle2)
Worksheets("Zieltabelle2").Activate
Cells.Select
Selection.Clear
' Variablen definieren
Dim DBFullName As String
Dim connect As String
Dim source As String
Dim Connection As ADODB.Connection
Dim RecordSet As ADODB.RecordSet
Dim Col As Integer
DBFullName = "H:\Umsetzung\Datenbankordner\Database1-AL.accdb"
Set Connection = New ADODB.Connection
connect = "Provider=Microsoft.ACE.OLEDB.12.0;"
connect = connect & "Data Source=" & DBFullName & ";"
Connection.Open ConnectionString:=connect
Set RecordSet = New ADODB.RecordSet
With RecordSet
' ab hier irgendwie filtern?? ID
source = "Select * From AntragslisteAbfrage"
.Open source:=source, ActiveConnection:=Connection
For Col = 0 To RecordSet.Fields.Count - 1
Range("A1").Offset(0, Col).Value = RecordSet.Fields(Col).Name
Next
' Daten aus Access in Excel in den Zeilen schreiben
' Offset (Zeile,Spalte) = Ab welcher Zeile und Spalte die Daten eingetragen werden sollen
Range("A1").Offset(1, 0).CopyFromRecordset RecordSet
End With
ActiveSheet.Columns.AutoFit
Set RecordSet = Nothing
Connection.Close
Set Connection = Nothing
Dim y As Integer
Dim i As Integer
'I ist die Zeile
y = 0
i = 2
Do While Not IsEmpty(Cells(i, 3))
y = y + 1
i = i + 1
Loop
MsgBox "Es wurden improtiert" & y
End Function
Wie müsste ich den abändern, wenn ich nur die ID1 in das Datenblatt übernehmen möchte?? Ich hab keine Idee!
Gruß
Roy