Die Werte einzelner Monate mittels SQL auslesen

Hallo. Für eine Einnhame-Überschußrechnung möchte ich die Zahlungseingänge aus einer Datenbank aufsummieren.
Leider bekomme ich immer „Typen unverträglich“. Was mache ich falsch:

Private Sub Command2_Click()
Dim db As Database
Dim rs As Recordset
Dim SQLString As String
Dim Jahr As Integer
Dim a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r As String

Danke im vorraus!
Sascha
Set db = OpenDatabase(„c:\Arbeit\rechnungsverwaltung.mdb“)
Jahr = 2002
’ fogende Abfragen beziehen sich auf Checkboxes die mir die Monatsauswahl geben
If Check1(0).Value = 1 Then a = " OR ‚*.01." & Jahr & "‘ " Else a = „“
If Check1(1).Value = 1 Then b = " OR ‚*.02." & Jahr & "‘" Else b = „“
If Check1(2).Value = 1 Then c = " OR ‚*.03." & Jahr & "‘" Else c = „“
If Check1(3).Value = 1 Then d = " OR ‚*.04." & Jahr & "‘" Else d = „“
If Check1(4).Value = 1 Then e = " OR ‚*.05." & Jahr & "‘" Else e = „“
If Check1(5).Value = 1 Then f = " OR ‚*.06." & Jahr & "‘" Else f = „“
If Check1(6).Value = 1 Then g = " OR ‚*.07." & Jahr & "‘" Else g = „“
If Check1(7).Value = 1 Then h = " OR ‚*.08." & Jahr & "‘" Else h = „“
If Check1(8).Value = 1 Then i = " OR ‚*.09." & Jahr & "‘" Else i = „“
If Check1(9).Value = 1 Then j = " OR ‚*.10." & Jahr & "‘" Else j = „“
If Check1(10).Value = 1 Then k = " OR ‚*.11." & Jahr & "‘" Else k = „“
If Check1(11).Value = 1 Then l = " OR ‚*.12." & Jahr & "‘" Else l = „“
If Check1(12).Value = 1 Then m = a & b & c Else m = „“
If Check1(13).Value = 1 Then n = d & e & f Else n = „“
If Check1(14).Value = 1 Then o = g & h & j Else o = „“
If Check1(15).Value = 1 Then p = k & l & m Else p = „“
If Check1(16).Value = 1 Then q = a & b & c & d & e & f & g & h & j & k & l & m Else q = „“
’ der „Platzfüller“ wird für die OR-Weisungen gebraucht
SQLString = „Select SUM(endbetrag) From daten2 Where bezahlt like ‚platzfüller‘“ & a & b & c & d & e & f & g & h & i & j & k & l & m & n & p & q

Set rs = db.OpenRecordset(SQLString)
Text1.text = rs.Fields!EXPR1000

rs.Close
db.Close

End Sub

Dim a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r As String

Hallo,

SQL unter VB habe ich nur einmal ganz bissl gemacht irgendwann, und meine einzige Idee bezieht sich somit auf VB:

Wenn ich mich recht erinnere, dann sind Deklarationen wie die obige nicht ganz korrekt. Kann sein, daß ich mich irre, aber ich glaube, daß nur das „r“ ein String ist, der ganze Rest aber Variant.
Versuche mal, alle einzeln als Strings zu deklarieren:

Dim a As String
Dim b As String
Dim c As String
Dim d As String
Dim e As String
Dim f As String
Dim g As String
Dim h As String
Dim i As String
Dim j As String
Dim k As String
Dim l As String
Dim m As String
Dim n As String
Dim o As String
Dim p As String
Dim q As String
Dim r As String

oder auch

Dim a As String, b As String, ...

Würde mich interessieren, ob´s das war.

Gruß,
Kristian

Hallo!

Die Deklaration „Dim a,b,c,… As String“ erzeugt alle Variablen, jedoch nur „a“ ist vom Typ String. Alle Anderen sind Variant. Das ist kein Problem, da bei der Wertezuweisung b=„blabl“ erkannt wird, dass es sich um String-Daten handelt - ergo stehen in der Variant-Variable „b“ Strings. So genommen, sollte die Fehlermeldung nicht von hier stammen.

Am einfachsten ist, Du gehst den problematischen Code Zeile für Zeile durch und postest dann, wo genau der Fehler auftritt (Debug-Start mit F8).

MfG, Stefan.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

siehe Posting an mich - o.T.
o.T.