Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

application multi utilisateur

5 réponses
Avatar
Irénée
Bonjour
J'ai de la difficult=E9 =E0 d=E9cider de la meilleure fa=E7on=20
d'organiser une application multi utilisateurs et=20
j'aimerais avoir votre avis, conna=EEtre les avantages et=20
inconv=E9nients d'un choix.

1er choix :
=B7 La base de donn=E9es (Access) est sur le serveur
=B7 J'installe une copie de l'application sur chaque=20
poste d'utilisateur

inconv=E9nient : en cas de mise =E0 jour, il faut parcourir=20
chaque poste utilisateur
2e choix :
=B7 La base de donn=E9es (Access) est sur le serveur
=B7 Une seule copie de l'application est sur le serveur
=B7 Je cr=E9e sur chaque poste utilisateur un raccourci=20
vers l'application (plusieurs applications fonctionnent=20
suivant ce principe : SAARI PAYE par exemple)

inconv=E9nient : Avec VB, les raccourcis ne peuvent pas =EAtre=20
ex=E9cut=E9s (certains composants ne sont pas trouv=E9s)
3e choix :
=B7 La base de donn=E9es (Access) est sur le serveur
=B7 Une seule copie de l'application est sur le serveur
=B7 J'installe une copie de l'application sur chaque=20
poste d'utilisateur (pour l'inscription de tous les=20
composants)
=B7 Je cr=E9e sur chaque poste utilisateur un raccourci=20
qui pointe plut=F4t vers l'application sur le serveur

Avantage : une seule mise =E0 jour =E0 faire sur le serveur en=20
cas de nouvelle version inconv=E9nient : ???=20

Merci pour votre contribution.

5 réponses

Avatar
Bismark Prods
si tu as les nerfs il y a une 4eme solution. Il s'agit de mettre sur chaque
poste une version locale et si il y a des modifications, il faut faire des
patchs de mise à jour que chaque poste telechargera (meme automatiquement)
et mettra à jour les fichiers ... C'est encore la meilleure facon quand il y
a bcp de poste et peu de bande passante

"Irénée" a écrit dans le message de
news:031801c38d77$ce9dab50$
Bonjour
J'ai de la difficulté à décider de la meilleure façon
d'organiser une application multi utilisateurs et
j'aimerais avoir votre avis, connaître les avantages et
inconvénients d'un choix.

1er choix :
· La base de données (Access) est sur le serveur
· J'installe une copie de l'application sur chaque
poste d'utilisateur

inconvénient : en cas de mise à jour, il faut parcourir
chaque poste utilisateur
2e choix :
· La base de données (Access) est sur le serveur
· Une seule copie de l'application est sur le serveur
· Je crée sur chaque poste utilisateur un raccourci
vers l'application (plusieurs applications fonctionnent
suivant ce principe : SAARI PAYE par exemple)

inconvénient : Avec VB, les raccourcis ne peuvent pas être
exécutés (certains composants ne sont pas trouvés)
3e choix :
· La base de données (Access) est sur le serveur
· Une seule copie de l'application est sur le serveur
· J'installe une copie de l'application sur chaque
poste d'utilisateur (pour l'inscription de tous les
composants)
· Je crée sur chaque poste utilisateur un raccourci
qui pointe plutôt vers l'application sur le serveur

Avantage : une seule mise à jour à faire sur le serveur en
cas de nouvelle version inconvénient : ???

Merci pour votre contribution.
Avatar
Clive Lumb
Perso, j'opterais pour le premiere solution.
Je joins un bout de code qui permet de mettre à jour automatique l'appli à
partir d'une version de référence sur le serveur. Ceci évite la visite des
postes.

Je vous laisse le soin de trouver les déclarations API qui manquent

SourcePath = "ServeurPath_de_l_Appli_de_ref"
AppPath = App.Path & ""
AppName = App.EXEName & ".exe"
CurrentVersion = AppPath & AppName
LatestVersion = SourcePath & AppName
CurrentVersion = GetVersion(CurrentVersion)
LatestVersion = GetVersion(LatestVersion)
If (AppPath <> SourcePath) And (LatestVersion <> "Not a 32-bit
executable!") Then
If LatestVersion = CurrentVersion Then
Open "c:updRETD.bat" For Output As #1
Print #1,
Close #1
Kill "c:updRETD.bat"
Else
Msg = "Vous n'avez pas la dernière version du logiciel" _
& vbCrLf & "Le logiciel va se mettre à jour et redémarrer" _
& vbCrLf & vbCrLf & "Merci d'appuyer sur une touche dans la
fenêtre DOS" _
& vbCrLf & "qui va apparaître..."
MsgBox Msg, , "Gestion Etudes R et D"
Open "c:updRETD.bat" For Output As #1
Msg = "@echo off" & vbCrLf & "Pause"
Msg = Msg & vbCrLf & "Copy " & Quote & SourcePath & AppName
& Quote & " " & Quote & AppPath & AppName & Quote
Msg = Msg & vbCrLf & "Call " & Quote & AppPath & AppName &
Quote
Print #1, Msg
Msg = "Echo MAJ Terminé !"
Print #1, Msg
Msg = "exit"
Print #1, Msg
Close #1
Msg = "c:updRETD.bat"
Shell Msg, vbNormalFocus
End
End If
End If

Public Function GetVersion(FileName As String) As String
Dim vffi As VS_FIXEDFILEINFO ' version info structure
Dim buffer() As Byte ' buffer for version info resource
Dim pData As Long ' pointer to version info data
Dim nDataLen As Long ' length of info pointed at by pData
Dim cpl(0 To 3) As Byte ' buffer for code page & language
Dim cplstr As String ' 8-digit hex string of cpl
Dim dispstr As String ' string used to display version
information
Dim retval As Long ' generic return value

' First, get the size of the version info resource. If this function
fails, then Text1
' identifies a file that isn't a 32-bit executable/DLL/etc.
nDataLen = GetFileVersionInfoSize(FileName, pData)
If nDataLen = 0 Then
GetVersion = "Not a 32-bit executable!"
Exit Function
End If
' Make the buffer large enough to hold the version info resource.
ReDim buffer(0 To nDataLen - 1) As Byte
' Get the version information resource.
retval = GetFileVersionInfo(FileName, 0, nDataLen, buffer(0))

' Get a pointer to a structure that holds a bunch of data.
retval = VerQueryValue(buffer(0), "", pData, nDataLen)
' Copy that structure into the one we can access.
CopyMemory vffi, ByVal pData, nDataLen
' Display the full version number of the file.
dispstr = Trim(Str(HIWORD(vffi.dwFileVersionMS))) & "." & _
Trim(Str(LOWORD(vffi.dwFileVersionMS))) & "." & _
Trim(Str(LOWORD(vffi.dwFileVersionLS)))
'Trim(Str(HIWORD(vffi.dwFileVersionLS))) & "." &
GetVersion = dispstr

End Function




"Irénée" a écrit dans le message de
news:031801c38d77$ce9dab50$
Bonjour
J'ai de la difficulté à décider de la meilleure façon
d'organiser une application multi utilisateurs et
j'aimerais avoir votre avis, connaître les avantages et
inconvénients d'un choix.

1er choix :
· La base de données (Access) est sur le serveur
· J'installe une copie de l'application sur chaque
poste d'utilisateur

inconvénient : en cas de mise à jour, il faut parcourir
chaque poste utilisateur
2e choix :
· La base de données (Access) est sur le serveur
· Une seule copie de l'application est sur le serveur
· Je crée sur chaque poste utilisateur un raccourci
vers l'application (plusieurs applications fonctionnent
suivant ce principe : SAARI PAYE par exemple)

inconvénient : Avec VB, les raccourcis ne peuvent pas être
exécutés (certains composants ne sont pas trouvés)
3e choix :
· La base de données (Access) est sur le serveur
· Une seule copie de l'application est sur le serveur
· J'installe une copie de l'application sur chaque
poste d'utilisateur (pour l'inscription de tous les
composants)
· Je crée sur chaque poste utilisateur un raccourci
qui pointe plutôt vers l'application sur le serveur

Avantage : une seule mise à jour à faire sur le serveur en
cas de nouvelle version inconvénient : ???

Merci pour votre contribution.
Avatar
Bismark Prods
c'est pas mal ! dommage de passer par un batch

"Clive Lumb" a écrit dans le message de
news:
Perso, j'opterais pour le premiere solution.
Je joins un bout de code qui permet de mettre à jour automatique l'appli


à
partir d'une version de référence sur le serveur. Ceci évite la visite des
postes.

Je vous laisse le soin de trouver les déclarations API qui manquent

SourcePath = "ServeurPath_de_l_Appli_de_ref"
AppPath = App.Path & ""
AppName = App.EXEName & ".exe"
CurrentVersion = AppPath & AppName
LatestVersion = SourcePath & AppName
CurrentVersion = GetVersion(CurrentVersion)
LatestVersion = GetVersion(LatestVersion)
If (AppPath <> SourcePath) And (LatestVersion <> "Not a 32-bit
executable!") Then
If LatestVersion = CurrentVersion Then
Open "c:updRETD.bat" For Output As #1
Print #1,
Close #1
Kill "c:updRETD.bat"
Else
Msg = "Vous n'avez pas la dernière version du logiciel" _
& vbCrLf & "Le logiciel va se mettre à jour et redémarrer"


_
& vbCrLf & vbCrLf & "Merci d'appuyer sur une touche dans


la
fenêtre DOS" _
& vbCrLf & "qui va apparaître..."
MsgBox Msg, , "Gestion Etudes R et D"
Open "c:updRETD.bat" For Output As #1
Msg = "@echo off" & vbCrLf & "Pause"
Msg = Msg & vbCrLf & "Copy " & Quote & SourcePath &


AppName
& Quote & " " & Quote & AppPath & AppName & Quote
Msg = Msg & vbCrLf & "Call " & Quote & AppPath & AppName &
Quote
Print #1, Msg
Msg = "Echo MAJ Terminé !"
Print #1, Msg
Msg = "exit"
Print #1, Msg
Close #1
Msg = "c:updRETD.bat"
Shell Msg, vbNormalFocus
End
End If
End If

Public Function GetVersion(FileName As String) As String
Dim vffi As VS_FIXEDFILEINFO ' version info structure
Dim buffer() As Byte ' buffer for version info resource
Dim pData As Long ' pointer to version info data
Dim nDataLen As Long ' length of info pointed at by pData
Dim cpl(0 To 3) As Byte ' buffer for code page & language
Dim cplstr As String ' 8-digit hex string of cpl
Dim dispstr As String ' string used to display version
information
Dim retval As Long ' generic return value

' First, get the size of the version info resource. If this function
fails, then Text1
' identifies a file that isn't a 32-bit executable/DLL/etc.
nDataLen = GetFileVersionInfoSize(FileName, pData)
If nDataLen = 0 Then
GetVersion = "Not a 32-bit executable!"
Exit Function
End If
' Make the buffer large enough to hold the version info resource.
ReDim buffer(0 To nDataLen - 1) As Byte
' Get the version information resource.
retval = GetFileVersionInfo(FileName, 0, nDataLen, buffer(0))

' Get a pointer to a structure that holds a bunch of data.
retval = VerQueryValue(buffer(0), "", pData, nDataLen)
' Copy that structure into the one we can access.
CopyMemory vffi, ByVal pData, nDataLen
' Display the full version number of the file.
dispstr = Trim(Str(HIWORD(vffi.dwFileVersionMS))) & "." & _
Trim(Str(LOWORD(vffi.dwFileVersionMS))) & "." & _
Trim(Str(LOWORD(vffi.dwFileVersionLS)))
'Trim(Str(HIWORD(vffi.dwFileVersionLS))) & "." &
GetVersion = dispstr

End Function




"Irénée" a écrit dans le message de
news:031801c38d77$ce9dab50$
Bonjour
J'ai de la difficulté à décider de la meilleure façon
d'organiser une application multi utilisateurs et
j'aimerais avoir votre avis, connaître les avantages et
inconvénients d'un choix.

1er choix :
· La base de données (Access) est sur le serveur
· J'installe une copie de l'application sur chaque
poste d'utilisateur

inconvénient : en cas de mise à jour, il faut parcourir
chaque poste utilisateur
2e choix :
· La base de données (Access) est sur le serveur
· Une seule copie de l'application est sur le serveur
· Je crée sur chaque poste utilisateur un raccourci
vers l'application (plusieurs applications fonctionnent
suivant ce principe : SAARI PAYE par exemple)

inconvénient : Avec VB, les raccourcis ne peuvent pas être
exécutés (certains composants ne sont pas trouvés)
3e choix :
· La base de données (Access) est sur le serveur
· Une seule copie de l'application est sur le serveur
· J'installe une copie de l'application sur chaque
poste d'utilisateur (pour l'inscription de tous les
composants)
· Je crée sur chaque poste utilisateur un raccourci
qui pointe plutôt vers l'application sur le serveur

Avantage : une seule mise à jour à faire sur le serveur en
cas de nouvelle version inconvénient : ???

Merci pour votre contribution.




Avatar
Clive Lumb
"Bismark Prods" a écrit dans le message de
news:
c'est pas mal ! dommage de passer par un batch



Je ne connais pas d'autre moyen de remplacer un exe qui tourne (sauf de
faire un exe "lanceur" qui fait la vérif puis lance le vrai exe)
Avatar
Bismark Prods
d'ou l'avantage des patchs !
lol

"Clive Lumb" a écrit dans le message de
news:%

"Bismark Prods" a écrit dans le message de
news:
> c'est pas mal ! dommage de passer par un batch
>
Je ne connais pas d'autre moyen de remplacer un exe qui tourne (sauf de
faire un exe "lanceur" qui fait la vérif puis lance le vrai exe)