Seite 1 von 1

Update-Script für Add-Ins

BeitragVerfasst: Mo 9. Nov 2015, 12:30
von Josef Pötzl
Um eine neue Version eines Add-Ins zu verwenden, reicht meist das Aktualisieren der mda/accda-Datei in %appdata%\Microsoft\AddIns aus.

Für den FilterFormWizard verwende ich nun eine VB-Script-Datei mit der man die Datei in dieses Verzeichnis kopieren kann.
Alternativ kann auch aus der offenen mda-Datei eine mde-Datei erzeugt werden und diese als mde im AddIns-Verzeichnis verwendet werden.
Vorteil der mde: man öffnet im VBA-Editor nicht zufällig ein Codemodul des Add-Ins.
Vorteil der lokalen mde-Erzeugung vs. mde als Download-Datei: Windows- u. Office-Umgebung ist egal. ;-)


VB-Script-Beispiel:
Code: Alles auswählen
const AddInName = "ACLib-FilterForm-Wizard"
const AddInFileName = "ACLibFilterFormWizard.mda"
const MsgBoxTitle = "Update ACLib-FilterForm-Wizard"

MsgBox "Vor dem Aktualisieren der Add-In-Datei darf das Add-In nicht geladen sein!" & chr(13) & _
       "Zur Sicherheit alle Access-Instanzen schließen.", , MsgBoxTitle & ": Hinweis"

Select Case MsgBox("Soll das Add-In als MDE verwendet werden?" + chr(13) & _
                   "(Add-In wird kompiliert ins Add-In-Verzeichnis kopiert.)", 3, MsgBoxTitle)
   case 6 ' vbYes
     CreateMde GetSourceFileFullName, GetDestFileFullName
   case 7 ' vbNo
     FileCopy GetSourceFileFullName, GetDestFileFullName
   case else
     
End Select


'##################################################
' Hilfsfunktionen:

Function GetSourceFileFullName()
   GetSourceFileFullName = GetScriptLocation & AddInFileName
End Function

Function GetDestFileFullName()
   GetDestFileFullName = GetAddInLocation & AddInFileName
End Function

Function GetScriptLocation()

   With WScript
      GetScriptLocation = Replace(.ScriptFullName & ":", .ScriptName & ":", "")
   End With

End Function

Function GetAddInLocation()

   GetAddInLocation = GetAppDataLocation & "Microsoft\AddIns\"

End Function

Function GetAppDataLocation()

   Set wsShell = CreateObject("WScript.Shell")
   GetAppDataLocation = wsShell.ExpandEnvironmentStrings("%APPDATA%") & "\"

End Function

Function FileCopy(SourceFilePath, DestFilePath)

   set fso = CreateObject("Scripting.FileSystemObject")
   fso.CopyFile SourceFilePath, DestFilePath

End Function

Function CreateMde(SourceFilePath, DestFilePath)

   Set AccessApp = CreateObject("Access.Application")
   AccessApp.SysCmd 603, (SourceFilePath), (DestFilePath)

End Function
 


mfg
Josef