Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Brusellise am Juni 30, 2017, 14:06:38

Titel: Doppelte Einträge im Formular hindern / 1:n Tabelle
Beitrag von: Brusellise am Juni 30, 2017, 14:06:38
Hallo,

ich benötige einen VBA Fachmann.

Ich habe eine Tabelle Vorgang und eine Tabelle Kartonbarcode.
Beide haben eine 1:n Beziehung.

In meinem Formular wird der Vorgang via Textfelder angelegt. Des Weiteren gibt es ein Unterformular (Kartonscan). Dieses Unterformular greift auf die Tabelle Kartonbarcode via Verknüpfung zu.
Die Textfelder des Unterformulars (Datenblattansicht) lauten KartonBarcode und Platz. Hier wird via Scanner jeweils ein Wert eingescannt. Es können nun mehrere Karton zu dem Vorgang gescannt werden.

Ich benötige nun eine Funktion, bei welcher Access erkennt, dass wenn ein Kartonbarcode im Unterformular des jeweiligen Vorgang bereits existiert eine Fehlermeldung ausgibt und den Eintrag ablehnt.

Wie kann ich dies darstellen?

Danke für eure Hilfe.



Titel: Re: Doppelte Einträge im Formular hindern / 1:n Tabelle
Beitrag von: MzKlMu am Juni 30, 2017, 14:08:53
Hallo,
das kannst Du bereits in der Tabelle abfangen, in dem über  KartonBarcode und Platz ein zusammengesetzter eindeutiger Index angelegt wird.
Damit sind Doppelungen unmöglich.
Titel: Re: Doppelte Einträge im Formular hindern / 1:n Tabelle
Beitrag von: Brusellise am Juni 30, 2017, 14:31:11
Stimmt, jedoch wenn ich einen Index setze, dann prüft er immer nur die Barcodetabelle und berücksichtigt nicht den Vorgang. Wenn ein neuer Vorgang existiert darf der Karton nochmal gescannt werden.

Titel: Re: Doppelte Einträge im Formular hindern / 1:n Tabelle
Beitrag von: Lachtaube am Juni 30, 2017, 14:40:44
Ich kann Dir nicht folgen. Die Felder, die eine Doublette ausmachen, müssen in einem eindeutigen Mehrfachindex aufgelistet werden und müssen auch Pflichtfelder sein (Eigenschaft der Felder Eingabe erforderlich auf Ja setzen oder bei Gültigkeitsregel Ist Nicht Null eintragen).
Titel: Re: Doppelte Einträge im Formular hindern / 1:n Tabelle
Beitrag von: Brusellise am Juni 30, 2017, 14:54:37
Hi Lachtaube,

sorry jetzt kann ich dir nicht folgen. Ich hätte dies gesetzt. Sobald der Wert in der Barcodetabelle existiert kommt auch die Fehlermeldung. Wenn ich aber nun einen neuen Vorgang erstelle ist es aus meiner Sicht wieder erlaubt. Es kommt aber trotzdem die Fehlermeldung der Wert in der Barcodetabelle existiert. Es wird nicht der neue Vorgang berücksichtigt.
Titel: Re: Doppelte Einträge im Formular hindern / 1:n Tabelle
Beitrag von: MzKlMu am Juni 30, 2017, 15:20:15
Hallo,
der zusammengesetzte Index (siehe Access Hilfe) verwendet mehrere Felder zur Indizierung. Bei Dir 2 der Barcode und der Vorgang. Nur wenn beide gleich sind greift der Index bzw. die Fehlermeldung.
Der Index darf nicht auf das einzelne Feld angewendet werden.
Titel: Re: Doppelte Einträge im Formular hindern / 1:n Tabelle
Beitrag von: Brusellise am Juli 07, 2017, 15:52:10
Hi,

ich habe die Beziehung gesetzt.
Trotzdem geht das nicht.

Wenn der Karton bei Vorgang 3 gescannt wurde kann ich ihn beim nächsten Vorgang auch nicht scannen. Ich möchte bei nur innerhalb des aktuell bearbeiteten Vorgangs eine Prüfung.

Ich habe  jetzt mal mit VBA probiert:

[/Private Sub TrackingnrScan_BeforeUpdate(Cancel As Integer)
If Not IsNull(DLookup("TrackingnrScan", "tbl_ExporteLagerscanbarcode", _
     "TrackingnrScan = " & Chr$(34) & Me!TrackingnrScan & Chr$(34))) _
     And Me!TrackingnrScan <> Nz(Me!TrackingnrScan.OldValue) Then

   MsgBox Me!TrackingnrScan & " wurde bereits gescannt.", vbOKOnly, "Duplikat!"
   Cancel = True

end if
   End Ifcode]

Das funktioniert genauso wie bei der 1:n Beziehung, dass ist mir klar.
Kann man den VBA irgendwie ändern, dass ich beim nächsten Vorgang den Karton wieder scannen kann.

Danke für eure Hilfe.
Titel: Re: Doppelte Einträge im Formular hindern / 1:n Tabelle
Beitrag von: MzKlMu am Juli 07, 2017, 16:56:56
Hallo,
Zitatich habe die Beziehung gesetzt.
welche Beziehung ?
Von einer Beziehung setzen war bisher doch gar nicht die Rede. Es geht um einen zusammengesetzten Index, das hat mit einer Beziehung nichts zu tun. Der muss gesetzt werden, dann braucht es keinen Code. Höchstens zur Ausgabe eine eigenen Fehlermeldung.
Titel: Re: Doppelte Einträge im Formular hindern / 1:n Tabelle
Beitrag von: Beaker s.a. am Juli 07, 2017, 17:26:24
Hallo Lise,
Dir scheint nicht klar, was die beiden meinen. Vielleicht hilft ja das angehängte Bild.
gruss ekkehard
Titel: Re: Doppelte Einträge im Formular hindern / 1:n Tabelle
Beitrag von: Brusellise am Juli 08, 2017, 11:41:30
Ok. Danke. Jetzt ist es klar.