2
對於您即將收到的代碼集合,我表示歉意。問題是:爲什麼我的查詢在設計窗口中工作(請注意Debug.Print .CommandText
輸出準確的文本放入訪問查詢中),但是對象'_Command'的方法'執行'失敗並且不運行INSERT查詢。代碼如下:VBA查詢未作爲訪問查詢執行
cnn.BeginTrans 'Begin deletion
cmdText = "DELETE * FROM tblB1B2"
Set cmd = New ADODB.Command
With cmd
.CommandType = adCmdText
.ActiveConnection = cnn
.CommandText = cmdText
.Execute
End With
cnn.CommitTrans 'Commit Deletion
cnn.BeginTrans 'Begin update
cmdText = "INSERT INTO tblB1B2 IN '" & toDB & "' " & _
"SELECT interne AS interne, groupe AS groupe, MAX(itemref) AS [item], largeur AS largeur, hauteur AS hauteur, local AS [local], etage AS etage, partie AS partie, dessin AS dessin, datezonage AS datezonage, externe AS externe, erreur AS erreur, tag_hndl AS tag_hndl, tag_dessin AS tag_dessin, pobj_hndl AS pobj_hndl, pobj_type AS pobj_type, pobj_bname AS pobj_bname, zpl_hndl AS zpl_hndl, id AS id, Sidewalk AS Sidewalk, BarrierFreePathOfTravel AS BarrierFreePathOfTravel, Signage AS Signage, Hardware AS Hardware, PowerDoorOperator AS PowerDoorOperator, PDOMountHeight AS PDOMountHeight, ClearWidth AS ClearWidth, ClearSpace AS ClearSpace, ManoeuveringSpace AS ManoeuveringSpace, TwoDoorsInASeries AS TwoDoorsInASeries, Comments AS [Comments] " & _
"FROM " & _
"(SELECT interne, groupe, [item] AS itemref, largeur, hauteur, local, etage, partie, dessin, datezonage, externe, erreur, tag_hndl, tag_dessin, pobj_hndl, pobj_type, pobj_bname, zpl_hndl, [id], Sidewalk, BarrierFreePathOfTravel, Signage, Hardware, PowerDoorOperator, PDOMountHeight, ClearWidth, ClearSpace, ManoeuveringSpace, TwoDoorsInASeries, [Comments] " & _
"FROM tblB1B2 IN '" & dbArray(0) & "' " & _
"UNION ALL " & _
"SELECT interne, groupe, [item] AS itemref, largeur, hauteur, local, etage, partie, dessin, datezonage, externe, erreur, tag_hndl, tag_dessin, pobj_hndl, pobj_type, pobj_bname, zpl_hndl, [id], Sidewalk, BarrierFreePathOfTravel, Signage, Hardware, PowerDoorOperator, PDOMountHeight, ClearWidth, ClearSpace, ManoeuveringSpace, TwoDoorsInASeries, [Comments] " & _
"FROM tblB1B2 IN '" & dbArray(1) & "' " & _
"UNION ALL " & _
"SELECT interne, groupe, [item] AS itemref, largeur, hauteur, local, etage, partie, dessin, datezonage, externe, erreur, tag_hndl, tag_dessin, pobj_hndl, pobj_type, pobj_bname, zpl_hndl, [id], Sidewalk, BarrierFreePathOfTravel, Signage, Hardware, PowerDoorOperator, PDOMountHeight, ClearWidth, ClearSpace, ManoeuveringSpace, TwoDoorsInASeries, [Comments] " & _
"FROM tblB1B2 IN '" & dbArray(2) & "' " & _
") AS FullTable " & _
"GROUP BY interne, groupe, largeur, hauteur, local, etage, partie, dessin, datezonage, externe, erreur, tag_hndl, tag_dessin, pobj_hndl, pobj_type, pobj_bname, zpl_hndl, [id], Sidewalk, BarrierFreePathOfTravel, Signage, Hardware, PowerDoorOperator, PDOMountHeight, ClearWidth, ClearSpace, ManoeuveringSpace, TwoDoorsInASeries, [Comments]"
Set cmd = New ADODB.Command
With cmd
.CommandType = adCmdText
.ActiveConnection = cnn
.CommandText = cmdText
Debug.Print .CommandText
.Execute
End With
cnn.CommitTrans 'Commit update
將複製粘貼到訪問查詢時的打印文本運行正常;但在VBA中產生這個錯誤。爲什麼?我怎樣才能解決它?我是否在使用我不知道的關鍵字?
另外,有沒有一種方法可以執行此查詢,而無需指定每個字段? (注意MAX(itemref)
)
幹得好,你不需要別名保留字,方括號應該可以解決問題。 – Fionnuala 2012-08-08 15:57:08
是的,但由於某些原因,它導致與[本地] AS [本地]的循環引用,但沒有任何其他領域的AS字段引用..不知道爲什麼。 – StuckAtWork 2012-08-08 16:29:58