Hallo zusammen,
ich habe folgende Funktion erstellt, die funktioniert:
Public Function test(tbl As String, fld As String, crt As String) As Integer
test = DCount("*", tbl, "Lieferanten= '" & crt & "'")
End Function
Eigentlich soll die Funktion aber so aussehen
test = DCount("*", tbl, "'" & fld & "'='" & crt & "'")
Nur das funktioniert nicht egal wie ich die Variable fld maskiere. Entweder ich erhalte den Wert 0, es werden alle Datensätze gezählt oder ich werde auf den fehlenden Operator hingewiesen.
Ich hoffe Ihr könnt mir helfen?
Vielen Dank vorab.
Beste Grüße
huelse77
Hallo,
was ist denn fld ?, bzw. was willst Du machen mit der Funktion.
Moin,
poste doch mal die Werte zur Übergabe, evtl machen Leer- und/oder Sonderzeichen bei den Bezeichnern Ärger.
Hallo Klaus,
tbl = Tabelle
fld = Feld
crt = Kriterium
Ziel des ganzen ist es in einem Formular den eingegebenen Wert in einem Textfeld zu prüfen, ob dieser in einer Tabelle vorhanden ist. Insgesamt sind es 3 Textfelder und mit je einer Tabelle, wo der Wert geprüft werden soll.
So sieht dann z.B. der Aufruf der Funktion aus:
test("Lieferanten", "Lieferanten", Me!Text0)
BG
huelse77
Hallo,
was die Abkürzungen bedeuten ist mir schon klar. Ich hatte eher den Sinn gemeint. Wo kommt denn der Wert für fld her? Gleich Frage für crt ?
Und warum nicht einfach 3 Funktionen für die 3 Felder ?
Hallo Jürgen,
der Wert, der im Textfeld eingegeben wird ist z.B. "FS Neuss" und funktioniert mit dem Code:
Public Function test(tbl As String, fld As String, crt As String) As Integer
test = DCount("*", tbl, "Lieferanten= '" & crt & "'")
End Function
Im möchte das Feld "Lieferanten" mit der Variablen fld ersetzen und das funktioniert leider nicht
Vielen Dank vorab
BG
huelse77
Hallo Klaus,
anstatt 3 Funktionen möchte ich gerne nur eine haben.
fld-Wert = Feldname aus der jeweiligen Tabelle
crt-Wert = kommt aus dem Textfeld
Vielen Dank vorab
BG
huelse77
nochmal - wie lauter Feldname und Kriterium?
Zitat
der Wert, der im Textfeld eingegeben wird ist z.B. "FS Neuss" und funktioniert mit dem Code:
das wage ich zu bezweifeln, denn die Funktion erwartet 3 Übergabeparameter.
Hallo Jürgen,
der Code funktioniert, weil ich 3 Variablen übergebe (s.o.) und nur 2 nutze.
Feldname ="Lieferanten"
Kriterium = "FS Neuss" bzw. je nach Nutzereingabe
Vielen Dank vorab
BG
huelse77
wenn du die Prozedur RunTest ausführst müsste die richtige Anzahl per Messagebox angezeigt werden. Den Tabellennamen hältst du bisher geheim, also im Code ersetzen.
Public Function test(strTbl As String, strFld As String optional, strCrt As String) As Long
test = DCount("*", strTbl, "Lieferanten= '" & strCrt & "'")
End Function
Sub RunTest()
MsgBox Test("Tabellenname",, "FS Neuss")
End Sub
hatte das 2. Komma vergessen und jetzt nachgetragen.
mit 3 Parametern wäre der Aufruf so (ungetestet):
Public Function test(strTbl As String, strFld As String optional, strCrt As String) As Long
Dim strKrit as String
strKrit = strFld & "='" & strCrt & "'"
test = DCount("*", strTbl, strKrit)
End Function
Sub RunTest()
MsgBox Test("Tabellenname", "Lieferanten", "FS Neuss")
End Sub
[code]
test = DCount("*", tbl, "'" & fld & "'='" & crt & "'")
Hallo Jürgen,
vielen Dank, das war die Lösung!!
BG
huelse77