Hallo zusammen,
Ich habe ein Problem und weiß nicht, wie is dieses lösen soll.
Ich habe ca. 150 DVB-Projekte. In jedem Projekt ist ein Verweis gesetzt zu der Datei SYSTEM.DVB
Wenn ich nun meine DVB's auf einem anderen System installiere, ist natürlich der Pfad zur SYSTEM.DVB verschieden zu dem Pfad, wie er auf meiner Ursprungsmaschine ist.
Die Prozeduren un den DVB's werden über Lisp getriggert. Nach der Triggerung wird das entsprechende Projekt geladen und die Prozedur ausgeführt. Ich habe eine Methode entwickelt, den Pfad zum Verweis während der Laufzeit zu setzen.
Bei jedem Prozedurstart wird folgender Code durchlaufen:
Public Sub defun_ASlink()
Dim objProject As VBProject
Dim objProjects As VBProjects
Dim ASroot As String
Dim ASverweis As String
Dim ASpath As String
Dim i As Integer
Dim z As Integer
On Error Resume Next
ASroot = "SUBPROZEDUR"
For z = 1 To 1
Select Case z
Case Is = 1
ASpath = Environ("appdata") & "\SYSTEM.dvb"
End Select
Set objProjects = Application.VBE.VBProjects
For i = 1 To objProjects.Count
Set objProject = objProjects.Item(i)
If objProject.Name = ASroot Then
objProject.References.AddFromFile (ASpath)
ASpath = objProject.FileName
objProject.SaveAs ASpath
Exit For
End If
Next i
Next z
End Sub
Das funktioniert schon ganz gut, aber das "objProject.SaveAs ASpath" triggert eine Fehlermeldung. Vorerst stört mich das aber nicht weiter
Wenn ich nun meine Projekte auf einer anderen Maschine (mit einem anderen Pfad zur SYSTEM.DVB) installiere, erhalte ich bei der Ausführung verschiedene Resultate.
Dies ist abhängig davon, ob ich den Original-Verweis in meinem Projekt lösche oder drin lasse und ob ich das Projekt Sperre oder offen lasse.
1) - Project gesperrt
- referenz zu SYSTEM.DVB gesetzt
---> nach Triggerung von Commando
- startup error message "File-Path not found" (PROBLEM!)
- danach alles super (OK!)
- beim Beenden von ACAD keine Nachricht (OK!)
2) - Project gesperrt
- referenz zu SYSTEM.DVB gelöscht
---> nach Triggerung von Commando
- Fenster zur Eingabe des Passwords erscheint (PROBLEM!)
- danach alles super (OK!)
- beim Beenden von ACAD erscheint Nachricht, ob Projekt gespeichert werden soll (PROBLEM!)
3) - Project frei
- referenz zu SYSTEM.DVB gesetzt
---> nach Triggerung von Commando
- keine Nachricht (OK!)
- danach alles super (OK!)
- beim Beenden von ACAD keine Nachricht (OK!)
- SO SOLL ES SEIN, ABER DAS PROJEKT MUSS LOCKED SEIN!!!
4) - Project frei
- referenz zu SYSTEM.DVB gelöscht
---> nach Triggerung von Commando
- keine Nachricht (OK!)
- danach alles super (OK!)
- beim Beenden von ACAD erscheint Nachricht, ob Projekt gespeichert werden soll (PROBLEM!)
Um das Speichern beim Shutdown von ACAD abzufangen, habe ich mir folgendes Überlegt:
Private Sub AcadDocument_BeginClose()
Dim objProject As VBProject
Dim objProjects As VBProjects
Dim ASpath As String
On Error Resume Next
Set objProjects = Application.VBE.VBProjects
For laenge = 1 To objProjects.count
Set objProject = objProjects.Item(laenge)
ASpath = objProject.FileName
If objProject.Saved = False Then
objProject.SaveAs ASpath
End If
Next laenge
end sub
Aber wie bereits angesprochen, das "objProject.SaveAs ASpath" triggert eine Fehlermeldung.
Ich habe wirklich keine Idee mehr, was man da noch tun könnte.
Hat jemand von euch eine Idee oder Erfahrung damit???
Besten Dank aus Köln,
Jens
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP