Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Xoar am Januar 17, 2022, 13:53:16

Titel: Filter in der Datenblattansicht
Beitrag von: Xoar am Januar 17, 2022, 13:53:16
Moin  :) ,

gibt es eine einfache Möglichkeit die Funktionalität des Datum-Filter in der Datenblattansicht wieder zu erlangen, wenn die Datenherkunft auf ein über VBA zugewiesenes RecordSet auf der Basis einer StoredProcedure aus einem MS SQL Server kommt?

Filterauswahl.png

Hier der Code für die Zuweisung über VBA
Public Sub Formularfilter(Filterwert1 As String, Optional Filterwert2 As String, Optional Filterwert3 As String)
On Error GoTo e:

Dim rs As DAO.RecordSet
With CurrentDb.QueryDefs("spUntersuchungenUebersichtFiltern")
    .SQL = "EXEC spUntersuchungenUebersichtFiltern " & Filterwert1 & ", " & Filterwert2 & ", " & Filterwert3 & ""
    'Debug.Print .SQL
    Set rs = .OpenRecordset
End With

Set Me!ufrmUntersuchungUebersicht.Form.RecordSet = rs

Exit Sub

e:
MsgBox Err.Number & vbCrLf & vbCrLf & Err.Description

End Sub

Es kommt immer die Fehlermeldung:
Unzulässige SQL-Anweisung; Delete, Insert, Select, Procedure, oder Update erwartet.

Muss ich den Datumsfilter auch als Filterkriterium angeben und in der StoredProcedure verarbeiten, oder kann ich die schöne und komfortable Filterung von dem Formular nutzen?!

Titel: Re: Filter in der Datenblattansicht
Beitrag von: markusxy am Januar 17, 2022, 17:14:45
Hast du versucht eine Abfragen auf die PT Query aufzusetzen und die dann im Formular zu verwenden?
Titel: Re: Filter in der Datenblattansicht
Beitrag von: Xoar am Januar 17, 2022, 20:31:52
Hi,

ja habe eine SP im SQL Server welche Parameter erwartet.

Die Parameter übergebe ich, indem ich eine in Access gespeicherte PT Abfrage mit VBA anpasse.

Das Ergebnis weise ich dem Recordset des Forms zu.


..... umständlich?
Titel: Re: Filter in der Datenblattansicht
Beitrag von: markusxy am Januar 18, 2022, 14:30:29
Zitat von: Xoar am Januar 17, 2022, 20:31:52Das Ergebnis weise ich dem Recordset des Forms zu.

Normalerweise nimmt man eine View statt einer SP, wenn man den Komfort von Access nutzen will.
Titel: Re: Filter in der Datenblattansicht
Beitrag von: ebs17 am Januar 18, 2022, 18:39:40
Als Variante könnte man auch ein Recordset filtern:
Nachträgliches Filtern eines Recordsets (https://access-basics.de/index.php/DAO_Recordsets_filtern_durchsuchen_und_sortieren.html)
Titel: Re: Filter in der Datenblattansicht
Beitrag von: Xoar am Januar 18, 2022, 19:00:43
@markus888
Ok, leider kann ich ne Sicht ja nicht dynamisch parametisieren, wie ich es hier betreibe. Oder ist da was an mir vorbei gegangen?

@ebs17
Das ganze Recordset ist ja dann schon lokal geladen, das heißt ne Filterung über Access wäre ja kein merklicher Geschwindigkeitsverlust gegenüber der im SQL Server, oder? <1000 Datensätze.

😄

wobei den Filter in den SQL Server zu verlagern ist dann auch kein großer Aufwand....

Schade, dachte könnte die Accessfilter nutzen.

Danke für eure Hilfe
Titel: Re: Filter in der Datenblattansicht
Beitrag von: markusxy am Januar 18, 2022, 19:41:58
Zitat von: Xoar am Januar 18, 2022, 19:00:43@markus888
Ok, leider kann ich ne Sicht ja nicht dynamisch parametisieren, wie ich es hier betreibe. Oder ist da was an mir vorbei gegangen?

Schaut so aus.
Bei einer View - die am Server gespeichert ist - reicht Access die Parameter an den Server weiter und das Filtern wird vom Server erledigt.
Da gibts also keinen allzu großen Nachteil, gegenüber Parametern bei einer SP.
Natürlich, kann ich bei einer SP bereits in einer Subquery filtern.