Einzelnen Beitrag anzeigen
Alt 26.09.2008, 13:20   #15
CptChaos
MOF Guru
MOF Guru
Standard

natürlich funktioniert VBA in MDE-Dateien; wäre schlimm wenn es nicht so wäre

WSF-Script:
PHP-Code:

<job id="Anwendung">

<
comment>
' =======================================================================================
(C
' Author: Wunder, Benny
=======================================================================================
' Skriptname:        Anwendung
Verwendungszweck:    startet das FrontEnd der Anwendung
' =======================================================================================
03.01.2005 Initial Release                                            WunderBenny
' 04.01.2005 Start der DB implementiert                                 - Wunder, Benny
22.09.2005 Umstellung auf neuen Server
' 13.07.2007 Umstellung des lokalen Pfades
'   
Änderung von C:AppsAnwendung auf
'     %AppData%\Anwendung                                                  - Wunder, Benny 
=======================================================================================
</
comment>

<
runtime>

<
description>
------------- 
Anwendungstitel -------------

Das Tool startet das FrontEnd der 
Anwendung
.

</
description>

</
runtime>

<
script id="script" language="VBScript">

sStartRoutinghilfe ' Start des Skripts

Sub sStartRoutinghilfe()
Dim strNetFEPath, strFEPath, strProgPath, strProgName, strVersion, strVerFile, strIcoFile


Set WshShell = WScript.CreateObject("WScript.Shell")
Set WSHEnv = WSHShell.Environment("Process")

'
Variablen füllen
  strProgPath 
"\\Server\Freigabe\Anwendungsordner\"
  strNetFEPath = strProgPath & "
FrontEnd"
  strFEPath = WSHEnv("
APPDATA") & "Anwendungsordner"
  strProgName = "
Anwendung.mde"
  strVersion = "
2.3"
  strVerFile = "
version.log"
  strIcoFile = "
Anwendung.ico"

'Hauptroutine
  If fCheckFolder(strFEPath) = True Then
    If fCheckVersion (strVersion, strVerFile, strFEPath) = True Then
      fStartFE(strFEPath), (strProgName)
    Else
      fCopyDB(strNetFEPath), (strProgName), (strFEPath), (strVerFile), (strIcoFile)
      fStartFE(strFEPath), (strProgName)
    End If
  End If
  
'Aufräumen
Set WSHShell = Nothing
Set WSHEnv = Nothing

End Sub

'----------------------------------------------------------------------------------------

Function fCheckFolder(strFEPath)
'prüfen ob Ordner vorhanden ist
  Set objFSO = CreateObject("
Scripting.FileSystemObject")
  If objFSO.FolderExists(strFEPath) Then
    fCheckFolder = True
  Else
    objFSO.CreateFolder(strFEPath)
    fCheckFolder = True
  End If

End Function

Function fCheckVersion(strVersion, strVerFile, strFEPath)
'einlesen der Version von der lokalen Log-Datei
  Set objFSO = CreateObject("
Scripting.FileSystemObject")
  If objFSO.FileExists(strFEPath & strVerFile) Then
  Set objFile = objFSO.OpenTextFile(strFEPath & strVerFile, 1)
    Do Until objFile.AtEndOfStream
        strLocVersion = Left(objFile.ReadAll, 4)
    Loop
    
    If strLocVersion = strVersion Then
      fCheckVersion = True
      Exit Function
      Else
      fCheckVersion = False
      Exit Function
    End If
  'Else
  End If
  
End Function

Function fCopyDB(strNetFEPath, strProgName, strFEPath, strVerFile, strIcoFile)
'kopiert die DB und Version.log vom Server auf den Client
Set objFSO = CreateObject("
Scripting.FileSystemObject")
    objFSO.CopyFile strNetFEPath & strProgName , strFEPath, True
    objFSO.CopyFile strNetFEPath & strVerFile, strFEPath, True
    objFSO.CopyFile strNetFEPath & strIcoFile, strFEPath, True

End Function

Function fStartFE(strFEPath, strProgName)
'Start der FE-Datei
    Dim DB
    Set DB = CreateObject("
Access.Application")
    DB.OpenCurrentDatabase strFEPath & strProgName
    DB.Visible = True    

End Function

</script>

</job> 
muss als *.wsf abgespeichert und in einer CMD per cscript ausgeführt werden

PowerShell-Script
Code:

#=================================================================================================#
#  Scriptname       : startUrlaubsplan.ps1
#  Purpose          : copies the Application 'Applicationname' into the User-AppData and start it
#                   : 
#  Author           : benny wunder
#  Last change	    : 27.05.2008
#  Actual state     : 
#                   : 
#  Change history   : Ver 0.1 (first) - 05.06.2008
#                   : Ver.0.2 (test ready) - 05.06.2008
#                   :
#                   : Ver. 1.0 (production ready) - 05.06.2008
#=================================================================================================#

$HelpText = @"
---------------------------------------------------------------------
Syntax:	< .\startAnwendung.ps1
Questions? => mailto: benny.wunder@
---------------------------------------------------------------------
"@


#=================================================================================================#
# FUNCTIONS
#=================================================================================================#

#-------------------------------------------------------------------------------------------------#
Function get-FEInformation()
#-------------------------------------------------------------------------------------------------#
{
	Write-Host -foregroundcolor Yellow "------------------------------"
	Write-Host -foregroundcolor Yellow "Loading Libraries..." `n
	. "\\Server\Script$\SharedLibraries\functionlib.ps1"	#stellt zusätzliche Funktionen zur Verfügung
	
	$strApplName = "Anwendungsname"
	$strAppDataPath = (dir env:AppData).Value
	$strLocApplPath = $strAppDataPath+"\"+$strApplName
	$strLocVersionFile = $strLocApplPath+"\version.log"
	$strGloVersionFile = "\\Server\Freigabe\Anwendungsordner\FrontEnd\version.log"
	$strFEAppl = $strLocApplPath+"\"+$strApplName+".accde"
	
	If (Test-Path $strLocApplPath)
	{
		#---Applicationfolder exist
		If (Test-Path $strFEAppl -pathtype leaf)
		{
			#---Application exist
			Write-Host "Checking Version..."
			If (compare-filecontent $strLocVersionFile $strGloVersionFile -eq -1)
			{
				Write-Host -foregroundcolor Green "Version ok"
				#Files identical
			}
			Else
			{
				Write-Host -foregroundcolor Red "Version not ok"
				Write-Host " Copying new Files into the User Application Folder..."
				#Files different
				#CopyFiles
				copy-item \\Server\Freigabe\Anwendungsordner\FrontEnd\*.* -destination $strLocApplPath
			}
		}
		Else
		{
			#---Application doesn't exist
			Write-Host -foregroundcolor Red "Application doesn't exist"
			Write-Host " Copying Files into the User Application Folder..."
			#CopyFiles
			copy-item \\Server\Freigabe\Anwendungsordner\FrontEnd\*.* -destination $strLocApplPath
		}	
	}
	Else
	{
		#---Applicationfolder doesn't exist
		#CreateFolder
		Write-Host -foregroundcolor Red "Applicatonfolder doesn't exist"
		Write-Host " Creating Folder for the Application..."
		set-Dir $strLocApplPath | Out-Null
		#CopyFiles
		Write-Host " Copying Files into the User Application Folder..."
		copy-item \\Server\Freigabe\Anwendungsordner\FrontEnd\*.* -destination $strLocApplPath

	}
	
}

#-------------------------------------------------------------------------------------------------#
Function start-Application()
#-------------------------------------------------------------------------------------------------#
{
	$strApplName = "Anwendungsname"
	$strAppDataPath = (dir env:AppData).Value
	$strLocApplPath = $strAppDataPath+"\"+$strApplName
	$strFEAppl = $strLocApplPath+"\"+$strApplName+".accde"
	
	#StartApplication
	Write-Host `n"Starting Application..."
	. $strFEAppl
	Write-Host -foregroundcolor Yellow "------------------------------"
}

#=================================================================================================#
#Main
#=================================================================================================#

get-FEInformation
start-Application
muss in der PowerShell per . aufgerufen werden.

__________________

Benny Wunder
alias CptChaos

Es gibt 10 Arten von Menschen!
Die, die den Binärcode verstehen und die, die ihn nicht verstehen.
Bitte keine ungefragten PN´s oder Mails. Fragen und Lösungen gehören hier ins Forum, dann ist auch anderen geholfen!

| .NET-Komfort bei der Stringzusammensetzung in VBA | Formularformatierung und -validierung durch eine Klasse |
| Don Karl´s FAQ | DBWiki | Relationale DBs | Datenbanken bei ardiman.de | Access-Tutorial | AccEPT auf joposol.com |
| Erste Fehleranalyse mit Debug.Print |


Und noch was: Bei erledigten Themen, diese bitte auch mit dieser tollen Funktion als erledigt kennzeichnen.
CptChaos ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten