Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/08/2007, 17h00   #1
Débutant
 
Inscription : avril 2007
Messages : 636
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2007
Messages : 636
Points : 143
Points : 143
Par défaut [Reseau] Mise à jour de la base Dorsale

j'utilise le principe de la table tblAdmin avec oui /non et sa marche super bien pour protégé ta base qui contien les donnée quand on fait des modification par contre :

Je souhaite metre sur le reseau un dossier qui contien la base que les utilisateur on sur leur ordi qui contien requette et formulaire et etat. j'aimerai que quand l'utilisateur ouvre sa base elle verifie ci elle poséde la derniere mise a jour de ta la base et ci c'est pas le cas copier la base frontale sur leur pc et s'ouvre a nouveau comment faire??
popofpopof est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 18h41   #2
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 233
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 233
Points : 9 934
Points : 9 934
Envoyer un message via Skype™ à Domi2
Bonjour,

Une solution relativement simple à mettre en oeuvre.

Dans la base dorsale, dans la même table que celle contenant le commutateur de maintenance, on ajoute un champ VersionNo (type texte, quelques caractères).

Du côté de la base dorsale, on ajoute une propriété personnalisée NoVersion.

Lors du processus de lancement de l'application (là où tu vérifies que la dorsale ne soit pas en mode maintenance), tu ajoutes une procédure qui lit le no version dans les propriétés de la frontale, lit le no de version dans la table de la dorsale, et fait une comparaison des 2.

Si pas d'équivalence, on affiche un message d'échec et on ferme l'application.

Pour la mise à jour, on peut utiliser un .bat, ou plus simple peut-être, une petite application Access chargée de faire la copie de la nouvelle version de la frontale (du répertoire contant les données vers le disque C: de l'utilisateur, et qui se referme automatiquement une fois son travail accompli).

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 18h59   #3
Débutant
 
Inscription : avril 2007
Messages : 636
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2007
Messages : 636
Points : 143
Points : 143
j'ai ajoute sur ma base donnée dans la table tblAdmin on l'on trouve maintenant deux chanp donc VerrouAdmin et VersionNo.

pour la base avec les formulaires je doit donc crée une nouvelle table car la table tblAdmin est une table lier. donc je crée une table a version avec un champ NoVersion.

C sa???

je ne connai pas trop le vba je doit maitre quoi et ou pour réalise le test?? donc ce code mais ou? et quoi?? je ne sais pas tu peux me dire stp

Code :
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
Private Sub Form_Timer()
 
On Error GoTo Err_Form_timer
 
'Déclaration variable
Dim strChemin As String
 
    'arrêt d timer
    Me.TimerInterval = 0
 
 
    If DLookup("VerrouAdmin", "tblAdmin") = False Then
 
        DoCmd.Close
        DoCmd.OpenForm "frmdummy", acNormal, , , , acHidden
        Exit Sub
 
    Else
 
        MsgBox "La base de Données est actuellement en mode Maintenance.", vbInformation, "Maintenance de la base"
        DoCmd.Quit
 
    End If
 
Err_Form_timer:
 
    Select Case Err.Number
 
        Case 3024, 3044  'Erreur lévée si Access ne trouve pas la base Principale ou le chemin n'est pas valide
 
            If MsgBox("La connexion à la base principale à échouée, " & vbCrLf & _
            "voulez-vous redéfinir les liaisons ?", vbYesNo + vbExclamation, "") = vbYes Then
 
annul:
                'Ouverture de la fenêtre Windows et stockage du chemin dans la variable
                strChemin = OuvrirUnFichier(Me.hwnd, "Parcourir", 1, "Fichiers Access", "mdb")
 
                'Test si présence de caractères dans la variable au cas où l'utilisateur annule
                If Len(strChemin) <> 0 Then
 
                    'Appel Fonction de Liaison table avce le chemin en paramètre et test retour de la fonction
                    If LierTables(strChemin) = True Then
 
                        DoCmd.Close
                        'Code si la fonction c'est réalisée sans encombre
                        DoCmd.OpenForm "frmdummy", acNormal, , , , acHidden
 
                    Else
 
                        'Message si la fonction n'a pas renvoyer le True
                        MsgBox "Mise à jour des Tables non éffectuées, " & vbCrLf & _
                        "veuillez contacter l'administrateur de la base.", vbCritical, "Liaisons des tables"
                        'Fermeture de l'application
                        DoCmd.Quit
 
                    End If
 
                Else
 
                    'Message si l'utilisateur à annuler la sélection du chemin
                    If MsgBox("Annulation par utilisateur." & vbCrLf & _
                    "Voulez-vous fermer l'application ?", vbYesNo + vbInformation, "Liaisons des tables") = vbYes Then
                        'Fermeture de l'application
                        DoCmd.Quit
 
                    Else
                        'retour début proécédure d'appel des fonctions
                        GoTo annul
 
                    End If
 
 
                End If
 
            Else
                'Fermeture de l'application
                DoCmd.Quit
 
            End If
 
        Case 3043   'Erreur levée si Access n'arrive ps à se connecter au réseau
 
            MsgBox "Il est impossible de se connecter au réseau," & vbCrLf & _
            "veuillez contacter votre administrateur réseau.", vbCritical, "Erreur réseau"
 
        Case 3049, 3428  'Base Principale corrompue
 
            MsgBox "La base principale est endommagée," & vbCrLf & _
            "veuillez contacter l'administreteur de cette base.", vbCritical, "Base Principale endommagée"
 
        Case Else
 
            MsgBox "Erreur N°" & Err.Number & vbCrLf & Err.Description
 
    End Select
End Sub

Pour la mise a jour j'ai passe ma jour et j'ai trouve sa que j'ai adpaté a ma configuration : c un fichier VBS "mise a jour.VBS"
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
'instance
Set fso = CreateObject("Scripting.FileSystemObject")
Set net = CreateObject("Wscript.Network")
Set WshShell = WScript.CreateObject("WScript.Shell")
 
'Test si fichier éxistant sur serveur.
If fso.FileExists ("C:\aserveur\saisie base APPSA.mdb") 			Then
 
    'Copie du Fichier du serveur vers le pc utilisateurs
		fso.CopyFile "C:\aserveur\saisie base APPSA.mdb","C:\access pc\"
		fso.CopyFile "C:\aserveur\publipostage.mdb","C:\access pc\"
		fso.CopyFile "C:\aserveur\Sécurité.mdw","C:\access pc\"
		fso.CopyFile "C:\aserveur\evenement_ribbon.XML","C:\access pc\"
		fso.CopyFile "C:\aserveur\modification base.txt","C:\access pc\"
 
Else
 
    'Avertissement si fichier non éxistant
    msgbox "Problème rencontré lors de la connexion au serveur.", vbExclamation, "Mise à Jour"
 
End If
trouve sur http://www.developpez.net/forums/sho...mise+jour+base

par contre je n'arrive pas a reouvrir ma base car j'utilise la protection de access 2003 droit utilisateur et donc sur le raccourci on trouve sa :"C:\Program Files\Microsoft Office\Office12\MSACCESS.EXE" "C:\access pc\saisie base APPSA.mdb" /WRKGRP "C:\access pc\Sécurité.mdw"
Mais je ne sais comment le faire démaré car j'ai essai ( a la fin du code précédent) je pointe vers le raccourci :

Code :
1
2
    'Ouvre le fichier copié		
		intReturn = WshShell.Run("C:\access pc\base.LNk" , 1, TRUE)
Donc si je te suis il ne reste plus que a faire la vérif avec la version quitte access, lance le programme "mise a jour.VBS" qui a sont tour copier et apres ouvre la base tu peux m'aide stp??
popofpopof est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2007, 12h38   #4
Débutant
 
Inscription : avril 2007
Messages : 636
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2007
Messages : 636
Points : 143
Points : 143
j'ai trouve

Code :
WshShell.Run """C:\Program Files\Microsoft Office\Office12\MSACCESS.EXE"" ""C:\access pc\saisie base APPSA.mdb"" /WRKGRP ""C:\access pc\Sécurité.mdw"""
popofpopof est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2007, 15h01   #5
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Pour la mise à jour de la dorsale, tu as également une application que j'utilise pour mes clients et que je trouve géniale !
De plus elle est gracieusement mise à disposition par Robert Simard (Québec), ici.
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2007, 21h35   #6
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 233
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 233
Points : 9 934
Points : 9 934
Envoyer un message via Skype™ à Domi2
Bonsoir,

Citation:
pour la base avec les formulaires je doit donc crée une nouvelle table car la table tblAdmin est une table lier. donc je crée une table a version avec un champ NoVersion.

C sa???
Oui, tu peux créer une table dans la frontale qui contient le no de version (perso, ce n'est pas la solution que je met en oeuvre, mais chacun est libre de sa solution, et celle-ci est tout à fait valable à mon sens).

Donc, si tu as un champ dans une table de la frontale avec le no de version et un champ dans la dorsale avec la même information, tu dois écrire un code qui lit les deux et fait la comparaison.

Le code, tu l'as déjà... ou presque... Vérifier si la base est en maintenance ou son nunméro de version, c'est la même chose. Regarde l'aide sur la fonction DLookup, fais également des recherches sur ce mot-clé dans le forum.

Ensuite, pour la mise à jour de ta base, regarde la lien proposé par bernardmichel.

Je l'ai dans un tiroir (pas mis en oeuvre). Mais les solutions proposées par Robert Simard sont de grande qualité. A étudier donc...

Nota : je pense qu'il n'y a pas qu'une solution pour arriver à tes fins... Chacun construit ses propres procédures pour arriver à comparer des versions Frontales / Dorsale et effectuer des mises à jour.

Ceci en fonction de la façon dont est traitée l'ensemble de la problématique de lancement de l'application, de connection aux tables liées, etc...

Donc, tu n'auras pas de code "tout cuit" qui réponde exactement à ton besoin à toi. Tu as beaucoup de pistes et de lecture en perspective... Mais cela vaut la peine !

Une fois ton code écrit, si tu as des problèmes, il sera temps de poser une question précise (ex : je n'arrive pas à lire le numéro de version dans mes tables, avec le code à l'appui).

Bon développement.

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2007, 21h45   #7
Débutant
 
Inscription : avril 2007
Messages : 636
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2007
Messages : 636
Points : 143
Points : 143
Pour ma par j'utilise un fichier VBS

Code :
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
'####################################################################
'#  Permet l'installation d'une bdd d'un réseau vers user connectés #
'####################################################################
 
'instance
Set fso = CreateObject("Scripting.FileSystemObject")
Set net = CreateObject("Wscript.Network")
Set WshShell = WScript.CreateObject("WScript.Shell")
 
'Test si fichier éxistant sur serveur.
If fso.FileExists ("C:\aserveur\saisie base APPSA.mdb") 			Then
 
    'Copie du Fichier du serveur vers le pc utilisateurs
		fso.CopyFile "C:\aserveur\saisie base APPSA.mdb","C:\access pc\"
		fso.CopyFile "C:\aserveur\publipostage.mdb","C:\access pc\"
		fso.CopyFile "C:\aserveur\Sécurité.mdw","C:\access pc\"
		fso.CopyFile "C:\aserveur\evenement_ribbon.XML","C:\access pc\"
		fso.CopyFile "C:\aserveur\modification base.txt","C:\access pc\"
	msgbox "mise à jour terminée"
 
 
WshShell.Run """C:\Program Files\Microsoft Office\Office12\MSACCESS.EXE"" ""C:\access pc\saisie base APPSA.mdb"" /WRKGRP ""C:\access pc\Sécurité.mdw"""
 
 
 
Else
 
    'Avertissement si fichier non éxistant
    msgbox "Problème rencontré lors de la connexion au serveur.", vbExclamation, "Mise à Jour"
 
End If
et dans ma base je fait un petit test

Code :
1
2
3
4
5
6
7
8
If VersionNo - NoVersion <> 0 Then
    MsgBox "Une mise à jour de la base est disponible merci de cliquer sur ok la base va se mettre à jour"
 
    Shell "explorer.exe " & "C:\access pc\mise_a_jour_auto.vbs" & """"
    Application.Quit
Else
 
End If
voila merci a tout de votre aide
popofpopof est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2007, 22h00   #8
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 233
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 233
Points : 9 934
Points : 9 934
Envoyer un message via Skype™ à Domi2
Re,

Et ce code fonctionne ?

Code :
1
2
3
4
5
6
7
8
If VersionNo - NoVersion <> 0 Then
    MsgBox "Une mise à jour de la base est disponible merci de cliquer sur ok la base va se mettre à jour"
 
    Shell "explorer.exe " & "C:\access pc\mise_a_jour_auto.vbs" & """"
    Application.Quit
Else
 
End If
Ca m'étonnerait fort !

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2007, 22h30   #9
Débutant
 
Inscription : avril 2007
Messages : 636
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2007
Messages : 636
Points : 143
Points : 143
oui sa marche les deux champ sont des valeur numeriques
donc ci on est a la version 3 on mais trois sur la base de donne et sur la base des formulaires et automatiquement ce qui etait en version 2 telecharger car 3-2=1 et pas a 0 donc sa marche
tu propose quoi toi???
popofpopof est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2007, 07h38   #10
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 233
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 233
Points : 9 934
Points : 9 934
Envoyer un message via Skype™ à Domi2
Bonjour,

Citation:
oui sa marche les deux champ sont des valeur numeriques
Il était le moment que j'aille me coucher, j'en étais resté à mes variables textes

Donc si j'ai bien bien compris, tu as réglé le problème de comparaison des versions ?

Quel problème rencontres-tu encore ?

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2007, 14h34   #11
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
As-tu résolu ce post ??
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2007, 22h39   #12
Membre actif
 
Homme
Enseignant
Inscription : août 2006
Messages : 463
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : août 2006
Messages : 463
Points : 150
Points : 150
bonjour,

j'ai adapté cette solution à ma base mais quand la mise à jour se fait j'ai deux message qui apparaissent

1)Voulez vous ouvrir ou enregistrer ce fichier ? (fenêtre de téléchargement - avertissement de sécurité)

2) L'éditeur n'a pas pu être vérifié. Voulez-vous vraiment exécuter ce logiciel?


Y a t'il moyen de faire disparaitre ces 2 fenêtres????

Ca serait quand meme plus class....

Merci de votre aide
mnssylvain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2007, 22h44   #13
Débutant
 
Inscription : avril 2007
Messages : 636
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2007
Messages : 636
Points : 143
Points : 143
je suis desole mai je ne connai pas de solution pour ma par je n'ai pas ce probleme la.

desole de ne pas pouvoir t'aide
popofpopof est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h08.


 
 
 
 
Partenaires

Hébergement Web