PDA

Vollständige Version anzeigen : SQL String


Prefender
20.01.2003, 11:28
Hallo,
bekomme den SQL String nicht hin.
Hat jemand eine Ahnung was falsch ist?

Set con = Application.CurrentProject.Connection
stSql2 = "UPDATE Bookings_imp set Bookings_imp.Buchung_Zeit =" & "'" & strTimeF & "'"
stSql2 = stSql2 & ", Bookings_imp.Buchung_Dat =" & "'" & strDateF & "'"
stSql2 = stSql2 & " WHERE Bookings_imp.id = " & strrs1id
'stSql2 = stSql2 & " WHERE Bookings_imp.id = " & "'" & strrs1id & "'"

'stSql = stSql & " AND SCH_Log.Date = " & Date_SQL
Set rs2 = CreateObject("ADODB.Recordset")
Me!SQL = stSql2
rs2.Open stSql2, con, 2 ' 1 = adOpenKeyset

Erzeugter string ist:
UPDATE Bookings_imp set Bookings_imp.Buchung_Zeit ='17:37:28', Bookings_imp.Buchung_Dat ='04.11.02' WHERE Bookings_imp.id = 1

Danke im vorraus!

Gruß Peter

Rainer Simon
20.01.2003, 11:32
Hallo Peter,

Dir fehlt am Ende (nach der WHERE-Klausel) das Semikolon.

Gruß Rainer

Prefender
20.01.2003, 12:41
Hi,
der String schaut nun so aus:
UPDATE Bookings_imp set Bookings_imp.Buchung_Zeit ='17:37:28', Bookings_imp.Buchung_Dat ='04.11.02' WHERE Bookings_imp.id = 1;

Geht leider noch nicht.
Hier sollen zwei Felder upgedatet werden, bis zum ersten Feld gings,
(auch ohne Semikolon). String wurde erweitert durch ", Bookings_imp.Buchung_Dat ='04.11.02' " da war schluss mit lustig.

Ist die Syntax für Update von Zweifeldern vieleicht falsch?

Gruß Peter

Rainer Simon
20.01.2003, 12:48
Hallo Peter,

welchen Datentyp hat Datumsfeld? Wenn es Datum ist, muss der Wert anders eingetragen werden (Raute uns amerikanisches Format).

Wegen "Feigheit vor dem Feind Datumsfeld " und schlechten Erfahrungen, pack ich das Ganze in Strings, bei Berechnungen wird per cdate(string) alles ins Datumsformat gebracht.

Gruß Rainer

Prefender
20.01.2003, 12:52
Hallo Rainer,

:) wegen Feigheit schreib ich's auch ins Textfeld!

Vermute da´s ich die Syntax für's Update falsch habe.
Geht:
UPDATE Bookings_imp set Bookings_imp.Buchung_Zeit ='17:37:28' WHERE Bookings_imp.id = 1
Geht nicht:
UPDATE Bookings_imp set Bookings_imp.Buchung_Zeit ='17:37:28', Bookings_imp.Buchung_Dat ='04.11.02' WHERE Bookings_imp.id = 1

Gruß Peter

Rainer Simon
20.01.2003, 13:02
Hallo Peter,

hast Du als Feldtyp DATUM?

Gruß Rainer

Prefender
20.01.2003, 13:03
Hi,
habs gefunden.
statt: Bookings_imp.Buchung_Dat ='04.11.02'
richtig:Bookings_imp.Buchungs_Dat ='04.11.02'

Also Feldnamen falschgeschrieben :o !

Blöd nur das keine Meldung kommt "Feld nicht gefunden"!!

Gruß Peter

Rainer Simon
20.01.2003, 13:07
Hallo Peter,

dies sind die kleinen Gemeinheiten.

Gruß Rainer

Dan
20.01.2003, 13:18
Hi,

der Syntax scheint mir schon richtig:
UPDATE tabellenname SET feldname1 = 'Wurstkoffer', feldname2 = 1526;

Allerdings musst Du mal schauen, ob Deine Felder in der Datenbank Datumsfelder sind. Dann könnte es sein, dass er keine Strings annimmt.

... habe gerade nochmal Deinen Code angeschaut...?
Hast Du schonmal überprüft, ob der SQL_String vielleicht funktioniert und der Code nicht?
Du versuchst ein Recordset zu erzeugen, IMHO sind Recordsets aber doch
Tabellen und Auswahlabfragen. Was Du vor hast ist eine Aktionsabfrage.
Die kann man ausführen mit ...äh... Docmd.RunSQL oder ADOCon.Execute, glaube ich ...

cu Daniel