na upresnenie posielam kod.
1. v pripade ze v pripojenom vykrese sa nachadzaju objekty s layer = 0 SelectionSet po query vrati objekty s layer = 0. Ak sa nenachadza, vrati vsetky objekty z predchadzajuceho SelectionSet-u.
2. taktiez v danom pripade nefunguje Query.Execute, ale iba ThisDrawing.SendCommand "_MAPWSQUERYEXECUTE "
Sub QueryToSelectionSet()
Dim oQry As Query
Dim oQLeaf As QueryLeaf
Dim oQBranch As QueryBranch
Dim oProject As Project
Dim oUtil As AcadUtility
Dim sLayer As String
sLayer = "0"
Dim oProjectOptions As ProjectOptions
Dim oAcadSelSet As AcadSelectionSet
Set oUtil = ThisDrawing.Utility
Set oProject = ThisDrawing.Application.GetInterfaceObject("AutoCADMap.Appli cation").Projects(ThisDrawing)
Set oProjectOptions = oProject.ProjectOptions
Set oAcadSelSet = ThisDrawing.SelectionSets.Add("AllObjectsSelected")
If Not Nothing Is oAcadSelSet Then
oAcadSelSet.Select acSelectionSetAll
oUtil.Prompt "Before _MAPWSQUERYEXECUTE oAcadSelSet.Name = " & oAcadSelSet.Name & vbCrLf
oUtil.Prompt "Before _MAPWSQUERYEXECUTE oAcadSelSet.Count = " & CStr(oAcadSelSet.Count) & vbCrLf
oAcadSelSet.Clear
oAcadSelSet.Delete
End If
oProjectOptions.MkSelSetWithQryObj = True
Set oQry = oProject.CurrQuery
oQry.Clear
Set oQBranch = oQry.QueryBranch
Set oQLeaf = oQBranch.Add(kPropertyCondition, kOperatorAnd)
If True = oQLeaf.SetPropertyCond(kLayer, kCondEq, sLayer) Then
oQry.Mode = kQueryDraw
If True = oQry.Define(oQBranch) Then
'   ; If False = oQry.Execute( ) Then
'   ; ThisDrawing.Utility.Prompt "Query.Execute fail"
'   ; End If
ThisDrawing.SendCommand "_MAPWSQUERYEXECUTE "
oUtil.Prompt "Execute Query for Layer = " & sLayer & vbCrLf
End If
End If
Set oAcadSelSet = ThisDrawing.ActiveSelectionSet
If Not Nothing Is oAcadSelSet Then
oUtil.Prompt "After _MAPWSQUERYEXECUTE oAcadSelSet.Name = " & oAcadSelSet.Name & vbCrLf
oUtil.Prompt "After _MAPWSQUERYEXECUTE oAcadSelSet.Count = " & CStr(oAcadSelSet.Count) & vbCrLf
oAcadSelSet.Clear
oAcadSelSet.Delete
End If
oQry.Clear
Set oUtil = Nothing
Set oQry = Nothing
Set oQBranch = Nothing
Set oQLeaf = Nothing
Set oAcadSelSet = Nothing
End Sub