2017-08-29 2 views
0

Arbeiten mit powerdesigner Modellen mit Excel VBA. Ich habe mehrere Modelle geöffnet, auf die ich zugreifen möchte. In meinem Code kann ich leicht das aktuelle aktive Modell zugreifen:Powerdesigner VBA - wie man aktives Modell schaltet

Gibt es eine Möglichkeit das aktive Modell auf ein anderes Modell zu wechseln, die ebenfalls geöffnet ist? Ich habe die verfügbaren Methoden durchgesehen und sehe keine Methoden, die diese Aufgabe ausführen können.

Dank

Antwort

1

Ich verstehe, es könnte Nebenwirkungen haben, aber das Beste, was ich denken kann ist OpenView zu verwenden.

option explicit 

if SelectDiagram("diagone") then 
    output "model selected: " & activemodel.name 
end if 

' try to activate a model by its default diagram name 
' returns true if the model was opened 
function SelectDiagram(name) 
    dim m 
    for each m in models 
     if m.defaultdiagram.name = name then 
     m.defaultdiagram.openview 
     SelectDiagram = true 
     exit function 
     end if 
    next 
    SelectDiagram = false 
end function 
1

Zwei Optionen (dies mehr vbScript ist ... nach Bedarf anpassen):

1) Öffnen Sie die Modelle mit VBA und die von OpenModel referenzierte Objekt verwenden:

Set modelBase = pd_App.OpenModel(pathBase, omf_DontOpenView)

2) Wenn die Modelle bereits geöffnet sind (wie ich aus Ihrer Frage folge), können Sie den Arbeitsbereich abfragen und von dort wählen:

For Each model In pd_App.ActiveWorkspace.Children If model.Name = "My Model" Then Set theModelIWant = model : Exit For Next

Verwandte Themen