Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

SQL count

logo3 / 2 Antworten / Flachansicht Nickles

hallo,

ich versuche verschweifel eine ganz einfache SQL in VBA access einzubinden.
ich habe eine Tabelle mit namen und ich möchte wissen wieviele einträge mit den namen Peter gibt.

Tabelle:total
Feld:name (definiert wie text)

Sowiel ich weiss diese sql anweisung ist korrekt


--------------------------------------------------
SELECT Count(total.name) AS zahlname
FROM total
HAVING (((Count(total.name))="Peter"));
--------------------------------------------------

bekomme folgenden fehlermedng

Datentypen übereinstimmen nicht

ich denke, das liegt daran, weil das Feld "name" als text deklariert.

Kann mir bitte jemand sagen, was in diese anweisung falsch ist?
und entsprechend anpassen ?

danke für eure Hilfe

logo



bei Antwort benachrichtigen
T-Rex logo3 „SQL count“
Optionen

Bei Feld- und Tabellennamen mit dem Namen "name" solltest Du extrem vorsichtig sein, "name" ist ein geschützter Begriff.

Zeichenketten werden mit einfachen Hochkommata abgegrenzt.

Der Having-Block schränkt die Ergebnismenge nach der Aggregatfunktion ein, wobei Du hier nur Daten verwenden solltest, die im Select-Block erstellt werden.

Dim strSQL As String
Dim strName As String

strName = "Peter"
strSQL = "SELECT total.[name], COUNT(total.[name]) AS ZahlName " & _
"FROM total " & _
"WHERE (total.[name] = '" & strName & "') " & _
"GROUP BY total.[name] " & _
"ORDER BY total.[name];"

Debug.Print strSQL


Und dann solltest Du bedenken, daß Dein Code nur die Felder berücksichtigt, in denen "Peter" steht, "peter" wird nicht berücksichtigt. Wie die entsprechende Funktion in Access heißt, weiß ich im Moment nicht, aber versuche es mal mit UPPER, UPCASE oder UCASE und UCase$(strName).

 GrüßeT-Rex 
bei Antwort benachrichtigen