Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Micharius am Juli 10, 2017, 09:37:19

Titel: Neuen Datensatz öffnen aber vorausgefüllt
Beitrag von: Micharius am Juli 10, 2017, 09:37:19
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
Titel: Re: Neuen Datensatz öffnen aber vorausgefüllt
Beitrag von: MzKlMu am Juli 10, 2017, 09:41:00
Hallo,
zeige Deine Versuche, damit man eine gemeinsame Basis hat.
Titel: Re: Neuen Datensatz öffnen aber vorausgefüllt
Beitrag von: Beaker s.a. am Juli 10, 2017, 11:28:25
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
Titel: Re: Neuen Datensatz öffnen aber vorausgefüllt
Beitrag von: Micharius am Juli 10, 2017, 13:32:23
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


Titel: Re: Neuen Datensatz öffnen aber vorausgefüllt
Beitrag von: DF6GL am Juli 10, 2017, 14:01:58
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 Sub




Private Sub Form_Load()    'Formularereignis "Beim Laden"
If not Isnull(Me.Openargs)  Then    Me!FeldMitID = Me.OpenArgs
End Sub




btw:
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.
Titel: Re: Neuen Datensatz öffnen aber vorausgefüllt
Beitrag von: Micharius am Juli 10, 2017, 15:21:11
Hurra, so klappt es!  ;D ;D ;D
Vielen Dank für die Hilfe an alle.
Titel: Re: Neuen Datensatz öffnen aber vorausgefüllt
Beitrag von: Beaker s.a. am Juli 10, 2017, 15:26:02
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