Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Wie kann ich eine Fehlerüberprüfung einbauen?

Begonnen von Axel18, März 08, 2012, 09:20:03

⏪ vorheriges - nächstes ⏩

Axel18

Ich habe aktuell einen kompletten Blackout!

Ich habe ein kleine Tabelle erstellt, mit nur zwei Feldern (Name und EORI)

Das Feld Name ist verbunden mit dem Feld Name aus der ,,großen" Tabelle ,,Kunden", wo ,,Name" ein Schlüsselfeld ist.

Soweit so gut.

Um Daten einzugeben erstelle ich eine Abfrage ,,EORI", in die ich nun Kundennamen (Name) und die EORI Nummer eingeben will. Dabei soll aber eine Warnmeldung ausgegeben werden, wenn der Kundenname nicht in der Tabelle ,,Kunden" existiert oder falsch geschrieben ist.

Wie mache ich das?


Beste Grüße
Axel

MzKlMu

Hallo,
das ist schon mal ein grundsätzlich falsches Vorgehen, die Fehlerprüfung ist in einer Abfrage/Tabelle auch gar nicht möglich.

ZitatDas Feld Name ist verbunden mit dem Feld Name aus der ,,großen" Tabelle ,,Kunden", wo ,,Name" ein Schlüsselfeld ist.
Ein Name als Schlüsselfeld geht auch irgendwann schief, spätestens beim 2. Müller oder Schmidt.
Als Schlüsselfeld nimmt man ein Extrafeld (Autowert), der Fremdschlüssel wird dann ein Zahlenfeld (Long Integer). Darüber läuft auch die Beziehung.

Die dateneingabe erfolgt in einem Formular. Darin wird mit einem Kombinationsfeld der Name aus der großen Tabnelle ausgewählt. Es ist somit völlig ausgeschlossen, dass ein falscher Name erfasst wird.
Gruß Klaus

DF6GL

Hallo,



stell eine Typ1-Beziehung zwischen den beiden Tabellen über die Felder "Name" mit ref. Integrität her.

Wobei:

-- Der Name "Name" DRINGEND zu vermeiden ist.
-- Ein Namensfeld als Primärschlüssel vermutlich nicht den vorgesehen Zweck (Eindeutigeit eines Kunden, bzw. Datensatzes) erfüllt.
-- Eine Abfrage zur Dateneingabe denkbar ungeeignet ist.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Axel18

Uff, da habt Ihr beide mich aber erwischt. Das Feld heißt in Wirklichkeit nicht "Name" sondern "ksort", aber das erschien mir zu kryptisch.

Franz, wenn eine Abfrage (darauf basierend soll dann ein Eingabeformular entstehen) nicht die richtige Basis für Dateneingabe ist, wie kann ich das besser machen?

Beste Grüße
Axel

MzKlMu

Hallo,
ZitatDas Feld heißt in Wirklichkeit nicht "Name" sondern "ksort", aber das erschien mir zu kryptisch.
Dafü war jetzt Name nicht kryptisch, was aber zur völligen Verwirrung beigetragen hat. Da wäre der kryptische Name besser gewesen. Was wieder mal zeigt, dass es nicht besonders geschickt ist die realen Bedingungen scheinbar zu vereinfachen.

Aber trotz des anderen Namens gelten meine Ausführungen sinngemäß. Was steht denn im Feld "ksort"? Wenn es Text ist, ist es als Primärschlüssel auch nicht so geeignet.

Zitatwenn eine Abfrage (darauf basierend soll dann ein Eingabeformular entstehen)
Dann ist die Abfrage schon richtig, wenn diese als Datenherkunft für ein Formular dient. Aber von einem Eingabeformular war ja gar nicht die Rede, Du sprachst nur von einer Abfrage.
Im Formular kannst Du dann zur Auswahl von ksort dann das vorgeschlagen Kombifeld nehmen, ein vertippen ist dann nicht möglich.
Gruß Klaus

Axel18

... nochmal ich ...

Also, ich fange noch einmal von vorne an, weil ich offenbar zuviel Verwirrung gestiftet habe:

1.   ich habe eine Tabelle ,,EORI" mit zwei Feldern
- ksort – welches mit ksort der Tabelle Kunden verknüpft ist
- EORI
2.   eine Abfrage mit den beiden Feldern (ksort aus tblKunden und EORI aus tblEORI
3.   ein Formualr mit Kombinationsfeldern für diese beiden Felder

Gebe ich nun im Formular die ersten Buchstaben eines Kundennamen ein, so sehe ich in dem Feld die möglichen Namen.

Nehme ich aber keinen davon, sondern schreibe einen Phantasienamen hinein (oder falsch geschriebener Name) dann nimmt das Formular diesen falschen Namen an und speichert ihn.

Ich würde aber gerne eine Warnmeldung bekommen, im Sinne: Achtung, Name existiert nicht in der Tabelle Kunden"

Geht das?
Beste Grüße
Axel

bahasu

Hi Axel,

vielleicht kommst Du zum Ziel, wenn Du die Eigenschaft "Nur Listeneinträge" auf Ja setzst.
Steht im Formular beim Steuerelement bei Daten.

Harald
Servus

Axel18

Bingo, Harald,

danke, das war's und es hat geklappt.
danke an alle Ratschlaggeber und ein schönes Wochenende

Axel

Beste Grüße
Axel

Axel18

Liebe Freunde der Nacht,

ich habe das Problem noch immer nicht gelöst, bzw. es hat sich ein neues Problem ergeben.

Klappt jetzt die Eingabe – und die Fehlermeldung bei falscher Eingabe, so macht das zweite Feld (EORI) mir jetzt Schwierigkeiten.

Dieses Feld ist in der Tabelle definiert als:
-   Textfeld mit 15 Zeichen
-   Eingabe erforderlich: Ja
-   Indiziert: nein

Im Formular ist es ein ungebundenes Textfeld

Wenn ich nun bei ksort einen korrekten Namen eingebe, dann weitergehe auf das EORI Textfeld kann ich eine beliebige Zeichenfolge eingeben, aber beim Weiterschalten kommt die als Screenshot beigefügte Fehlermeldung.

Bei meinem ersten Entwurf ging das so schön, ich konnte einen Namen eingeben, egal ob richtig oder falsch, und auch eine EORI Nummer, und beides wurde in der Tabelle Eori abgespeichert. Nachdem ich aber das Feld ksort Dank Eurer Hilfe korrekt hinbekommen habe, , d.h. nur korrekte Namen werden akzeptiert, habe ich bei dem Feld Eori die Fehlermeldung.

Was nun, was tun?

Beste Grüße zum Wochenanfang
Axel



[Anhang gelöscht durch Administrator]
Beste Grüße
Axel

DF6GL

Hallo,

lad mal die DB (komprimiert/repariert und gezippt, evtl. datenreduziert/anonymisiert)  hier hoch....  und beschreib anhand der realen Namen die Stelle , an der es hakt....
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Axel18

Hallo Franz,

ich muss meine eine Tabelle (Kunden) "abspecken", da die viel zu viele - und "intime" Details beinhaltet. Sobald ich das habe, komme ich mit einer kleinen, gezippten Version.

Axel
Beste Grüße
Axel

Axel18

So, da bin ich schon wieder.
Hier also die gezippte Kurzfassung

Axel



[Anhang gelöscht durch Administrator]
Beste Grüße
Axel

DF6GL

Hallo,



anbei.
Siehe Tabellen, Beziehungen, Formular

Ohne weitere Hinweise zur Tabellenstruktur....


(DB mit A2010 bearbeitet)

[Anhang gelöscht durch Administrator]
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Axel18

Danke Franz,

hat gut geklappt, damit kann ich dann das Problem schließen

Axel

Beste Grüße
Axel