我不确定原因,但是当我执行Access表单的这一部分时,我遇到类型不匹配错误。我检查了SQL服务器中涉及的所有字段的数据类型,它们都是匹配的。两个表中的InspectID和incdntno都是'INT'类型,而inspdate和Dt_inspect都是'datetime'。
我发现不匹配可能是由我的查询的where子句引起的,因为incdntno被Dim'd作为字符串(在SQL中它是INT)我尝试将Incdntno的数据类型更改为两个表中的varchar,认为这样会在Dim中存活并且不会导致不匹配,我不确定这是否有效,因为当我下次运行它时会引发ODBC错误。
Private Sub Text79_AfterUpdate()
Dim conn As ADODB.Connection
Dim sSQL As String
Set conn = CurrentProject.Connection
If IsNull([Incdntno]) Then
Me.Dirty = False
End If
Dim InspNo As String
InspNo = Incdntno.Value
sSQL = "INSERT INTO tblFieldIncident_Complaint_InspHist ( Incdntno, InspectID, Dt_Inspect ) SELECT Incdntno, InspectID, InspDate FROM tblInspect WHERE Incdntno='" & InspNo & "';"
conn.Execute sSQL
Me.Refresh
End Sub
答案 0 :(得分:0)
我建议省略单引号:
sSQL = "INSERT INTO tblFieldIncident_Complaint_InspHist( Incdntno, InspectID, Dt_Inspect )
SELECT Incdntno, InspectID, InspDate
FROM tblInspect
WHERE Incdntno=" & InspNo & ";"
-------------------------^-------------^