Guten Tag zusammen
In meiner Datenbank gibt es ein "Kundendossier", worin mit einem Listenfeld LstKunDropdown der Kunde ausgewählt wird, und dann in Registern alle möglichen Unterformulare dargestellt werden (siehe angefügtes Bild). Gerne würde ich z.B. im Register zugeordnete Projekte einen Button machen, der auf Klick das Formular ProEingabe gleich öffnet mit einem neuen Datensatz, automatisch aber das Feld mit Bezug zum Kunden vom Listenfeld ProKunIDRef ausgefüllt hat. Mit verschiedenen Codes habe ich schon herumexperimentiert, aber noch nichts Passendes gefunden.
Hat jemand einen Tipp, wie ich das machen könnte?
Herzliche Grüsse
Micharius
Hallo,
zeige Deine Versuche, damit man eine gemeinsame Basis hat.
Hallo Micharius,
Quick & Dirty (Luftcode):
Private Sub DeinButton_Click()
DoCmd.OpenForm("ProEingabe",,,,acFormAdd,,Me.DeinListFeld)
End Sub
Private Sub Form_Open(Cancel As Integer)
Me.FeldMitID = Me.OpenArgs
'Da OpenArgs immer als Text übergeben werden muss evtl. eine
Typkonvertierung erfolgen
'Me.FeldMitID = Val(Me.OpenArgs)
End Sub
gruss ekkehard
Hallo Beaker und MzKlMU
Vielen Dank für die rasche Antwort. Ähnliche Lösungsansätze habe ich schon im Netz gefunden, OpenArgs usw.
Mit dem Luftcode funktioniert es noch nicht ganz. Verstehe ich richtig: Der erste wird beim ersten Formular hinterlegt beim Button, der zweite beim aufzurufenden Formular.
Bei ersten Code erhalte ich die Fehlermeldung "Erwartet =". Bei welchem Ereignis müsste ich den 2. Codeteil hinterlegen im Formular?
Grüsse
Micharius
Hallo,
würde es so schreiben:
Private Sub DeinButton_Click()
DoCmd.OpenForm "ProEingabe",,,,acFormAdd,,Me!DeinListFeld.Column(0) 'Wert aus der ersten Listenfeldspalte heranziehen.
End SubPrivate Sub Form_Load() 'Formularereignis "Beim Laden"
If not Isnull(Me.Openargs) Then Me!FeldMitID = Me.OpenArgs
End Subbtw:
Zitat'Da OpenArgs immer als Text übergeben werden muss
ist so nicht ganz korrekt. In Openargs kann ein
Ausdruck stehen, also auch etwas in der Art:
=13*20 ' Ausdruck-Datentyp Zahl. Ergibt nach der Zuweisung
260 im Textfeld.
oder
='abcd' & 'efgh' 'Ausdruck-'Datentyp Text. Ergibt nach der Zuweisung
abcdefgh
im Textfeld.
Der Datentyp ist dann zu beachten, wenn die Zuweisung später an ein gebundenes Textfeld (Datentyp des zugrundeliegenden Tabellenfeldes) erfolgt.
Hurra, so klappt es! ;D ;D ;D
Vielen Dank für die Hilfe an alle.
Hallo Franz,
Zitatist so nicht ganz korrekt
Stimmt, falsch ausgedrückt.
Was ich sagen wollte, ist, die
Eigenschaft .OpenArgs ist immer vom
Datentyp "Text".
gruss ekkehard