2017-02-08 35 views
0

我一直跨越「運行時錯誤3464」來跟我的腳本樓下:運行時錯誤3464

Private Sub ApproveTDS_Click() 
    DoCmd.SetWarnings False 
    Dim usr As String 

    usr = DLookup("UserID", "tt_CurrentUser") 
    DoCmd.RunSQL "UPDATE Table1 SET Table1.Date = Date(), Table1.ApprovedBy = '"& usr & "' WHERE Table1.Job = '" & Me!txtJobLU & "' And Table1.SN = '" & Me!txtJobSN & "'" 
    Me.Refresh 
    DoCmd.SetWarnings True 
End Sub 

usr = varchar(255) 
Table1.Date = Date 
Table1.ApprovedBy = varchar(255) 
Table1.Job = int 
Table1.SN = varchar(50) 

有什麼建議?

謝謝,亞當

+0

建議?當然:將你的代碼格式化爲代碼,以便你的問題可讀。 (每行前放4個空格。)谷歌錯誤代碼;那麼至少,如果結果沒有回答你的問題,你可以發佈一個有意義的錯誤,而不是一個代碼,我向你保證99%的人沒有記住。 –

+0

對不起...我是新手。這是你的意思嗎? –

+0

你可以共享表模式我懷疑有一些數據類型不匹配或DATE()沒有返回正確的格式。 –

回答

0

WHERE Table1.Job = '" & Me!txtJobLU & "'

如果工作是一個int,然後包裝它的報價將無法正常工作 - SQL服務器認爲事情在引號是字符串。字符串不是整數,所以你得到的數據類型不匹配。刪除單引號解決此問題。

儘管如此,未來學會使用參數化查詢 - 此代碼容易受到SQL注入攻擊。

+0

它的工作!謝謝 –