PDA

Vollständige Version anzeigen : Unterformular dynamisch füllen


deen781
28.09.2005, 10:02
hi,

ich würde gerne ein unterformular den einstellungen nach füllen...

dh. wird das hauptformular geöffnet, sind die standardeinstellungen gesetzt.
darunter befindet sich ein unterformular welches die entsprechenden daten enthält. werden die einstellungen verändert, soll auch das unterformular aktualisiert werden.
beholfen habe ich mir des hilfe-codes:


Dim strFilter As String
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient

':
'recordset bestimmen
'entsprechenden filter erstellen
':

rst.Filter = strFilter

DoCmd.OpenForm "Unterformular", acFormDS
Set Forms("Unterformular").Recordset = rst

Me.Unterformular.Requery

klappt im prinzip wunderbar, jedoch wird nur ein neues fenster geöffnet, zwar mit dem jeweils richtigen inhalt aber halt nicht als unterformular dargestellt.

wie weise ich nun den veränderten recordset dem unterformular zu und aktualisiere es?

danke

molnar
28.09.2005, 11:00
Du must vom Hauptformular aus die RecordSource des Unterformulars (UF) neu festlegen und ein Requery ausführen

Me.UF.Recordsource = "SELECT ..."
Me.UF.Requery

oder den Filter des Unterformulars ändern und aktivieren

Me.UF.Form.Filter = ...
Me.UF.Form.FilterOn = True

Gruß,
Reinhard

deen781
28.09.2005, 14:06
habe es soweit umgestellt auf folgendes:

----

Dim strFilter As String
Dim rst As DAO.Recordset

':
':

Me.UF.Form.RecordSource = rst.Name
Me.UF.Form.Filter = strFilter
Me.UF.Form.FilterOn = True
Me.UF.Requery

----

nun kommt der fehler '2001' in der filterOn zeile vor
'sie haben die vorherige operation abgebrochen'

why?

molnar
28.09.2005, 15:15
Vermutlich ist das Recordset noch nicht ferig erzeugt, wenn Du den Filter setzen willst. Deshalb solltest Du, wie ich vorgeschlagen habe, entweder die RecordSource verändern oder eine feste RecordSource verwenden und nur den Filter passend setzen.

Reinhard