Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

mit Kombinationsfeld neuen Datensatz hinzufügen funktioniert nur bedingt

Begonnen von KonradR, Oktober 29, 2023, 11:10:49

⏪ vorheriges - nächstes ⏩

KonradR

Hallo liebe Accessfreunde,

ich habe eine Accessdatenbank mit einem Haupt- und mehreren Unterformularen erstellt. Im Unterformular 1 gebe ich die Mahlzeiten und die Rezepte ein. Grundsätzlich stehe ich also vor der Situation, dass ich unterscheiden darf zwischen der Situation, dass ein neuer Datensatz erzeugt wird und das ich mich in einem bestehenden Datensatz bewege.

Wenn ich nun einen neuen Datensatz erzeuge und für eine Mahlzeit mittels eines Kombinationsfeldes ein neues Rezept editiere und das per VBA der Tabelle tblRezept hinzufüge, funktioniert das super. Hier der Code: Private Sub cbomahlzRezepIDRef_NotInList(p_NewDataRezept As String, Response As Integer)
    Dim dbRezep As DAO.Database
   
    p_cboRezeptTextspeicherNeu = Forms![frm00BWT_Haupt]![sfrmBWTMahlzeitRezepte_Unter].Form![cbomahlzRezepIDRef].Text
    Set dbRezep = CurrentDb
   
    If Forms![frm00BWT_Haupt]![sfrmBWTMahlzeitRezepte_Unter].Form.NewRecord = True Then
        dbRezep.Execute "INSERT INTO tblRezept(rezepName) VALUES ('" & p_NewDataRezept & "')", _
        dbFailOnError
        Response = acDataErrAdded
        MsgBox "neues Rezept angelegt"
    Else
        DoCmd.OpenForm "frmAbfrageRezeptSpeichern"
    End If
End Sub
Die dateiöffentliche Variable "p_cboRezeptTextspeicherNeu" habe ich in einem Extramodul deklariert. Wenn sich der Datensatzzeiger in einem bestehenden Datensatz befindet, kann ich über das Ereigniss "NotInList()" des Kombinationsfeldes zwar auch einen bestehenden Datensatz ändern, aber ich möchte ja auch in einem bestehenden Datensatz, das neue Hinzufügen bzw Erstellen von Rezepten zu der dem Kombinationsfeld hinterlegten Tabelle tblRezept, möglich machen. Dazu habe ich ein Pop-UP-Formular als Meldungsfenster erstellt und über dateiöffentliche Variablen den Text vor und nach der Eingabe ins Kombinationsfeld, so meine Idee, überttragen. Leider funktioniert genau das nicht für das Pop-Up-Formular. Wenn ich die Variable als dateiöffentliche Variable in der Klammer des "NotInList" Ereignisses deklariere, funktioniert es nicht und folgende Meldung erscheint:
Sie dürfen in diesem Board keine Dateianhänge sehen.
Hier noch mein Code, der ausgeführt wird, wenn das im Bild selbst erstellte Meldungsfenster geladen wird:
Private Sub cmdAuswahlBestaetigen_Click()
    Dim dbRezep As DAO.Database

    Set dbRezep = CurrentDb
    p_NewDataRezept = Forms![frm00BWT_Haupt]![sfrmBWTMahlzeitRezepte_Unter].Form![cbomahlzRezepIDRef].Text
   
    If ogrRezeptAendernTauschen.Value = 1 Then
        MsgBox "Rezept ändern"
        DoCmd.Close acForm, Me.Name
    ElseIf ogrRezeptAendernTauschen.Value = 2 Then
        dbRezep.Execute "INSERT INTO tblRezept(rezepName) VALUES ('" & p_NewDataRezept & "')", _
        dbFailOnError
        Response = acDataErrAdded
        MsgBox "neues Rezept gegen Altes getauschen"
        DoCmd.Close acForm, Me.Name
    Else
        MsgBox "Bitte eine Option wählen"
    End If
End Sub

Wie kann ich also den Text aus der Eingabe des Kombinationsfeldes an das Meldungsfenster übertragen und damit eine Neuanlage bzw. Änderung über das Meldungsfenster, was ich als Pop-Up-Formular ausgeführt habe, erreichen? Die Neuanlage des Rezptes soll erfolgen, wenn die Optionsgruppe auf dem Meldungsfenster den Wert 2 hat.