Neuigkeiten:

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

Mobiles Hauptmenü

Datensatz in ein Formular schreiben ohne diese zu Öffnen

Begonnen von tismo, Mai 22, 2022, 08:48:31

⏪ vorheriges - nächstes ⏩

tismo

Hallo,

folgende vba habe ich von einer anderen Funktion kopiert und etwas abgewandelt
On Error GoTo Err_Artikelnummer_BeforeUpdate

    Dim strFilter As String
   
    ' Filter auswerten, bevor er an die Funktion DLookup() übergeben wird.
    strFilter = "[Artikelnummer] = " & Me![Artikelnummer]
   
    Forms![RegisterDaten]![Kostenaufstellung].SetFocus
    DoCmd.RunCommand acCmdRecordsGoToNew
   
    ' Entnimmt den GrundpreisEURbrutto des Artikels und übergibt ihn
    ' an das Steuerelement Grundpreis im Unterformular Kostenaufstellung im Formular RegisterDaten.
    Forms![RegisterDaten]![Kostenaufstellung].Form![Grundpreis] = DLookup("GrundpreisEURbrutto", "Artikel", strFilter)
    Forms![RegisterDaten]![Kostenaufstellung].Form![Einzelpreis] = DLookup("EinzelpreisEURbrutto", "Artikel", strFilter)
    Forms![RegisterDaten]![Kostenaufstellung].Form![Beschreibung] = DLookup("Beschreibung", "Artikel", strFilter)
    Forms![RegisterDaten]![Kostenaufstellung].Form![Barzahlung] = DLookup("Auswahl1", "Artikel", strFilter)
    Forms![RegisterDaten]![Kostenaufstellung].Form![Artikelnummer] = DLookup("Artikelnummer", "Artikel", strFilter)
   
    Forms![RegisterDaten]![Kostenaufstellung].Form![Datumerfasst] = Date
    'DoCmd.RunCommand acCmdRecordsGoToNext

Exit_Artikelnummer_BeforeUpdate:
    Exit Sub

Err_Artikelnummer_BeforeUpdate:
    MsgBox Err.Description
    Resume Exit_Artikelnummer_BeforeUpdate

Durch Klicken auf einer Schaltfläche im Unterformular A wird ein Datensatz aus dem Formular Artikel in das Unterformular Kostenaufstellung im Formular RegisterDaten geschrieben.
Soweit so gut- funktioniert tadellos.

Allerdings wird nach jedem Auslösen der Funktion das Unterformular Kostenaufstellung geöffnet.
Wie kann ich die Funktion so umschreiben, dass das Unterformular nicht automatisch öffnet und der Prozess im Hintergrund läuft?

Ich sollte vielleicht noch erwähnen, dass die Schaltfläche in einem Endlosformular ist und der Datensatz ebenfalls in ein Endlosformular (Kostenaufstellung) angefügt wird.


Gruß,
Lars

MzKlMu

#1
Hallo,
warum schreibst Du nicht gleich in die Tabelle, ohne das Formular wenn es sowieso nicht geöffnet ist. Da reicht dann eine einfache Anfügeabfrage. Da braucht man auch keine DLookuporgie, weil man für die Anfügeabfrage gleich die Artikelnummer als Kriterium verwenden kann. So wie Du das machst, ist das doch ein Umweg und umständlich obendrein.

PS:
DLookUp gehört zu den Befehlen die man in einer korrekt aufgebauten DB wenig bis gar nicht brauchen bzw. verwenden sollte.
Gruß
Klaus