Mai 25, 2022, 13:13:25

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Filter in der Datenblattansicht

Begonnen von Xoar, Januar 17, 2022, 13:53:16

⏪ vorheriges - nächstes ⏩

Xoar

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?

Sie dürfen in diesem Board keine Dateianhänge sehen.

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?!


markus888

Hast du versucht eine Abfragen auf die PT Query aufzusetzen und die dann im Formular zu verwenden?
10 Jahre Access

Xoar

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?

markus888

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.
10 Jahre Access

ebs17

Mit freundlichem Glück Auf!

Eberhard

Xoar

Januar 18, 2022, 19:00:43 #5 Letzte Bearbeitung: Januar 18, 2022, 19:07:01 von Xoar
@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

markus888

Januar 18, 2022, 19:41:58 #6 Letzte Bearbeitung: Januar 18, 2022, 20:00:35 von markus888
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.

10 Jahre Access