Hallo Liebe Community,
ich schetere seit nun mehr seit 2 Tagen an meinem VBA-Code und hoffe auf eure Hilfe.
Ziel ist es Daten aus einer Abfrage mittels 3 Kriterien zu filtern und dann in ein Vorbereitetes Excel zu übertragen.
Im beigefügten Code habe ich das ganze erst einmal mit einem Filterkriterium versucht.
Der Dubugger springt immer wieder auf die Zeile:
Set rs.Filter = "BUKRS alt = '0400'"
Dabei erhalte ich die Fehlermeldung:
"Fehler beim Kompilieren: Unzulässige Verwendung einer Eigenschaft"
Anbei der Code und Vielen Dank im Voraus:
Private Sub cmdErstellungAbstimmlisten_Click()
Dim rs As DAO.Recordset
Dim rsFilter As DAO.Recordset
Dim xlApp As Object
Dim xlWb As Object
Dim xlSheet_Abgänge As Object
Dim xlSheet_Zugänge As Object
Dim Zielpfad As String
Dim Pfad_Muster As String
Dim Speichername As String
Zielpfad = Me.txtZielpfad
Pfad_Muster = Me.txtMusterAbstimmliste
Select Case Me.chkAllBukrs
Case True
MsgBox "true"
Case False
Set rs = CurrentDb.OpenRecordset(qryErstellungAbstimmlisteBUKRS)
Set rs.Filter = "BUKRS alt = '0400'" 'später Übergabe per Variable aus Formular
Set rsFilter = rs.OpenRecordset
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlWb = xlApp.Workbooks.Open(Pfad_Muster)
Set xlSheet_Abgänge = xlWb.Sheets("Abgänge")
Set xlSheet_Zugänge = xlWb.Sheets("Zugänge")
xlSheet_Abgänge.Cells(2, 1).CopyFromRecordset rs
xlWb.Sheets("Zugänge").Select
xlSheet_Zugänge.Range("A2").Select
xlSheet_Zugänge.Range("A2").CopyFromRecordset rs
xlWb.Sheets("Abgänge").Select
Speichername = Zielpfad & "\" & Me.txtBukrs & "_Abstimmliste.xlsx"
xlWb.saveas Speichername, 51
xlWb.Close
xlApp.Application.Quit
Set rs = Nothing
Set xlApp = Nothing
Set xlWb = Nothing
Set xlSheet_Abgänge = Nothing
Set xlSheet_Zugänge = Nothing
End Select
End Sub
Gruß JE-2017
@JE-2017
.Openrecordset erwartet den Namen der Abfrage als String.
Set rs = CurrentDb.OpenRecordset("qryErstellungAbstimmlisteBUKRS")
gruss ekkehard
Hallo,
lt. Fehlermeldung:
Set rs.Filter = "[BUKRS alt] = '0400'" 'später Übergabe per Variable aus Formular
zudem sind Eckklammern wegen Leerzeichen im Namen erforderlich.
Warum nicht gleich:
Set rs = CurrentDb.OpenRecordset("Select * from qryErstellungAbstimmlisteBUKRS Where [BUKRS alt] = '0400'")
Danke an euch beiden, manchmal sieht man den Wald vor lauter Bäumen nicht mehr.
das "Set" habe ich volkommen verpeilt...
mit den Klammern und den "" hatte ich beim rumexperimentieren zwischenzeitlich vergessen.
Danke und eine schöne Weihnachtszeit!