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
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]