Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Accessfreund am Oktober 06, 2010, 14:58:08

Titel: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 06, 2010, 14:58:08
Hallo ihr alle zusammen!
ich habe ein riesen Problem, ok sonst wäre ich nicht hier.

Wir haben eine Firma, und mein Mann hat Kundenkarten mit den Kundennummern darauf.
Wenn er einen neuen Kunden bekommt füllt er die Vorgefertiget (mit Kundennummer)  Karte aus.
Ich gebe dann die Kundennummer und die Adressdaten in meine DB ein.
Jetzt ist ein Jahr rum und die Kundenkarten kommen vom Vorjahr kommen wieder,
aber es kommen auch neue Kundenkarte dazu. Damit ich nicht ausversehen einen alten
Kunden als neuen anlege kann
(ich weiß es steht ja alles auf der Kundenkarte, aber ich lerne gerade eine Praktikantin
an und die paßt da noch nicht so auf).
Ich möchte eine Gültigkeitsregel erstellen und eine Gültigkeitsmeldung "Kundennummer schon vergeben".
Ich weiß keinen Rat mehr ich habe den Index schon auf "JA-ohne Duplikate gestellt aber ich kann eine neue Nummer
vergeben aber nicht speichern.
Das ist ja nicht das Problem, es geht Zeit verloren wenn Sie alles eingibt und danach merkt dass es falsch ist.

Kann mir jemand helfen, ohne dass ich alles nochmal erstellen muss (Formal)

LG
Gaby
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: DF6GL am Oktober 06, 2010, 15:37:00
Hallo,

Wie wo und wann geanu gibst Du (bzw. die Praktikantin) die Kundennummer ein?

Benutzt Du ein Formular?

(und warum "kommt eine Karte aus dem Vorjahr wieder"  ??? )



Wenn Du ein Formular benutzt (was Du dringend machen solltest) , dann kannst Du eine Prozedur für das Beforeupdate-Ereignis des Kundennummer-Feldes schreiben:


Sub Kdnr_BeforeUpdate(Cancel as Integer)
If nz(dlookup("Kdnr","tblKunden","Kdnr=" & Me!Kdnr),0) = Me!Kdnr then
Msgbox "Kundennummer gibt es schon"
Cancel=true
Me.Undo
End If
End Sub
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 06, 2010, 17:33:49
Hallo
Wie meinst du die Frage wie und wann?
Der Kunde wird jedes Jahr angefahren und es kommen jedes Jahr neue Daten hinzu:
Rechungsdatum, Rechnungsnummer und Betrag
Ich gebe alles in einem Formular ein (ist ja einfacher wenn man es mal erstellt hat)

Obiges, die Rechnungsdaten werden in einem Unterformular eingegeben.

Wo gebe ich denn das Beforeupdate-Ereignis ein, habe keine vorstellung wo das sein soll.
Ich benutze Access 2007

Danke schon mal für die Hilfe
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: DF6GL am Oktober 06, 2010, 17:47:13
Hallo,

mhmm, ja,  bin geneigt zu empfehlen, dass Du Dich zunächst etwas mehr mit den Access-Grundlagen beschäftigst...

Wenn das Ganze zufriedenstellend laufen soll, dann ist die Kenntnis der Ereignisse und der damit verbundenen Ereignisprozedur-Erstellung von grundlegender Bedeutung.


Geh in die Form-Entwurfsansicht und markiere das Kundennummer-Feld, das das erste im Form sein sollte, in das Daten eingegeben werden können.


Im Fenster Eigenschaften/Ereignisse klick auf die rechts der Zeile "Vor Aktualisierung" stehenden 3 Pünktchen. Der VBA-Editor öffnet sich mit dem vorbereiteten Prozedurgerüst (Sub....  End Sub)

Dort trägst Du nun die restlichen Codezeilen ein.

Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 06, 2010, 18:02:09
Hallo
hab ich gemacht, ich habe den Code von Dir zwischen (Sub....  End Sub)gesetz, aber es funktioniert nicht.  Es kommt:
Microsofr Visual Basic
Fehler beim Kompilieren
End Sub erwartet

Und der VBA-Editor öffnet sich wieder

Ich habe Access in der Euroschule (ist auch schon 7 Jahre her) gehabt und komme gut damit zu recht. Ok mit den Codes nicht aber wann brauche ich die schon.

Ich habe meine Tabellen erstellt die ich brauche und das Formular, funktioniert ja alles bis auf das.

Wie sieht es mit Gültigkeitsregeln aus, könnte nicht das funktionieren?
Oder was habe ich falsch gemacht?

Gruß
Gaby
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 06, 2010, 18:04:08
Hallo nochmal hier das was im VBA Editor steht


Private Sub Kundennummer_BeforeUpdate(Cancel As Integer)
Sub Kdnr_BeforeUpdate(Cancel As Integer)
If Nz(DLookup("Kdnr", "tblKunden", "Kdnr=" & Me!Kdnr), 0) = Me!Kdnr Then
MsgBox "Kundennummer gibt es schon"
Cancel = True
Me.Undo
End If
End Sub

Gruß
Gaby
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: database am Oktober 06, 2010, 18:11:27
Hallo,


ZitatOk mit den Codes nicht aber wann brauche ich die schon.
;) Jetzt zum Beispiel - und zwar dringend  ;)

Private Sub Kundennummer_BeforeUpdate(Cancel As Integer)
Sub Kdnr_BeforeUpdate(Cancel As Integer)
If Nz(DLookup("Kdnr", "tblKunden", "Kdnr=" & Me!Kdnr), 0) = Me!Kdnr Then
MsgBox "Kundennummer gibt es schon"
Cancel = True
Me.Undo
End If
End Sub


nimm die oben ausgestrichene Zeile aus deinem Code, dann sollte es laufen

Grüße
Peter
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: DF6GL am Oktober 06, 2010, 18:18:58
HAllo,


eher:

Private Sub Kundennummer_BeforeUpdate(Cancel As Integer)
If Nz(DLookup("Kundennummer", "tblKunden", "Kundennummer=" & Me!Kundennummer), 0) = Me!Kundennummer Then
MsgBox "Kundennummer gibt es schon"
Cancel = True
Me.Undo
End If
End Sub


Wenn das Feld in der Tabelle "tblKunden" auch "Kundennummer" heißt.

Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 06, 2010, 18:29:11
Hallo Ihr zwei,

Laufzeitfehler "3078"
Das Microsoft Office-Datenbankmodul findet die Eingabetabelle oder Abfrage "tblKunden" nicht. Stellen Sie sicher, dass sie vorhanden ist und der Name richtig eingegeben wurde.

Nun meine Tabellen und Formulare:

Tabellen:
Kunden: Tabelle
Rechnungen Tabelle
Auswahlliste: Tabelle

Formulare:
Kunden
Rechnungen Unterformular

Abfragen:
Rechnungen Abfrage1

Das sind meine Tabellen und das Feld im Formular das ich ändern möchte ist:
Im Formular - Kunden
Kundennummer aus der Tabelle - Kunden

Hoffe ich konnte euch genügend Infos geben.

Gruß
Gaby
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: DF6GL am Oktober 06, 2010, 18:37:26
Hallo,

also, wenn Du die Fehlermeldung (und auch den letzten Satz in meinem letzten Posting) mal richtig liest, dann solltest Du selber den Fehler beheben können...


Weiterhin kann ich nicht erkennen, WIE GENAU die Tabellen und Formulare nun heißen...

Tabellen:
Kunden: Tabelle   heißt das Ding  wirklich so??
Rechnungen Tabelle
Auswahlliste: Tabelle



Wie schon an anderer Stelle heute schon gesagt, ist auf Sonderzeichen und Leerzeichen sowie auf die Verwendung reservierter Wörter DRINGENDS zu verzichten.

http://www.access-o-mania.de/forum/index.php?topic=13176.0
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 06, 2010, 18:42:46
Hallo,

ich habe nur den Namen Kunden vergeben das steht so in der linken Leiste.

Gruß
Gaby
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: DF6GL am Oktober 06, 2010, 18:47:04
ok,

egal wie auch immer, Du mußt tblKunden im Code durch den richtigen Namen Deiner Kundentabelle ersetzen, der vermutlich KUNDEN lautet...
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 06, 2010, 18:55:39
Hallo,

soweit so gut es funktioniert er gibt mir an, dass die Kundennummer schon gibt.
Aber

er sagt mir das auch wenn ich eine neue Nummer eingeben möchte die es noch nicht gibt
???????

Was fehlt noch?

Gruß
Gaby
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: DF6GL am Oktober 06, 2010, 19:04:38
Hallo,

poste nochmal Deinen Code  (mit Copy&paste).

Welchen Datentyp hat die Kundennummer?


Wenn Kundennummer in der Tabelle vom Datentyp TEXT ist:


If Nz(DLookup("Kundennummer", "Kunden", "Kundennummer='" & Me!Kundennummer & "'"), "") = Me!Kundennummer Then

Alternativ ginge auch (bei TEXT)
If Dcount("*", "Kunden", "Kundennummer='" & Me!Kundennummer & "'" )   > 0 Then
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 06, 2010, 19:12:02
Hay

Private Sub Kundennummer_BeforeUpdate(Cancel As Integer)
If Nz(DLookup("Kundennummer", "Kunden", "Kundennummer=" & Me!Kundennummer), 0) = Me!Kundennummer Then
MsgBox "Kundennummer gibt es schon"
Cancel = True
Me.Undo
End If
End Sub

Habe Deine beiden Codes benutz kommt trotzdem
"Kundennummer schon vergeben"
wenn ich eine neue Eingebe die es noch nicht gibt.

In der Tabelle ist Felddatentyp: Zahl
Im Formular steht bei Textformat: Nur Text

Gruß
Gaby
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: DF6GL am Oktober 06, 2010, 19:15:31
Hallo,


""Kundennummer schon vergeben"  ist aber nicht die Reaktion über die Msgbox   ...


wirf die Gültigkeitsregel in der Tabelle (oder wo sie sonst steht) mal raus.

Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: MzKlMu am Oktober 06, 2010, 19:41:31
Hallo zusammen,
warum nicht einfach die Kundennummer indizieren (ohne Duplikate). Im Ereignis "Bei Fehler" des Formulars dann eine eigene Fehlermeldung und fertig ist die Laube. ;D
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 06, 2010, 19:48:04
Hallo,

sorry mein Fehler beim schreiben, bin schon ganz meschucke

Es steht da natürlich "Kundennummer gibt es schon" also die reaktion über die Msgbox

Sorry nochmal
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 06, 2010, 20:03:36
Aber ein Fehler ist noch drin oder ich hab was vergessen.

Wenn ich eine neue Kundennummer eingebe die noch nicht in der Tabelle steht kommt die Meldung auch
"Kundennummer gibt es schon" was aber nicht möglich ist.

Gruß
Gaby
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: MzKlMu am Oktober 06, 2010, 20:14:17
Hallo,
wie bereits gesagt, funktioniert das auch ohne VBA wenn das Feld in der Tabelle direkt indiziert (ohne Duplikate) wird.
Es wird dann nur eine Zeile VBA für eine eigene Fehlermeldung gebraucht.
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 06, 2010, 20:27:03
Hay,

ich habe eine indizierung "Ja ohne Duplikate" und ich kann trotzdem doppelte nummern eingeben.

Gruß
Gaby
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: database am Oktober 06, 2010, 20:31:56
@MzKlMu

Hallo Klaus, da hast du zweifelsohne recht, aber kommt hierbei die Reaktion (Form_Error(DataErr As...) ) nicht erst beim Verlassen des aktuellen Datensatzes, also z.B. wenn auf einen weiteren neuen gewechselt wird?
Bei vielen Eingaben Pro Datensatz kommt mir die Reaktion ein wenig spät vor, möglicherweise werden so in 20 Feldern Eingaben gemacht, die gar nicht benötigt worden wären.

@Gaby
Zitat"Kundennummer gibt es schon" was aber nicht möglich ist.
Das kann ja nicht wahr sein - was ist da los?
Wenn du die Zahlenvariante ohne Erfolg getestet hast und die Textvarianten nach DF6GL bringen auch keine Lösung ....   bin sprachlos

Zitatich habe eine indizierung "Ja ohne Duplikate" und ich kann trotzdem doppelte nummern eingeben
...und jetzt wirds elektrisch ...
Dann ist dein Feld entweder ungebunden oder aber an ein anderes Tabellenfeld gebunden!
So was ist schlichtweg unmöglich!

Grüße
Peter
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: MzKlMu am Oktober 06, 2010, 20:32:13
Hallo,
Zitatich habe eine indizierung "Ja ohne Duplikate" und ich kann trotzdem doppelte nummern eingeben.
Das halte ich für absolut ausgeschlossen. Bitte prüfe das mal, ob das Feld mit der Kundennummer in der Tabelle auf indiziert (ohne Duplikate) steht. Ich halte jede Wette, das es nicht ist.
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: MzKlMu am Oktober 06, 2010, 20:35:25
Hallo,
ZitatBei vielen Eingaben Pro Datensatz kommt mir die Reaktion ein wenig spät vor, möglicherweise werden so in 20 Feldern Eingaben gemacht, die gar nicht benötigt worden wären.
@database
Da hast Du zweifellos recht, die vorherige Prüfung wäre besser.

Ich bin jetzt nur mal gespannt, wie das mit der Indizierung aussieht.
Und wenn das Feld ungebunden ist, wird das Schreiben des Feldes in die Tabelle auch zuverlässig verhindert.
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: database am Oktober 06, 2010, 20:43:59
@MzKlMu
" Und wenn das Feld ungebunden ist, wird das Schreiben des Feldes in die Tabelle auch zuverlässig verhindert "

Wogegenen ich mich auch nicht wehre!  ;D ;D ;D
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 06, 2010, 22:52:38
So ich versuche mal ein Bild davon hoch zu laden
Da kann man sehen, dass Indizierung "Ja ohne Duplikate" ist.

Und es muss gebunden sein, da ja auch alle Kundennummer die ich im
Formular eingegeben habe in der Tabelle Kunden aufgenommen werden.
Schön mit allem was ich im Formular eingebe samt Unterformular es ist alles da.

Meint Ihr mit ungebunden, das es mit keiner Tabelle verbunden ist und somit nirgends auftaucht?
Ich benutze genau heute die Tabellen 1 Jahr, deshalb brauche ich ja die änderung.

Gruß
Gaby

[Anhang gelöscht durch Administrator]
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: DF6GL am Oktober 06, 2010, 23:19:08
Hallo,

ja mei, mich reißt es aus den Socken...   :o :o ::)
Das Tabellenfeld heißt wirklich

Kundennr:

und alle Hinweise auf Überprüfung von Namen und Vermeidung von Sonder-/Leerzeichen verpuffen im Nirwana...

Ich klinke mich aus und geh jetzt ins Bett...  Gute Nacht.   8)
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 07, 2010, 00:00:39
Hallo,
hier noch Bilder von den Tabellen, wo alle Daten vom Formular hin laufen
und vom Code nochmal

Gute Nacht vielleicht hat jemand von Euch heute Nacht eine eingebung.

Tschau

[Anhang gelöscht durch Administrator]
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: MzKlMu am Oktober 07, 2010, 02:19:11
Hallo,
eigentlich hättest Du nach dem Hinweis von Franz die Eingebung haben müssen.

Das Feld heist nicht Kundennummer sondern Kundennr: (mit Doppelpunkt).

In welches Feld schreibstDu denn den Wert?
Ein Feld Kundennummer gibt es jedenfalls nicht.
Und in Kundennr: kannst Du unmöglich einen doppelten Wert haben, bzw. erfassen. Wie bereits gesagt.
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: database am Oktober 07, 2010, 08:17:41
Na Guten Morgen,

wie das Tabellenfeld nun heißt, haben wir endlich rausbekommen - stellt sich jetzt noch die Frage, wie das Formularfeld heißt in welches du schreibst!

Schau da mal im Formularentwurf nach

      Feld anklicken
      Feldeigenschaften anzeigen lassen
      Register 'Andere'
      was steht neben Name?

So wie die Einstellungen in der Tabelle lauten (Indiziert Ja Duplikate nein) ist das schon in Ordnung, da kann man keine Nummern doppelt abspeichern - eingeben sehr wohl, Access motzt dann erst beim Verlassen des aktuellen Datensatzes, dass die Nummer schon existiert. Zwischen Eingeben und Speichern besteht zum Glück ein riesen Unterschied.

Zu dem Zweck hat Franz ja den Code für das BeforeUpdate-Ereignis des Feldes vorgeschlagen, in dem du die Kundennummer erfasst.
Jetzt stellt sich heraus, dass das zugrundeliegende Tabellenfeld ja ganz anders heißt als du angegeben hast daher kann der Code auch nicht greifen. :-\

Bevor jetzt irgendwer eine Änderung in den Code einbringt wäre es echt günstig uns mit der Wahrheit über den FORMULARFELD-NAMEN zu versorgen!

Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 07, 2010, 09:04:09
Guten Morgen,

Da steht "Kundennummer", nur wo kommt das her?
In der Tabelle wo die Daten gespeichert werden steht "Kundennr:"

Ich habe das Feld aus der Tabelle KUNDEN entnommen und da werden auch die Daten gespeichert.

Gruß
Gaby


[Anhang gelöscht durch Administrator]
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: MzKlMu am Oktober 07, 2010, 09:11:20
Hallo,
ich kann auf Deinen Bildern nirgends ein Feld "Kundennummer" endecken.
Kannst Du mal verraten, wo Du ein solches Feld siehst?
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 07, 2010, 09:16:48
Hay,

Bild 3:
Formularentwurf

      Feld anklicken
      Feldeigenschaften anzeigen lassen
      Register 'Andere'
      was steht neben Name?    KUNDENNUMMER

Bei mir steht auf Bild 4 zu sehen ist Kundennumme, ich habe das da aber nicht hineingeschrieben und in meinen Tabellen und Formular ect. steht überall KUNDENNR:

wie auf Bild 5 zusehen ist.
Gruß Gaby
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 07, 2010, 09:28:31
Sorry habe ich doch hinein geschrieben, dachte aber nicht dass es eine wirkung hat sonst würde da z.B. Text67 stehen.

Wie meine Signatur sagt, ist der Computer nur so schlau wie der der Ihn edient. Gell ich weiß kann man mir noch helfen?

Muss der Code jetzt nur umgeschrieben werden?
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: database am Oktober 07, 2010, 09:28:55
Hallo Gaby,

tja wieso das Feld anders heißt müsstest DU wissen, schließlich hast DU ja die DB geschnitzt oder?  ;D
Wahrscheinlich hat es ursprünglich Kundennummer geheißen und du hast es umbenannt, im Formular ist es beim alten Namen geblieben hier wurden nur die Bindung aktualisiert.
Ist aber jetzt egal.

Jetzt machst du Folgendes:

Im Formularentwurf das Feld Kundennummer anklicken und in den Feldeigenschaften unter Ereignisse 'Vor Aktualisierung' auswählen
Hier sollte eigentlich schon [Ereignisprozedur] eingetragen sein - stimmts?
Wenn du nun wieder auf die drei Punkte rechts davon klickst gelangst du direkt in die betreffende Ereignisprozedur,
in der folgender Code stehen müsste:


Private Sub Kundennummer_BeforeUpdate(Cancel As Integer)
   If Nz(DLookup("Kundennummer", "Kunden", "Kundennummer=" & Me!Kundennummer), 0) = Me!Kundennummer Then
       MsgBox "Kundennummer gibt es schon"
       Cancel = True
       Me.Undo
   End If
End Sub


Diese Zeile ----  If Nz(DLookup("Kundennummer", "Kunden", "Kundennummer=" & Me!Kundennummer), 0) = Me!Kundennummer Then

Tausche nun bitte gegen diese aus:

If Nz(DLookup("[Kundennr:]", "Kunden", "[Kundennr:]=" & CLng(Me!Kundennummer)), 0) = CLng(Me!Kundennummer) Then

und wenn das jetzt nicht funktioniert ..... :'(

Grüße
Peter
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: MzKlMu am Oktober 07, 2010, 09:29:34
Hallo,
das ist der Name des Feldes, das hat mit dem Feld wo hingeschrieben wird nichts zu tun.
Geschrieben wird in den Steuerelementinhalt. Und der ist "Kundennr:".
Ändere den Code wie folgt:

Private Sub Kundennummer_BeforeUpdate(Cancel As Integer)
   If Nz(DLookup("[Kundennr:]", "Kunden", "[Kundennr:]=" & Me!Kundennummer), 0) = Me!Kundennummer Then
       MsgBox "Kundennummer gibt es schon"
       Cancel = True
       Me.Undo
   End If
End Sub

Denn Doppelpunkt solltest Du entfernen, im Tabellenentwurf. Code aber dann anpassen. Auch den Steuerelementinhalt.
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 07, 2010, 09:55:44
Hallo Ihr zwei,

@database
ich habe den Code probiert funktioniert nicht, da kommt keine Meldung wenn ich eine schon vergebene Nummer eingebe.
Da steht nichts im oberen Formular, aber im Unterformular stehen die Daten vom ersten Kunden, der die Nummer schon hat.

@MzKIMu
Ich habe dann den Doppelpunkt in den Tabellen bei Kundennr entfent, habe es im Code auch entfernt, funktioniert auch nicht
ich kann eine Nummer die ich schon habe eingeben, es stehen weder Daten im Formular noch im Unterformular
und wenn ich ins Unterformular springen möchte kommt eine Fehlermeldung (siehe Bild6)
Bin ich wirklich so blöd was mache ich falsch?

[Anhang gelöscht durch Administrator]
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: MzKlMu am Oktober 07, 2010, 10:04:04
Hallo,
die Fehlermeldung resultiert aus dem Index ohne Duplikate. Wobei Du ja schon geschrieben hast, es würden doppelte Nummern in der Tabelle eingetragen. Was aber völlig unmöglich ist.

Zeige bitte mal den aktuellen Code und wie heist das Feld jetzt in der Tabelle und auf dem Formular.
Bitte nachsehen und den Code hier rein kopieren, nicht abschreiben.
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 07, 2010, 10:09:38
Hay
Code kopiert nicht geschrieben:

Private Sub Kundennummer_BeforeUpdate(Cancel As Integer)
    If Nz(DLookup("[Kundennr]", "Kunden", "[Kundennr]=" & Me!Kundennummer), 0) = Me!Kundennummer Then
        MsgBox "Kundennummer gibt es schon"
        Cancel = True
        Me.Undo
    End If
End Sub


Private Sub Kundennr__AfterUpdate()

End Sub


In der Tabelle steht:
Kundennr
Im Formular steht (Steuerelementinhalt):
Kundennr

Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: MzKlMu am Oktober 07, 2010, 10:11:54
Hallo,
der Steuerelementinhalt war nicht die Frage, der Name des Feldes im Formular wird gebraucht.

Und was steht in der Zeile im Ereignis "Vor Aktualisierung" im Formularentwurf.
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 07, 2010, 10:12:58
Hay
da steht auch Kundennr

es steht überall Kundennr nirgends Kundennummer mehr
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: database am Oktober 07, 2010, 10:15:26
Hallo Gaby,

Bitte ---  ist das noch aktuell  ----  Private Sub Kundennummer_BeforeUpdate(Cancel As Integer)

oder steht da jetzt ---- Private Sub Kundennr_BeforeUpdate(Cancel As Integer)

wenn die 2. Varriante zutreffend ist,
ändere das da ---   & Me!Kundennr), 0) = Me!Kundenr Then

nochmal auf  ---    & CLng(Me!Kundenr)), 0) = CLng(Me!Kundennr) Then

Wenn die 1. Variante noch gültig ist,

ändere das da ---   & Me!Kundennummer), 0) = Me!Kundennummer Then

nochmal auf  ---    & CLng(Me!Kundennummer)), 0) = CLng(Me!Kundennummer) Then


Der Grund - Du hast das Formularfeld nicht aus der Datenherkunft geholt sondern extra als Textfeld erstellt (Textfeld67) wodurch das Feld nicht die Information erhalten hat, dass Zahlen drin stehen
Durch obige Änderung wird das behoben (auch)

Dann sollte es laufen!
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: MzKlMu am Oktober 07, 2010, 10:15:46
Hallo,
dann musst Du natürlich auch die Prozedurkopfanpassen und den Formularbezug.
Private Sub Kundennr_BeforeUpdate(Cancel As Integer)
   If Nz(DLookup("[Kundennr]", "Kunden", "[Kundennr]=" & Me!Kundennr), 0) = Me!Kundennr Then
       MsgBox "Kundennummer gibt es schon"
       Cancel = True
       Me.Undo
   End If
End Sub


@Database
Ich glaube nicht, dass Clng erforderlich ist.
Außerdem hat Sie ja auch den Namen im Formular geändert.
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: database am Oktober 07, 2010, 10:21:01
Hallo Klaus,

CLng ist nicht erforderlich, wenn das Feldformat auf mindestens 'Standardzahl' eingestellt ist,
Durch das Hinzufügen des Textfeldes (nicht aus der Datenherkunft) ist diese Info nicht vorhanden daher ...

Ich hab's grad ausprobiert - es sei denn ich hätt da was übersehen --  nein :)

Ohne CLng läuft der Code OHNE den True-Zweig anzuspringen durch
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 07, 2010, 10:27:15
Hallo Ihr zwei,

@MzKlMu
ich habe den Code genommen und eingefügt, habe dann das Feld im Formular gelöscht und aus
der Liste - Vorhandene Felder hinzu fügen - genommen
Kunden => Kundennr

Und Jungs es funktioniert

Viiiiiiiiiiiiiiiiiielen Dank Ihr seid spitze

Wo ist denn der Danke Button wo man anklicken kann
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: database am Oktober 07, 2010, 10:37:24
Na also, geht doch...

links im Kopfbereich des Lösungsbeitrages findest du einen roten Stern ----  das iss er!

Grüße
Peter
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 07, 2010, 10:40:16
Äh Sorry seh keinen roten Stern sehe nur gelbe Sterne unter Euren Namen

Habe meine Computer Brille auf aber   ICH SEH NICHTS
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: database am Oktober 07, 2010, 10:45:36
Auch sorry NICHT LINKS sondern RECHTS - Oh Mann jetzt wirds aber ernst! :o :o :o :-\

Greets

[Anhang gelöscht durch Administrator]
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: DF6GL am Oktober 07, 2010, 10:50:56
 :D :D :D ;D
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 07, 2010, 10:55:13
Finde ich nicht aber ein Freiburger Kindl aus Bayern sagt vielen Dank an Euch drei

Liebe Grüße

Gaby
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: DF6GL am Oktober 07, 2010, 11:17:38
Hallo,

hast Du auch mal bei einem DEINER Postings oben rechts geschaut?


Ansonsten viel Erfolg weiterhin.
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 07, 2010, 11:59:59
Hay
Ja da steht nur
Zitat oder ändern

Danke
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: database am Oktober 07, 2010, 12:00:55
Jou und bei den anderen?
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 07, 2010, 12:03:40
Bei Euch allen steht nur Zitat
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: database am Oktober 07, 2010, 12:05:34
Auch dann, wenn du im Bildschirm GANZ nach RECHTS scrollst?

Zitat
Hay
Ja da steht nur
Zitat oder ändern

...da sollte nämlich LÖSCHEN auch noch stehen - rechts davon
Titel: Re: Gültigkeitsregel für nicht doppelte Kundennummern
Beitrag von: Accessfreund am Oktober 07, 2010, 12:16:38
Nein da steht nichts von löschen nur das was ich geschrieben habe.

Trotzdem vielen Dank für die Hilfe
bis zum nächsten mal

Liebe Grüße Gaby