Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Eingabe via Formular - Gültigkeitsregel Duplikate

Begonnen von fuxl66, August 30, 2012, 11:07:07

⏪ vorheriges - nächstes ⏩

fuxl66

Hallo,

Ich habe ein Formular mit dem ich eine Tabelle befülle in der die Spalte "Bezeichnung" Indiziert (ohne Duplikate) vorkommt.
Wenn man nun einen Wert in das Feld Bezeichnung eingibt der schon vorhanden ist kommt diese Meldung (siehe Anhang).
Ein Standarduser kann damit allerdings nichts anfangen. Wünschenswert wäre eine Meldung wie "Bezeichnung bereits vorhanden".
Kann ich diese Meldung via Gültigkeitsregel bzw. Gültigkeitsmeldung realisieren oder gibt es eine andere/bessere Möglichkeit?

Bitte um Eure Hilfe.

mfg

[Anhang gelöscht durch Administrator]

oma

Hallo,

eine eigene Meldung  kannst du mit dem Formulareignis "Bei Fehler" und der entsprechenden Fehlernummer erzeugen!

Gruß Oma
nichts ist fertig!

oma

Hallo,

etwa so:

Private Sub Form_Error(DataErr As Integer, Response As Integer)

    If DataErr = 3022 Then
        Response = acDataErrContinue
        MsgBox "Deine Meldung, "Deine Anwendung"
    End If
End Sub


Gruß Oma
nichts ist fertig!

fuxl66

Wo genau hinterleg ich diese VBA? Bei Fehler ist hier nicht vorhanden. siehe Anhang.
Wo finde ich die entsprechenden Fehlercodes raus. Bei dieser erscheint kein speziell Code wie man im anhang des ersten Posts sieht.

[Anhang gelöscht durch Administrator]

MzKlMu

#4
Hallo,
Doch, das hast Du auch. Du musst nur die richtige Stelle verwenden. "Bei Fehler" ist ein Formularereignis kein Feldereignis. Siehe Bild und dort muss der Code rein.
Die fehlercode lässt man sich mit einer MsgBox einmalig anzeigen.
Private Sub Form_Error(DataErr As Integer, Response As Integer)   
   MsgBox DataErr 'Zeile wieder löschen
   If DataErr = 3022 Then       
       Response = acDataErrContinue       
       MsgBox "Deine Meldung, "Deine Anwendung"   
   End If
End Sub


[Anhang gelöscht durch Administrator]
Gruß Klaus

Jonny

Hallo,
das Ereignis bei Fehler findest du bei den Eigenschaften vom Formular.
Es gibt reichlich Fehlercodes (ich meine so um die 16.000 oder so).
Ein deine Fall musst du den Code 2020 abfangen.
Die Routine von Oma würde ich allerdings noch um
ELSE
MsgBox (Err & " " & Err.Description)
erweitern.
Dann werden alle anderen Fehler noch mit Code und Beschreibung aufgelistet.

Gruß

Johann

Jonny

Hallo,
Korrektur nicht Code 2020 sondern 3022.

Gruß

Johann

bahasu

Hi,

und zur Erweiterung hier Links zu ein "paar" Fehlercodes:
http://support.microsoft.com/kb/146864
http://support.microsoft.com/kb/142138/de

und auf http://www.fmsinc.com/microsoftaccess/errors/errornumber_description.html gibt es:
http://www.fmsinc.com/microsoftaccess/errors/ErrorNumber_Description2007.html

Harald
Servus

ebs17

Alternativ zur Programmsteuerung über Fehler könnte man sich Gedanken machen, wie man z.B. über Vorabprüfungen es gar nicht erst zu Fehlern kommen lässt.

MfGA
ebs
Mit freundlichem Glück Auf!

Eberhard

oma

Hallo,

die letzte Anmerkung von ebs stimmt immer und gilt jederzeit u. zu jedem Problem ;D

Gruß Oma
nichts ist fertig!

fuxl66

Zitat von: ebs17 am August 31, 2012, 13:33:15
Alternativ zur Programmsteuerung über Fehler könnte man sich Gedanken machen, wie man z.B. über Vorabprüfungen es gar nicht erst zu Fehlern kommen lässt.

MfGA
ebs

Wie sollte man die Eingabe eines Duplikates denn vorab unterbinden können?

Mit Hilfe der VBA bekomm ich nun meine gewünschte Meldung, jedoch nach dem Bestätigen mit OK eine weitere.
Siehe Anhang.
Läßt sich diese Meldung unterdrücken sodass der User nach der Bestätigung der gewünschten Meldung einfach wieder zurück zur Eingabe kommt!?!

[Anhang gelöscht durch Administrator]

bahasu

#11
Zitat von: fuxl66 am September 03, 2012, 11:48:00
Wie sollte man die Eingabe eines Duplikates denn vorab unterbinden können?

Hi,
mit dcount (siehe access-Hilfe) kannst Du zählen, wieviele Datensätze in einer Tabelle/Abfrage eine Bedingung erfüllen.
Bei > 0 ist dann bereits etwas da.

Anbei im Anhang ein Beispiel mit zwei Formularen (bei dem ersten wird auf einen Wert geprüft, bei dem zweiten auf Kombination von zwei Werten).

Harald

[Anhang gelöscht durch Administrator]
Servus

bahasu

#12
Hi,

Zitat von: fuxl66 am September 03, 2012, 11:48:00
Mit Hilfe der VBA bekomm ich nun meine gewünschte Meldung, jedoch nach dem Bestätigen mit OK eine weitere.
Läßt sich diese Meldung unterdrücken sodass der User nach der Bestätigung der gewünschten Meldung einfach wieder zurück zur Eingabe kommt!?!

eventuell hilft der Hinweis auf http://support.microsoft.com/kb/931407/de , unter der Voraussetzung, dass die Meldung bei Dir in diese Richtung lautet.

Sofern es wirklich bei der Ausführung eines Makros passierte, werde ich aber nicht weiter helfen können, da ich mich mit Makros nicht auskenne.

Harald
Servus