1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| Option Compare Database
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long
Private Declare Function GetVersion Lib "kernel32" () As Long
Option Explicit
Public Function copy()
Dim FSO As Scripting.FileSystemObject
Set FSO = New Scripting.FileSystemObject
Dim f As Scripting.File
Dim Newf As Scripting.File
Dim strDbNouvVersion As String
Dim accNewApp As Access.Application
Dim Path_intervention As String
Dim Path_new_version As String
Dim stTmp As String, lgTmp As Long
Dim setOldBdd As String
Dim Current As String ' récupération de la valeur de la version actuelle
Dim Network As String 'récupération de la valeur de la nouvelle version
Dim UserName As String
Dim Version As Long
Version = GetVersion() And &HFFFF&
windowsversiontmp = (Version Mod 256) & "." & (Version \ 256)
WindowVersion = Left(windowsversiontmp, 1)
stTmp = Space$(250)
lgTmp = 251
Call GetUserName(stTmp, lgTmp)
UserName = Left$(stTmp, lgTmp - 1)
'ouverture du recordset de la table Tb_version
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Tb_version_unit", dbOpenDynaset)
' récupération de la valeur du champ vNetwork
Network = rs!vNetwork.Value
rs.MoveFirst
Set FSO = CreateObject("Scripting.FileSystemObject")
'ci-dessous récupération du chemin + nom de la version Network
Path_new_version = "\\meffile001\amt\amt\mxxxxxn.f\UNIT_AMT_MEF-V"
Path_intervention = Path_new_version & Network & ".mde"
Set f = FSO.GetFile(Path_intervention)
'Copie du logiciel nouvelle version à l'endroit où se trouve l'actuel executable suivant la version de l'OS utilisé
If windowsVersion = 5 Then
strDbNouvVersion = "C:\Documents and Settings\" & UserName & "\desktop\UNIT_AMT_MEF-V" & Network & ".mde"
f.copy (strDbNouvVersion)
Else
strDbNouvVersion = "C:\users\" & UserName & "\desktop\UNIT_AMT_MEF-V" & Network & ".mde"
f.copy (strDbNouvVersion)
End If
' Création d'une nouvelle instance d'Access
Set accNewApp = New Access.Application
accNewApp.Visible = True
accNewApp.UserControl = True
' Ouverture Base Nouvelle Version
accNewApp.OpenCurrentDatabase strDbNouvVersion
DoCmd.Maximize
' Ouverture du formulaire qui va supprimer la version en cours
accNewApp.DoCmd.OpenForm "F-fmMajBDD", , , , , acHidden
' On donne au formulaire le chemin complet de la base à détruire
accNewApp.Forms("F-fmMajBDD").setOldBdd CurrentProject.FullName
' On quitte la base en cours
Application.Quit acQuitSaveNone
' Après cette ligne, plus aucune ligne de code n'est exécutée)
DoCmd.OpenForm "FM-SRT", acNormal 'affichage du 1er formulaire de mon application
DoCmd.Maximize
End Function |
Partager