Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: JE-2017 am Dezember 05, 2019, 16:46:19

Titel: Filter Recordset funktioniert nicht
Beitrag von: JE-2017 am Dezember 05, 2019, 16:46:19
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
Titel: Re: Filter Recordset funktioniert nicht
Beitrag von: Beaker s.a. am Dezember 05, 2019, 17:52:15
@JE-2017
.Openrecordset erwartet den Namen der Abfrage als String.
Set rs = CurrentDb.OpenRecordset("qryErstellungAbstimmlisteBUKRS")
gruss ekkehard
Titel: Re: Filter Recordset funktioniert nicht
Beitrag von: DF6GL am Dezember 05, 2019, 19:02:29
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'")

Titel: Re: Filter Recordset funktioniert nicht
Beitrag von: JE-2017 am Dezember 06, 2019, 11:11:52
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!