Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Parameter an Abfrage des Unterformulars (ungebunden) übergeben

534 views
Skip to first unread message

Achim Jäkel

unread,
Jul 29, 2013, 6:41:40 AM7/29/13
to
Hallo zusammen,

ich habe mal wieder ein kleines Problem, bei welchem ich eure Hilfe benötige.

Ich habe ein Formular A in dem ich mir eine Liste von Daten in einem Unterformular anzeigen lasse. Das Unterformular basiert dabei auf eine Abfrage, die als Parameter 2 Felder aus dem Hauptformular benutzt.

Jetzt möchte ich über einen Button neben dem Unterformular einen Wert aus dem Unterformular an ein Formular B übergeben, dessen Aufbau ähnlich Formular A ist.

Dieses Formular hat also auch ein Unterformular, welches wiederum auf einer Abfrage basiert, die 2 Felder aus dem Hauptformular als Abfrageparameter verwendet.

Ich habe das mit folgedem Code versucht:

Dim nGeoeinheitId As Integer
Dim sShopCode As String

'Daten aus Formular A merken
nGeoeinheitId = Me!subfrm_plzliste!GEOEINHEIT_ID.Value
sShopCode = Me!subfrm_plzliste!shop_code.Value
'Formular B aufrufen
DoCmd.OpenForm "frm_geoeinheiten", acNormal
Dim Q As DAO.QueryDef
Set Q = CurrentDb.QueryDefs("qry_geo_plz") 'Abfrage des Unterformulars auf Formular B
Q.Parameters!GEOEINHEIT_ID = nGeoeinheit_id
Q.Execute
Q.Close
Set Q = Nothing

Versteht hier jemand, was ich da machen will und weiss dann vielleicht auch noch jemand, wie ich das umsetzen kann?

Ich bekomme immer diese Fehlermeldung 'Laufzeitfehler 3265, Element in dieser Auflistung nicht gefunden'. Der Cursor springt dann hierhin:
Q.Parameters!GEOEINHEIT_ID = nGeoeinheit_id

Vielen Dank im Voraus für eure Hilfe,
Achim

Karl Donaubauer

unread,
Jul 29, 2013, 7:42:00 AM7/29/13
to
Hallo, Achim!

Achim Jäkel wrote:
> ...
> ...

Die Fehlermeldung sagt, dass es keinen Parameter namens
GEOEINHEIT_ID in der Abfrage gibt. Vielleicht handelt es sich
um einen Feldnamen, den du damit zu befüttern versuchst.
Um zu wissen, wie der Parameter aussieht, müsste man den
SQL-Text der Abfrage sehen, vermutlich sowas wie:

Forms!frm_geoeinheiten!SteuerelementOderFeldName

Doch selbst wenn du hier alles richtig machst, wird es nicht klappen,
weil sich das Parameterschicken ans Querydef nicht aufs Formular
auswirkt. Mit dieser Technik kann man ein Recordset öffnen o.ä.,
aber keine Daten in einem Access-Objekt ändern.

Es gibt mehrere Wege, wie du das lösen kannst. Ich würde
wahrscheinlich keine Formularbezüge in die Abfragen schreiben,
sondern die UFo-Befüllung anders regeln. Dazu müsste man die
Details kennen, z.B. was du mit UFo "ungebunden" meinst bzw.
wie das dann befüllt wird und welche Zusammenhänge zwischen
HFo und UFo bestehen.

Wenn du bei der Parametergeschichte bleiben willst, kannst
du vielleicht ja das Hauptformular öffnen, die in der Abfrage
referenzierten Steuerelemente (oder Feldnamen?) des HFos
befüttern und dann ein Requery auf das UFo machen, also ca.

DoCmd.OpenForm "frm_geoeinheiten"
Forms!frm_geoeinheiten!SteuerelementOderFeld = nGeoeinheit_id
Forms!frm_geoeinheiten!UFo.Requery

--
Servus
Karl
*********
Access-FAQ: http://www.donkarl.com + AEK16
Access-Entwickler-Konferenz, 28/29.9. Nürnberg, 19/20.10. Hannover


Achim Jäkel

unread,
Jul 30, 2013, 7:37:02 AM7/30/13
to
Hallo Karl,

da es hiermit
DoCmd.OpenForm "frm_geoeinheiten"
Forms!frm_geoeinheiten!SteuerelementOderFeld = nGeoeinheit_id
Forms!frm_geoeinheiten!UFo.Requery
ganz gut klappt, mache ich das erstmal so.

Mit ungebunden meinte ich halt, dass mein Hauptformular ungebunden ist und lediglich 2 Parameter der Abfrage des Unterformulars zur Auswahl bietet.
Dann gibt es einen Button, der ein requery auf das Unterformular ausführt.

Ziel war es, dieses Formular sowohl aus einem anderen Formular heraus mit übergebenen Parametern aufzurufen, als auch das Formular autark benutzen zu können.

Vielen Dank für deine Hilfe,
Achim

Karl Donaubauer

unread,
Jul 30, 2013, 10:00:23 AM7/30/13
to
Hallo, Achim!

Achim J�kel wrote:
> ...
> da es hiermit
> DoCmd.OpenForm "frm_geoeinheiten"
> Forms!frm_geoeinheiten!SteuerelementOderFeld = nGeoeinheit_id
> Forms!frm_geoeinheiten!UFo.Requery
> ganz gut klappt, mache ich das erstmal so.
>
> Mit ungebunden meinte ich halt, dass mein Hauptformular ungebunden
> ist und lediglich 2 Parameter der Abfrage des Unterformulars zur
> Auswahl bietet.

Du verr�tst die Details zu den Parametern nicht, aber falls es da
nur um Felder in der Datenherkunft des UFos geht, an die du Kriterien
�bergibst, dann kannst du dir das und den Requery-Knopf sparen.

Stattdessen kannst du einfach das UFo �ber seine Eigenschaften
"Verkn�pfen von" und "Verkn�pfen nach" mit den zwei Steuerelementen
im HFo verkn�pfen. Das geht auch mit ungebundenen Formularen und
Steuerelementen.

> Dann gibt es einen Button, der ein requery auf das Unterformular
> ausf�hrt.
>
> Ziel war es, dieses Formular sowohl aus einem anderen Formular heraus
> mit �bergebenen Parametern aufzurufen, als auch das Formular autark
> benutzen zu k�nnen.

Access regelt mit obiger Technik beides.

--
Servus
Karl
*********
Access-FAQ: http://www.donkarl.com + AEK16
Access-Entwickler-Konferenz, 28/29.9. N�rnberg, 19/20.10. Hannover


0 new messages