Hallo zusammen,
brauche heute noch mal eure Hilfe.
Ich habe das Feld Bestellnummer im Formular und dort darf diese nur einmal vergeben werden.
Habe auch den Code und das läuft auch super.
If IsNull(DLookup("[Bestellnummer]", "Beschaffung", "[Bestellnummer]='" & (Forms("Eingabe Beschaffung").Bestellnummer) & "'")) = True Then
'Ist hier OK
Else
MsgBox ("Bestellnummer ist bereits vorhanden. Bitte andere Bestellnummer eingeben")
Exit Sub
Jetzt soll es aber so sein, dass pro Lieferant die Bestellnummer nur einmal vergeben werden darf.
Der Lieferant befindet sich auch in der Tabelle Beschaffung.
Kann mit jemand sagen, wie der Code heißen muss?
Hab leider keine Ahnung von VBA -.-
Vielen Dank
Hallo,
vorteilhaft wäre, die gesamte Prozedur und die Tabellen- und Formularfeld-Namen zu posten, das ersparte viel Raterei...
vermutlich so:
If IsNull(DLookup("[Bestellnummer]", "Beschaffung", "[Bestellnummer]='" & Me!Bestellnummer & "' And Lieferant ='" & Me!Lieferant & "'") Then
Besser ist die Dcount-Funktion geeignet:
If DCount("*", "Beschaffung", "[Bestellnummer]='" & Me!Bestellnummer & "' And Lieferant ='" & Me!Lieferant & "'") = 0 Then
Als weitere Maßnahme käme in Betracht:
Zusammengesetzten eindeutigen Index über beide Tabellenfelder legen.
Hallo Franz,
danke aber leider hat es so nicht funktioniert.
Fehlermeldung Fehler beim Kompilieren: Erwartet Then oder Go to
Hier mal die kompletten angaben
Private Sub btnSaveBeschaffung_Click()
If IsNull(DLookup("[Bestellnummer]", "Beschaffung", "[Bestellnummer]='" & (Forms("Eingabe Beschaffung").Bestellnummer) & "'")) = True Then
'Ist hier OK
Else
MsgBox ("Bestellnummer ist bereits vorhanden. Bitte andere Bestellnummer eingeben")
Exit Sub
Die Tabelle ist Beschaffung und beinhaltet das Feld Bestellnummer und Lieferant.
Das Formular heißt Eingabe Beschaffung und beinhaltet das Textfeld Bestellnummer und Lieferant.
Hi,
statt "Erwartet Then oder Go to" erwarte ich eher ein "end if" nach dem "exit sub" {in der nächsten Zeile}.
Harald
Hallo,
Mit einem eindeutigen Mehrfelderindex über Bestellnummer und Lieferant
kann man sich das alles sparen.
gruss ekkehard
Hallo,
das mit dem eindeutigen Index sagte ich bereits... 8)
Trotzdem sorry, ich hatte das "And" vergessen. :'(
Hier der komplette Code, wie er funktionieren sollte:
Private Sub btnSaveBeschaffung_Click()
If DCount("*", "Beschaffung", "Bestellnummer='" & Me!Bestellnummer & "' And Lieferant ='" & Me!Lieferant & "'") = 0 Then
'Ist hier OK
Else
MsgBox "Bestellnummer mit Lieferant ist bereits vorhanden. Bitte andere Bestellnummer oder anderen Lieferanten eingeben"
End If
End Sub
wobei ich mich frage, warum eine solche Plausi-Prüfung hinter einem Schaltflächen-Klick liegt.
Hallo Franz,
Sorry, hatte ich nicht gesehen.
gruss ekkehard
Vielen Dank hat geklappt! :)