Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Neuen Datensatz öffnen aber vorausgefüllt

Begonnen von Micharius, Juli 10, 2017, 09:37:19

⏪ vorheriges - nächstes ⏩

Micharius

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

MzKlMu

Hallo,
zeige Deine Versuche, damit man eine gemeinsame Basis hat.
Gruß Klaus

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Micharius

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



DF6GL

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.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Micharius

Hurra, so klappt es!  ;D ;D ;D
Vielen Dank für die Hilfe an alle.

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)