crack24
Goto Top

DCount Funktion in Access 2003

Hallo,

ich möchte bei einem neuen Auftragsdatensatz prüfen ob die Bestellnummer für diesen Kunden schon vorhanden ist, damit keine Bestellungen doppelt erfasst werden.

Ich habe dazu folgende Funktion, aber anscheinend sind da noch syntaktische Fehler drin
Sub Check_Bestellnummer()
    If DCount("*", "Fertigung", "[Kunden_Bestell_Nr]='" & Me![Kunden_Bestell_Nr] & "' AND [F_KundenID]='" & Me![KID] & "'")> 0 Then  
        MsgBox "Ein Auftrag mit dieser Bestellnummer ist schon vorhanden!"  
    End If
End Sub
Wennn ich nur die Bestellnummer überprüfe, für alle Kunden, dann gehts. Aber wenn ich noch die Prüfung mit der Kundennummer dranhänge, funktioniert es nicht.

Sieht da vielleicht jemand auf die Schnelle den Fehler?

Viele Grüße
crack

Content-Key: 208666

Url: https://administrator.de/contentid/208666

Printed on: April 24, 2024 at 15:04 o'clock

Member: Biber
Biber Jun 26, 2013 at 07:59:15 (UTC)
Goto Top
Moin crack24,

und wenn du zwischen den beiden Bedingungen noch ein " AND " spendierst?

Grüße
Biber
Member: crack24
crack24 Jun 26, 2013 at 08:27:36 (UTC)
Goto Top
Hallo Biber,

ich hatte den Beitrag nachträglich nochmal bearbeitet, kann sein dass wir uns da überschnitten haben.

Ich habe das AND jetzt drin, aber irgendwo hakt es noch.
Member: Biber
Biber Jun 26, 2013 updated at 08:57:19 (UTC)
Goto Top
Moin crack24,

dann können nur die Datentypen von "F_KundenID" und "Me![KID"] auseinanderlaufen.
Laut Syntax erwartest du für dieses Datenbank-/Formularfeld-Pärchen einen Text-Datentyp.
Ist dem so in der Tabelle und im Formular?

Wenn ja, muss eines der Beiden noch geTRIMmed werden?

Grüße
Biber
[Edit] Ähhm .. okay... einiges pricht auch für colinardos hinweis auf die fehlende Klammer-Zu.
Die hab ich auch übersehen.
Vergiss meinen Kommentar.
[/Edit]
Member: colinardo
colinardo Jun 26, 2013 updated at 09:03:49 (UTC)
Goto Top
Hallo crack,
fehlt da nicht die schließende Klammer von DCount am Ende?:
If DCount("*", "Fertigung", "[Kunden_Bestell_Nr]='" & Me![Kunden_Bestell_Nr] & "' AND [F_KundenID]='" & Me![KID] & "'") > 0 then
Bitte fasse deinen Code in "Code" Tags ein damit Sonderzeichen hier nicht unterschlagen werden, merci.

Grüße Uwe
Member: crack24
crack24 Jun 26, 2013 at 09:19:14 (UTC)
Goto Top
Stimmt, die Klammer fehlte. Habe ich ergänzt und in Code Tages eingefasst.

@Biber
Da scheint das Problem zu liegen. "F_KundenID" ist Zahl (Long Integer) in der Tabelle und "KID" ist ein Kombinationsfeld. Lass ich dann die Hochkommata und Anführungszeichen einfach weg oder muss man für Zahlen noch etwas spezielles beachten?
Member: colinardo
colinardo Jun 26, 2013 at 09:43:31 (UTC)
Goto Top
Zitat von @crack24:
Lass ich dann die Hochkommata und Anführungszeichen einfach weg oder muss man für Zahlen noch etwas
spezielles beachten?
einfach die Hochkommas weglassen und den Wert deines Kombinationsfeldes zur Sicherheit zusätzlich noch in eine Dezimalzahl konvertieren
CDec(Me![KID])
Member: Biber
Biber Jun 26, 2013 updated at 09:52:23 (UTC)
Goto Top
Moin crack24,

tja, ACCESS-SQL ist bei mir auch schon ein paar Tage her -aus dem Gedächtmis heraus würde ich einen String dann mit "cLng()" konvertieren - oder mit CAST()/CONVERT(),
Alle diese Funktionen sind in ACCESS-SQL vorhanden, inwieweit die in der be###enen Hilfe dokumentiert sind, wissen nur die Redmonder PraktikantInnen.

Grobe Richtung:
If DCount("*", "Fertigung", "[Kunden_Bestell_Nr]='" & Me![Kunden_Bestell_Nr] & _  
   "' AND [F_KundenID]=cLng('" & Me![KID] &  "')") > 0 then..  

cLng kann aber auch nur einen String in Long konvertieren, der eine Zahl repräsentiert
-> ->cLng("66")==66; cLng("GDAGD")==#Tilt#

Grüße
Biber
Member: crack24
crack24 Jun 26, 2013 at 11:07:50 (UTC)
Goto Top
Ich hab es jetzt hinbekommen, sogar ohne Konvertierung.

Sub Check_Bestellnummer()
If DCount("*", "Fertigung", "[F_Knd_Besl_Nr]='" & Me![F_Knd_Besl_Nr] & "' AND [F_KNrID] = " & Me![KID]) > 0 Then  
MsgBox "Ein Auftrag mit dieser Bestellnummer ist schon vorhanden!"  
End If
End Sub

Damit läuft es. Vielen Dank für eure Hilfe.
Member: colinardo
colinardo Jun 27, 2013 at 10:17:15 (UTC)
Goto Top
Noch zur Info: Bitte markiere den Beitrag als gelöst. Siehe dazu die FAQ
Danke
Grüße Uwe