Damit ich aus momentan 3 nicht 6 Forms machen muss habe ich mir folgendes überlegt.
Ich schreibe in eine Var_modus hinein "neu" oder "bearbeiten" je nachdem ob ich eine neue Behandlung erstelle oder eine vorhandene bearbeite. Diesen Inhalt möchte ich an die anderen Formulare weiter geben um dorf über If then herrauszufinden on ich im "neu" ode rim "bearbeiten" Modus bin.
beispiel:
Private Sub button_bandlung_anlegen_Click()
DoCmd.OpenForm "FM_behandlung_eingabeform"
DoCmd.GoToRecord , , acNewRec
Var_modus= "neu"
End Sub
Wen ich im neuen Form MsgBox Var_modus eingebe ist die Box leer. Übergabe hat also nicht funktioniert.
Wie realisiert man sowas.
Hallo,
Variante 1:
Hast Du die Variable im Modul deklariert?
Public Var_modus as String
Variante 2:
Übergabe per Formularaufruf:
DoCmd.OpenForm "FM_behandlung_eingabeform",,,,,, nz(Var_modus,"")
und in Deinem Formular dann im Ereignis "Beim Öffnen" eine Zeile hinzufügen:
Var_modus = Me.OpenArgs
Aber auch hier sollte die Variable deklariert sein (siehe andere Diskussionen)
Harald
Module habe ich bisher nur kopiert nicht selber geschrieben daher würde ich Var 2 bevorzugen. Jedoch muss man ja alles mal lernen. Wie würde den so ein mudol aussehen bzw. Wie über gebe ich den inhalt an das Modul und wie kann ich es im 2 Form wieder auslesen?
Ich habe zwar nicht ganz verstanden, was es mit deinen vielen Formularen auf sich hat - aber kannst du dein Ansinnen nicht über die Optionen "acFormEdit" / "acFormAdd" beim Aufruf der Formulare lösen?
Das klingt interesant was du da schreibst. Wenn du mir nun noch genauer erklären würdest wovon du sprichst wär ich dir Sehr dankbar. Arbeite erst seit 3 Wochen internsiv mit Access
Wenn du dein Formular aufrufst mit
DoCmd.OpenForm "FM_behandlung_eingabeform",,,,acFormAdd
zeigt es nur einen leeren Datensatz an. Bei der Option acFormEdit bekommst du alle Datensätze angezeigt und kannst sie bearbeiten.
Wenn du aus diesem Formular weitere Formulare aufrufst, die dann ebenfalls nur Dateneingabe zulassen sollen, kannst du im Klick-Ereignis des entsprechenden Buttons prüfen, ob sich das erste Formular im Eingabemodus befindet (Me.DataEntry = True) und das folgende Formular ebenfalls mit der acFormAdd-Option aufrufen, beispielsweise so:
if Me.DataEntry = True then
DoCmd.OpenForm "FM_nächstes",,,,acFormAdd
Else
DoCmd.OpenForm "FM_nächstes",,,,acFormEdit
Endif
Besteht die Möglichkeit einer Variable einen Wert zuzuweisen damit ich in einem Anderen Form auf den Inhalt zugreifen kann ohne openargs? Ich müsste mehrere Vars an ein Form übergeben damit ich das verarbeiten kan was ich möchte. Habe gelesen das man Dann die Openargs in einen string schreibt übergibt und dann im anderen Form auseinander pflügt.
Moin,
siehe Antwort 1, Variante 1
Harald
Danke habe es auch grade nochmal getestet habe mich nur gewundert das meine Var im anderen Form leer war. Das Problem war das ich sie in einer Funktion als Public und dann im Form nachträglich als Dim as String deklariert hatte. Habe ich beim umbauen nicht raus genommen somit hat er sie überschrieben
<<gelöscht>>