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
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.