Recordset

Hallo zusammen. Ich habe es geschafft aus einer Tabelle bestimmte Datensatzgruppe per sql-String zu filtern: Set rst = FIS2.OpenRecordset(sql, dbOpenDynaset).
Aber wie kann ich mit diesem rst ein Formular öffnen?
Mit: DoCmd.OpenForm „Formular“, acNormal, rst, , acFormReadOnly, acWindowNormal funktioniert es nicht.
Liege ich völlig falsch?

Gruß an alle
Peter

Aber wie kann ich mit diesem rst ein Formular öffnen?

Warum solltest Du das wollen müssen?

Liege ich völlig falsch?

Meiner ungemilaxten Meinung nach ja : Ein Form verlangt als Datenquelle eine Tabelle oder eine SQL-Anweisung (8ung, ver1f8!), und was Du mit dem Recordset erschaffst, ist eine dynamische Benutzersicht irgendwo in den Abgründen des Speichers. Soll heißen : Der Recordset ist offen, und Du willst per Openform noch eine Instanz des gleichen Recordsets öffnen. Das kann m.E. nicht gehen.

Was spricht dagegen, Deinen SQL-String als Abfrage zu definieren? Wenn Du dynamische SQL brauchst, kannst Du die Anweisung nach wie vor in VBA zusammenbosseln, baust dann aber keinen Recordset, sondern eine QueryDef, die Du unter einem Abfragenamen ablegst. Und Dein Form lässest Du dann eben auf dieser Abfrage basieren. Schon fertig …

Gruß Eillicht zu Vensre

Meiner ungemilaxten Meinung nach ja : Ein Form verlangt als
Datenquelle eine Tabelle oder eine SQL-Anweisung (8ung,
ver1f8!), und was Du mit dem Recordset erschaffst, ist eine
dynamische Benutzersicht irgendwo in den Abgründen des
Speichers. Soll heißen : Der Recordset ist offen, und Du
willst per Openform noch eine Instanz des gleichen Recordsets
öffnen. Das kann m.E. nicht gehen.

Was spricht dagegen, Deinen SQL-String als Abfrage zu
definieren? Wenn Du dynamische SQL brauchst, kannst Du die
Anweisung nach wie vor in VBA zusammenbosseln, baust dann aber
keinen Recordset, sondern eine QueryDef, die Du unter einem
Abfragenamen ablegst. Und Dein Form lässest Du dann eben auf
dieser Abfrage basieren. Schon fertig …

Gruß Eillicht zu Vensre

sehe ich ein
Danke
Peter

Hallo Peter,

ganz einfache Antwort, ohne Hinterfragen der Sinnhaftigkeit:

Formular oeffnen ohne recordset o.ae
DoCmd.OpenForm „Formular“, acNormal, , , acFormReadOnly
Dann mittels
Forms(„Formular“).RecordSource = sql
Die Datenquelle des Formulars setzen.

btw: das gleiche funktioniert auch anaaog bei Berichten

Tschau
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]