2.1k Aufrufe
Gefragt in Datenbanken von
Hallo zusammen, habe da ein problem mit einer SQL-Abfrage in VBA.

Folgende Anordnung:

möchte aus der Tabelle "T_daten" die Anzahl von "wi" (wi ist eine Tabellenspalte in der sich Buchstabenkombinationene befinden) ermitteln mit den Kriterien: Jahr = Textfeld1 (2009), Monat = Textfeld2 (3), suche = Textfeld3 (Artikeltext)

(Textfelder sind Suchfelder im Formular)

habe mir das in etwa so vorgestellt, komme nur nicht weiter:

sub test()

dim antwort as Integer

antwort = selct count(wi), from T_daten, where Jahr = Textfeld1 and where Monat = Textfeld2 und where suche = Textfeld3

msgbox antwort
end sub

Danke im voraus

rolandaa

6 Antworten

0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo rolandaa,

probiere es mit
antwort = Dcount("wi","T_daten","Jahr = " & textfeld1 & " and monat = " & Textfeld2 & " and suche = " & textfeld3)

Es geht auch mit einem SELECT-Statement, ist aber mehr Code.

Gruß
Ralf
0 Punkte
Beantwortet von
Hallo Ralf,

vorab mal vielen Dank.

Leider bringt er mir die Fehlermeldung "Missing Parameter in Critical" (oder so ähnlich, kanns leider nur in der Arbeit ausprobieren).

wie würde unter umständen die Lösung mit SELECT aussehen?

mfg
rolandaa
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo rolandaa,

die Funktion dcount habe ich schon oft genutzt und sollt auch funktionieren. Poste mal den Code den du eingesetzt hast.
Hilfreich wären auch die Felder der Tabelle und die Felder aus deinem Formular. Ach ja, in welches Modul hast du die
Funktion eingefügt und bei welchem Ereignis?

Gruß
Ralf
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo Rolandaa,

ok, Textfeld3 ist eine Zeichenkette, das habe ich nicht beachtet. Hier eine Korrektur:

antwort = Dcount("wi","T_daten","Jahr = " & textfeld1 & " and monat = " & Textfeld2 & " and suche = '" & textfeld3 & "'")
Bie Jahr und Monat gehe ich von Zahlen aus. Die Felder "Jahr", "Monat" und "suche" sollten in deiner Tabelle vorhanden sein und den entsprechenden Typem. Die Felder textfeld1 bis textfeld3 sollten Bestandteile deines Formulars sein. Den Code baust du am Besten in ein Click-Ereignis eines Buttons in deinem Formular ein.

Gruß
Ralf

p.s. auf einer großen Tastatur lässt es sich viel einfacher schreiben als auf einem Google G1 ;-)
0 Punkte
Beantwortet von
hallo ralf,

und in der tat, es erschein ein passendes ergebnis.

Danke.

mfg
rolandaa
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo rolandaa,

wenn es passt ist's gut. Hier aber noch ein paar Überlegungen. Es gibt mehrere Arten zu zählen:

1. zähle alle Datensätze in denen "wi" nicht null ist (meine obige Lösung)
2. zähle alle Datensätze, unabhängig was in "wi" drin steht --> ersetze "wi" surch "*"
3. zähle alle unterschiedliche "wi" --> da muss der Einzeiler in einen anderen Einzeiler geändert werden (Dlookup mit Select-Statement)

Gruß
Ralf
...