これから受け取るコードのクラスターについてお詫び申し上げます。問題は、クエリがデザイン ウィンドウで機能するのはなぜですかDebug.Print .CommandText
(アクセス クエリに入力した正確なテキストが出力されることに注意してください)、オブジェクト '_Command' のメソッド 'Execute' が失敗し、INSERT クエリを実行しません。コードは次のとおりです。
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)
)