Neuigkeiten:

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

Mobiles Hauptmenü

Syntaxfehler in Abfrageausdruck

Begonnen von Ken, Juli 19, 2013, 13:27:26

⏪ vorheriges - nächstes ⏩

Ken

Hallo,

ich verzweifel so langsam an dieser Abfrage....und finde den Fehler einfach nicht!!!!

DoCmd.RunSQL ("select * INTO now_Temp" _
& " FROM Data_month where 035_mcd BETWEEN  " & von & " and " & von1 & "")


von ist 201301 und von1 ist 201305

Wer weiß was hier angeblich falsch ist?
dim von und von1 as string

Danke!
Gruß
Ken


Office 2010

Wurliwurm

Zitat von: Ken am Juli 19, 2013, 13:27:26
Hallo,

ich verzweifel so langsam an dieser Abfrage....und finde den Fehler einfach nicht!!!!

DoCmd.RunSQL ("select * INTO now_Temp" _
& " FROM Data_month where 035_mcd BETWEEN  " & von & " and " & von1 & "")


von ist 201301 und von1 ist 201305

Wer weiß was hier angeblich falsch ist?
dim von und von1 as string

Danke!

Vielleicht fehlen die Anführungskennzeichen ( ' )

Zitat
BETWEEN  '" & von & "' and

Ken

Hab gerade mal mit ' versucht....aber leider ohne Erfolg  :-\
Gruß
Ken


Office 2010

database

Hallo,

mit welchem Datentyp sind diese Werte gespeichert (035_mcd)?

sieh auch:

http://www.donkarl.com?FAQ6.8

Ken

Hallo,

als Text, habe aber auch schon auf Zahl umgestellt - ohne Erfolg.
Gruß
Ken


Office 2010

DF6GL

Hallo,

wenn die Tabellenfelder vom Datentyp String sind, versuch es mal so:


Dim lngvon as Long, lngvon1 as Long
lngvon=201301
lngvon1 = 201305



DoCmd.RunSQL "select * INTO now_Temp   FROM Data_month where Int(035_mcd)  BETWEEN  " & lngvon & " and " & lngvon1

Ken

Hallo,

habe ich versucht, aber auch diesmal wieder Syntaxfehler wie oben beschrieben. Anmerkung: Es kommt auch die Meldung "Laufzeitfehler 3075"
Gruß
Ken


Office 2010

DF6GL

Hallo,

poste mal mit den Copy&Paste den gesamten Code der Prozedur... Und überprüf nochmal die Datentypen der beteiligten Tabellenfelder.

Ken

Gerne:

Global von1 As String
Global von2 As String

von = Left$(Me.Kombif_datum.Column(0), 5)
von = von + "1"
von1 = Me.Kombif_datum.Column(0)


DoCmd.RunSQL ("select * INTO now_Temp" _
& " FROM Data_month where 035_mcd BETWEEN  " & von & " and " & von1 & "")


Das Kobifeld trägt den Wert 201305, wird von "von" auf 201301 gesetzt und "von1" wieder 201305
Gruß
Ken


Office 2010

DF6GL

Hallo,

ich verzweifel so langsam

ich auch   :'(


-- ist das der komplette Code der Prozedur..???
-- Hast Du die Datentypen der Tabellenfelder geprüft (und wie lauten die )   ???   
-- Was soll die mathematische Addition von Text  ???
-- Wie ist "von" deklariert"  ???
-- Wofür wird "von2" gebraucht  ???
--  von = von + "1"     ist in diesem Zusammenhang Unsinn, weil dadurch die Ziffer 1  an den Text von "von" angehängt wird, (falls "von" vom Datentxp String ist).
--  Wenn die "Monatszahl" , die an den zwei rechts liegenden Stellen im Text von "von" steht,  um eins erhöht werden soll, dann muss diese eigentlich zusätzlich getrennt von der Jahreszahl ) erst in den Datentyp Zahl,Long (implizit oder explizit)  konvertiert und dann mit 1 addiert werden....   Was solange gutgeht, bis ein Jahreswechsel (Monatszahl=13) auftaucht....

Alles in allem ist diese Vorgehensmethode zur Berechnung eines Datums (Zeitbereiches)   suboptimal und nicht zielführend, außer man weiß, was man tut...

Ken

Hallo,

ja ich bin kein Access Gott -sorry  ;)

- ja das ist alles an Code, es soll einfach nur eine neue Tabelle angelegt werden mit einem Datumsfenster

- die Werte im Kombifeld kommen von einer Tabelle (Typ Zahl) und dort stehen Jahresmonatszahlen zur Auswahl: z.B. 201301, 201302 etc.

- was genau meinst du mit Addition von Text? von +1 brauche ich, weil immer von Monat 01 begonnen werden soll, das Kombifeld bietet z.B. 201305 zur Auswahl und dann soll von     = 201301 und von1= 201305 sein.

- "von" ist wie beschrieben String

- Sorry musste natürlich von und von1 heißen und nicht von2 - mein Fehler.
Gruß
Ken


Office 2010

DF6GL

Hallo,

Das hat nichts mit Access-Gott zu tun, eher mit der unzulänglichen Beschreibung...  ;)

Zitat"was genau meinst du mit Addition von Text? "
Das Plus-Zeichen ("+")  ist der Operator für mathematische Operation (Addition), das Ampersand-Zeichen ("&")  das für Concatination (Anhängen, Zusammenfügen) von Text (Strings).


Zitatvon Monat 01 begonnen werden soll, das Kombifeld bietet z.B. 201305 zur Auswahl und dann soll von     = 201301 und von1= 201305 sein.

Ok, damit wird die Sachlage klarer.. 




ZitatPrivate Sub Befehl0_Click()
Dim von1 As String, von2 As String    'Richtig deklarieren
von2 = Left$(Me.Kombif_datum.Column(0), 5)
von2 = von2 & "1"         'JahresMonatszahl für Anfangsmonat  zusammensetzen.
von1 = Me!Kombif_datum.Column(0)
DoCmd.RunSQL ("select * INTO now_Temp  " _
& " FROM Data_month where [035_mcd] BETWEEN  " & von1 & " and " & von2)       '  Datentyp: Zahl,Long ,  Feldnamen in Eckklammern setzen,
End Sub



Ken

Hallo,

es LEBT.....vielen Dank für die Hilfe, glaube ohne hätte ich es nicht hin bekommen.


DANKE!
Gruß
Ken


Office 2010