0
我在Access VBA中有代码,那是用SQL填充查询模板并执行它。我必须querydefs。首先工作正常,但第二次当我分配SQL字符串时,我得到了错误3305.第二个QueryDefs.SQL不起作用
这两个插入的表都在Oracle数据库上,我有链接到它的表。
代码
Sub prc()
Dim pSQLStr As String
Dim pQuery As QueryDef
Dim pBaza As Database
Set pBaza = CurrentDb
Set pQuery = pBaza.QueryDefs("qryInsertTemplate")
pSQLStr = ""
pSQLStr = pSQLStr & "INSERT INTO tbl1 ("
pSQLStr = pSQLStr & "ID, POS)"
pSQLStr = pSQLStr & "SELECT xlsx.ID, xlsx.pos"
pSQLStr = pSQLStr & " FROM xlsx;"
With pQuery
.SQL = pSQLStr
.ReturnsRecords = False
.Execute
End With
Set pQuery = pBaza.QueryDefs("qryInsertTemplate")
pSQLStr = ""
pSQLStr = pSQLStr & "INSERT INTO tbl2 ("
pSQLStr = pSQLStr & "ID, POS)"
pSQLStr = pSQLStr & "SELECT xlsx.ID, xlsx.pos"
pSQLStr = pSQLStr & " FROM xlsx;"
With pQuery
.SQL = pSQLStr 'here I got error 3305
.ReturnsRecords = False
.Execute
End With
End Sub
如果您可以反转查询的顺序,则可能是Excel文件未正确关闭。假设查询二在独立运行时工作。 – Gustav
独立它正在运行 – Gadziu