Hej igen.... Hej! Hejsan Hej igen! Hej! Hej Ändra datatypen på fältet till tal - Dubel eller lång.Syntaxfel (operator saknas) ??!?
Följande felmedelande dyker upp: Syntaxfel (operator saknas) i frågeuttrycket 'summaTim + 2,00WHERE ProjektNr=1235'
Kod: strSQL = "UPDATE TBL_Projektlogg SET SummaTim = SummaTim + " & SQLNumber(Timmar) & "WHERE ProjektNummer=" & Projektnr
Någon som ser felet?
Som sagt, jag är bara en glad amatör :-()
/TomasSv: Syntaxfel (operator saknas) ??!?
strSQL = "UPDATE TBL_Projektlogg SET SummaTim = SummaTim + " & SQLNumber(Timmar) & "WHERE ProjektNummer=" & Projektnr
borde du kanske prova ändra om till
strSQL = "UPDATE TBL_Projektlogg SET SummaTim = SummaTim + " & CCur(Timmar) & " WHERE ProjektNummer=" & Projektnr
Observera att det var funktionen SQLNumber() som jag bytte ut mot CCur() som du kan läsa mer om på
URL: http://msdn.microsoft.com/scripting/vbscript/doc/vsfctccur.htm
Om CCur() inte fungerar så kan du prova med t ex CInt() (beroende på vilken datatyp SummaTim är).
Lycka till och lev väl,
Tom S.Sv: Syntaxfel (operator saknas) ??!?
Jag testade ditt förslag:
strSQL = "UPDATE TBL_Projektlogg SET SummaTim = SummaTim + " & CCur(Timmar) & " WHERE ProjektNummer=" & Projektnr
men nu fick jag Typblandningsfel i vilkorsutryck.
Funktionen ser ut så här:
Public Function SparaProjektTimmar(Timmar As Variant, Projektnr As Variant)
Dim Dcon As ADODB.Connection
Dim strSQL As String
Dim DBFileName As String
DBFileName = GetIni("Databasinfo", "Path", App.Path & "\info.ini")
Set Dcon = New ADODB.Connection
Dcon.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Persist Security Info=False;" & _
"Data Source=" & DBFileName
Timmar = frmNYDag.textTimmar.Text
strSQL = "UPDATE TBL_Projektlogg SET SummaTim = SummaTim + " & CCur(Timmar) & " WHERE ProjektNummer=" & Projektnr
Dcon.Execute strSQL
Dcon.Close
End Function
Public Function SQLNumber(Value As Variant) As String
If IsNumeric(Value) Then
SQLNumber = Replace(CStr(Value), Format$(0, "."), ".")
Else
SQLNumber = "0"
End If
End Function
/TomasSv: Syntaxfel (operator saknas) ??!?
Jag hoppas också att fältet SummaTim är av datatypen tal?
Lev väl,
Tom S.Sv: Syntaxfel (operator saknas) ??!?
strSQL = "UPDATE TBL_Projektlogg SET SummaTim = SummaTim + " & CCur(Timmar) & " WHERE ProjektNummer=" & Projektnr
Kommer variabeln Timmar och Projektnr vara decimaltal? Om inte; kör funktionen CInt() på dom och ändra argumentinitieringen till Integer istället för Variant. Om det inte fungerar, skriv
MsgBox strSQL
efter initieringen av strSQL och skicka in ditt svar här så jag/vi får kika på det.
Lev väl,
Tom S.Sv: Syntaxfel (operator saknas) ??!?
Timmar är decimaltal och Projektnr heltal.
Jag satte in MsgBox strSQL och fick en msgBox med följande text:
UPDATE TBL_ProjektLogg SET SummaTim = SummaTim + 2,00WHERE ProjektNummer=6667
2,00 är antalet timmar som jag valde på ProjektNummer 6667
Klickade ok och fick Typblandningsfel i vilkorsutryck
SummaTim är av datatypen 12, det blir memo tror jag.
/TomasSv: Syntaxfel (operator saknas) ??!?
Och använd dig av SQLNumber funktionen om ditt värde innehåller decimaltecken. "." är decimalseparator i sql server.
Public Function SQLNumber(Value As Variant) As String
If IsNumeric(Value) Then
SQLNumber = Replace(CStr(Value), Format$(0, "."), ".")
Else
SQLNumber = "0"
End If
End Function