ich habe ein Problem wo ich nicht wirklich weiß wie ich das angehen soll bzw. wie ich die Abfrage machen muss. Ich habe eine Tabelle Datensätze wo ich die Felder Nr, Name, Gegenstand, Anzahl, Raumnr & Datensätze drin habe. Nun habe ich in einem Formular, wie hier im Bild:
So wenn ich dann irgendwas bei den Feldern eintrage und dann auf speichern klicke wird dies sofort in einer Tabelle gespeichert.
Meine Ziel:
Wenn ich nun auf speichern klicke das er dies nicht nur in der Tabelle "Datensätze" abspeichert sondern auch wenn z.B. der Gegenstand Auto heißt den Gegenstand in der zweiten Tabelle "Lagerbestand" Auto findet und die Anzahl davon abzieht.
Wie kann man das VBA technisch oder auch anders realisieren? Hatte jemand vielleicht ein Code Beispiel?
Weiß nicht ob das hilft aber hier der code vom speicher Button:
Private Sub speichern_Click() Dim dbs As DAO.Database Dim strText As String strText = "" If DCount("*", "Datensätze", _ "Gegenstand= '" & Me!Gegenstand & "'") > 0 Then If strText <> "" Then strText = strText & " und der " strText = "Gegenstand '" & Me!Gegenstand & "'" End If If strText <> "" Then MsgBox "Der " & strText & " ist bereits in der Tabelle vorhanden!", _ 51, "WICHTIG" Cancel = True Else Set dbs = CurrentDb strSQL = "INSERT INTO [Datensätze] " & _ "(Name, Gegenstand, Raumnr, Anzahl, Datum) " & _ "VALUES ('" & Me![Name] & "','" & Me!Gegenstand & "', " & _ Me!Raumnr & " ," & _ Me!Anzahl & " ,#" & _ Format(Me![Datum], "yyyy-mm-dd") & "#)" ' Debug.Print strSQL 'Ausgabe im Direktfenster (Strg+G; Testfenster) dbs.Execute strSQL, dbFailOnError '<<<<----hier Set dbs = Nothing End If ' Speichercode 'z.B. Meldung nach erfolgreichem Speichern A = MsgBox("Erfolgreich gespeichert!") 'z.B. noch ne Meldung, ob Felder gelöscht werden sollen If MsgBox("Felder löschen?", vbYesNo) = vbYes Then Me!Nr = Null Me!Name = Null Me!Gegenstand = Null Me!Raumnr = Null Me!Anzahl = Null Me!Datum = Null End If End Sub
Mfg
Mal4ik