Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Bestimmter Accessdatensatz in Exel ausgeben
#1
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

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
Antworten Top
#2
dazu benötigst du eine Änderung deiner SQL abfrage

in etwa so "Select * From AntragslisteAbfrage where ID = xyz"  

https://www.w3schools.com/sql/sql_where.asp
[-] Folgende(r) 1 Nutzer sagt Danke an ralf_b für diesen Beitrag:
  • Royalty
Antworten Top
#3
(03.04.2021, 23:19)ralf_b schrieb: dazu benötigst du eine Änderung deiner SQL abfrage

in etwa so "Select * From AntragslisteAbfrage where ID = xyz"  

https://www.w3schools.com/sql/sql_where.asp

Vielen Dank für den Tipp. Hat geklappt Wink
Gruß
Roy
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste