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?!
Hast du versucht eine Abfragen auf die PT Query aufzusetzen und die dann im Formular zu verwenden?
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?
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.
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)
@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
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.