Parameter an Abfrage des Unterformulars (ungebunden) übergeben

29/07/2013 - 12:41 von Achim Jäkel | Report spam
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
 

Lesen sie die antworten

#1 Karl Donaubauer
29/07/2013 - 13:42 | Warnen spam
Hallo, Achim!

Achim Jàkel wrote:
...
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
...



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

Ähnliche fragen