Neuigkeiten:

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

Mobiles Hauptmenü

Falsche Maskierung ?!

Begonnen von huelse77, April 27, 2015, 09:31:59

⏪ vorheriges - nächstes ⏩

huelse77

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


MzKlMu

Hallo,
was ist denn fld ?, bzw. was willst Du machen mit der Funktion.
Gruß Klaus

el_gomero

Moin,

poste doch mal die Werte zur Übergabe, evtl machen Leer- und/oder Sonderzeichen bei den Bezeichnern Ärger.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

huelse77

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

MzKlMu

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 ?
Gruß Klaus

huelse77

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


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

el_gomero

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.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

huelse77

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

el_gomero

#9
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.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

el_gomero

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 & "'")
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

huelse77

Hallo Jürgen,

vielen Dank, das war die Lösung!!

BG

huelse77