{Access} liaison Dorsale/frontale
Résolu/Fermé
Co52
Messages postés
78
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
8 octobre 2016
-
29 nov. 2009 à 19:23
Co52 Messages postés 78 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 8 octobre 2016 - 1 déc. 2009 à 16:39
Co52 Messages postés 78 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 8 octobre 2016 - 1 déc. 2009 à 16:39
A voir également:
- {Access} liaison Dorsale/frontale
- Caméra frontale telephone portable ✓ - Forum Mobile
- Access appdata - Guide
- Camera frontale ne fonctionne pas - Forum Huawei
- Liaison excel introuvable ✓ - Forum Excel
- Exemple base de données access à télécharger gratuit ✓ - Forum Logiciels
25 réponses
blux
Messages postés
26503
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
2 décembre 2024
3 317
30 nov. 2009 à 11:10
30 nov. 2009 à 11:10
Salut,
tu peux effectivement mettre à jour les attaches de base avec du code VBA et la propriété connect d'une table.
Voici un bout de code qui te permet d'afficher les attaches courantes :
Teste-le et ensuite on s'attaquera à la partie modification.
tu peux effectivement mettre à jour les attaches de base avec du code VBA et la propriété connect d'une table.
Voici un bout de code qui te permet d'afficher les attaches courantes :
Set Db = CurrentDb For Each Tb In Db.TableDefs If Left(Tb.Name, 4) <> "MSys" Then If Tb.Connect <> "" Then MsgBox Tb.Name & "-" & Tb.Connect End If End If Next
Teste-le et ensuite on s'attaquera à la partie modification.
Co52
Messages postés
78
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
8 octobre 2016
3
30 nov. 2009 à 13:11
30 nov. 2009 à 13:11
Salut,
D'abord, merci pour ton aide car je suis une grande novice en VBA même si ça fait des années que j'utilise Access.
Je viens de saisir ton code en le créant sur l'événement "Sur ouverture" de mon formulaire de bienvenue.
Lorsque j'ouvre ma base après avoir activer les macros, pour chaque table (j'en ai plus de 30), j'ai une boite de message qui apparaît avec à l'intérieur l'information suivante :
Nomtable-;DATABASE=chemin base dorsale
et un bouton pour valider
le chemin étant celui utilisé lors de la liaison précédente, ce qui me paraît logique et donc si j'ai déplacé ma base, lorsque je valide mon premier formulaire et qu'alors je doit avoir accès à mes tables, à ce moment j'ai le message que j'avais auparavant.
Voila, encore merci et j'attends la suite
D'abord, merci pour ton aide car je suis une grande novice en VBA même si ça fait des années que j'utilise Access.
Je viens de saisir ton code en le créant sur l'événement "Sur ouverture" de mon formulaire de bienvenue.
Lorsque j'ouvre ma base après avoir activer les macros, pour chaque table (j'en ai plus de 30), j'ai une boite de message qui apparaît avec à l'intérieur l'information suivante :
Nomtable-;DATABASE=chemin base dorsale
et un bouton pour valider
le chemin étant celui utilisé lors de la liaison précédente, ce qui me paraît logique et donc si j'ai déplacé ma base, lorsque je valide mon premier formulaire et qu'alors je doit avoir accès à mes tables, à ce moment j'ai le message que j'avais auparavant.
Voila, encore merci et j'attends la suite
blux
Messages postés
26503
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
2 décembre 2024
3 317
30 nov. 2009 à 13:46
30 nov. 2009 à 13:46
Pour mettre à jour une liaison, il suffit de rajouter quelques lignes :
Ca suit toujours, au fond ? ;-)
Ensuite, on verra comment gérer le choix du répertoire.
Set Db = CurrentDb Unc = ";Database=chemin_répertoire_souhaité" For Each Tb In Db.TableDefs If Left(Tb.Name, 4) <> "MSys" Then If Tb.Connect <> "" Then MsgBox Tb.Name & "-" & Tb.Connect If Tb.Connect <> Unc Then Tb.Connect = Unc Tb.RefreshLink End If End If End If Next
Ca suit toujours, au fond ? ;-)
Ensuite, on verra comment gérer le choix du répertoire.
Co52
Messages postés
78
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
8 octobre 2016
3
30 nov. 2009 à 13:56
30 nov. 2009 à 13:56
oui oui, ça suit toujours,
Bon j'ai donc copié la suite du code et une fois qu'il a fini de m'afficher toutes mes boites de message, j'ai une nouvelle boite qui s'ouvre avec inscrit :
Erreur d'exécution '3024' :
Fichier "D:\-DOSSIERS PERSONNELS\chemin_répertoire_souhaité" introuvable.
Fin Débogage Aide
En sachant que le chemin complet était :
D:\- DOSSIERS PERSONNELS\- CORINNE\Associations\Le Chas et la Cigogne\ et donc que ne retrouve que la première partie du chemin. Je ne sais pas si c'est normal ou pas
Bon j'ai donc copié la suite du code et une fois qu'il a fini de m'afficher toutes mes boites de message, j'ai une nouvelle boite qui s'ouvre avec inscrit :
Erreur d'exécution '3024' :
Fichier "D:\-DOSSIERS PERSONNELS\chemin_répertoire_souhaité" introuvable.
Fin Débogage Aide
En sachant que le chemin complet était :
D:\- DOSSIERS PERSONNELS\- CORINNE\Associations\Le Chas et la Cigogne\ et donc que ne retrouve que la première partie du chemin. Je ne sais pas si c'est normal ou pas
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Co52
Messages postés
78
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
8 octobre 2016
3
30 nov. 2009 à 13:58
30 nov. 2009 à 13:58
A priori si je fait Débogage, c'est la ligne
Tb.RefreshLink qui est en jaune
Tb.RefreshLink qui est en jaune
blux
Messages postés
26503
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
2 décembre 2024
3 317
30 nov. 2009 à 14:02
30 nov. 2009 à 14:02
Je pense que as du confondre, il faut remplacer chemin_répertoire_souhaité par ce que tu veux...
Ensuite, j'ai des doutes sur les noms des sous-répertoires qui commencent par - et éventuellement dans le cas où ce sont des pseudo-répertoires (comme bureau, mes documents...)
Pourrais-tu poster le code que je regarde où est l'erreur ?
Ensuite, j'ai des doutes sur les noms des sous-répertoires qui commencent par - et éventuellement dans le cas où ce sont des pseudo-répertoires (comme bureau, mes documents...)
Pourrais-tu poster le code que je regarde où est l'erreur ?
Co52
Messages postés
78
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
8 octobre 2016
3
30 nov. 2009 à 14:07
30 nov. 2009 à 14:07
Le sous répertoire qui commence par - c'est moi qui l'avait mis dans le nom pour qu'il se trouve tout en haut lors des recherches mais on y a effectivement ensuite lié mes documents.
Par contre, au moment de l'utilisation ce ne sera pas ce répertoire qui sera utilisé puisque ce ne sera pas sur mon ordinateur mais sur d'autres ordi que je ne connais pas et donc je ne sais pas quel chemin il faudra utiliser d'ou mon soucis.
Voila le code que j'ai dans VBA
Private Sub Form_Open(Cancel As Integer)
Set Db = CurrentDb
For Each Tb In Db.TableDefs
If Left(Tb.Name, 4) <> "MSys" Then
If Tb.Connect <> "" Then
MsgBox Tb.Name & "-" & Tb.Connect
End If
End If
Next
Set Db = CurrentDb
Unc = ";Database=chemin_répertoire_souhaité"
For Each Tb In Db.TableDefs
If Left(Tb.Name, 4) <> "MSys" Then
If Tb.Connect <> "" Then
MsgBox Tb.Name & "-" & Tb.Connect
If Tb.Connect <> Unc Then
Tb.Connect = Unc
Tb.RefreshLink
End If
End If
End If
Next
End Sub
Je ne sais pas si c'est vraiment ce que tu veux, dit moi.
Par contre, au moment de l'utilisation ce ne sera pas ce répertoire qui sera utilisé puisque ce ne sera pas sur mon ordinateur mais sur d'autres ordi que je ne connais pas et donc je ne sais pas quel chemin il faudra utiliser d'ou mon soucis.
Voila le code que j'ai dans VBA
Private Sub Form_Open(Cancel As Integer)
Set Db = CurrentDb
For Each Tb In Db.TableDefs
If Left(Tb.Name, 4) <> "MSys" Then
If Tb.Connect <> "" Then
MsgBox Tb.Name & "-" & Tb.Connect
End If
End If
Next
Set Db = CurrentDb
Unc = ";Database=chemin_répertoire_souhaité"
For Each Tb In Db.TableDefs
If Left(Tb.Name, 4) <> "MSys" Then
If Tb.Connect <> "" Then
MsgBox Tb.Name & "-" & Tb.Connect
If Tb.Connect <> Unc Then
Tb.Connect = Unc
Tb.RefreshLink
End If
End If
End If
Next
End Sub
Je ne sais pas si c'est vraiment ce que tu veux, dit moi.
blux
Messages postés
26503
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
2 décembre 2024
3 317
30 nov. 2009 à 14:18
30 nov. 2009 à 14:18
J'avais dit rajouter des lignes, dans mon message <3>, et je les avais mises en gras. Or là, tu as dupliqué la procédure, ce qui n'est pas ce qu'on attendait, d'où des messages quelques peu étranges.
Il serait plus opportun de ne garder que ce qui est donné en <3> (toutes les lignes).
Et il faut modifier la ligne Unc = ";Database=chemin_répertoire_souhaité" afin de remplacer la chaine 'chemin_répertoire_souhaité' par l'endroit qui contient les tables liées (ce que tu appelles 'dorsale'), mais c'est vrai que je ne l'avais pas expressément signalé. Pour simplifier, tu peux faire le test avec C:\
Il serait plus opportun de ne garder que ce qui est donné en <3> (toutes les lignes).
Et il faut modifier la ligne Unc = ";Database=chemin_répertoire_souhaité" afin de remplacer la chaine 'chemin_répertoire_souhaité' par l'endroit qui contient les tables liées (ce que tu appelles 'dorsale'), mais c'est vrai que je ne l'avais pas expressément signalé. Pour simplifier, tu peux faire le test avec C:\
Co52
Messages postés
78
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
8 octobre 2016
3
30 nov. 2009 à 14:31
30 nov. 2009 à 14:31
Je viens de faire un test en déplaçant ma base dorsale dans le répertoire partagé personnel qui me sert à faire les tests en multi poste et qui n'utilise pas de - dans le nom et en modifiant le code par ce nouveau chemin soit :
Et j'ai donc le code suivant
Private Sub Form_Open(Cancel As Integer)
Set Db = CurrentDb
For Each Tb In Db.TableDefs
If Left(Tb.Name, 4) <> "MSys" Then
If Tb.Connect <> "" Then
MsgBox Tb.Name & "-" & Tb.Connect
End If
End If
Next
Set Db = CurrentDb
Unc = ";Database=cD:\Partage Corinne\Bourse_table.accdb"
For Each Tb In Db.TableDefs
If Left(Tb.Name, 4) <> "MSys" Then
If Tb.Connect <> "" Then
MsgBox Tb.Name & "-" & Tb.Connect
If Tb.Connect <> Unc Then
Tb.Connect = Unc
Tb.RefreshLink
End If
End If
End If
Next
End Sub
Ca fonctionne m'ai par contre je n'ai plus 31 boites de messages qui s'ouvre et qu'il faut valider mais le double
Par contre, là je dois malheureusement partir pour le restant de l'après midi. Je pourrais revenir ce soir après 18 heures ou demain. Dis moi ce qui te convient le mieux car tes lumières intéressent énormément (j'ai encore 2 autres questions après celle là)
Et j'ai donc le code suivant
Private Sub Form_Open(Cancel As Integer)
Set Db = CurrentDb
For Each Tb In Db.TableDefs
If Left(Tb.Name, 4) <> "MSys" Then
If Tb.Connect <> "" Then
MsgBox Tb.Name & "-" & Tb.Connect
End If
End If
Next
Set Db = CurrentDb
Unc = ";Database=cD:\Partage Corinne\Bourse_table.accdb"
For Each Tb In Db.TableDefs
If Left(Tb.Name, 4) <> "MSys" Then
If Tb.Connect <> "" Then
MsgBox Tb.Name & "-" & Tb.Connect
If Tb.Connect <> Unc Then
Tb.Connect = Unc
Tb.RefreshLink
End If
End If
End If
Next
End Sub
Ca fonctionne m'ai par contre je n'ai plus 31 boites de messages qui s'ouvre et qu'il faut valider mais le double
Par contre, là je dois malheureusement partir pour le restant de l'après midi. Je pourrais revenir ce soir après 18 heures ou demain. Dis moi ce qui te convient le mieux car tes lumières intéressent énormément (j'ai encore 2 autres questions après celle là)
Co52
Messages postés
78
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
8 octobre 2016
3
30 nov. 2009 à 14:38
30 nov. 2009 à 14:38
Nos messages ce sont croisées, bon j'ai donc corrigé en ne mettant que ce qui était sur ton message 3 et en changeant le chemin.
Désolé, je travaille avec deux écrans un tout beau tout neuf et un vieux prout prout et la page du forum ce trouve sur le vieux prout prout, je n'avais pas vu qu'il y avait des parties en gras.
Ca marche et je n'ai plus que mes 31 boites de messages qui s'ouvre.
Je te dis @+ car je me sauve
Merci pour ton aide et ta patience
Désolé, je travaille avec deux écrans un tout beau tout neuf et un vieux prout prout et la page du forum ce trouve sur le vieux prout prout, je n'avais pas vu qu'il y avait des parties en gras.
Ca marche et je n'ai plus que mes 31 boites de messages qui s'ouvre.
Je te dis @+ car je me sauve
Merci pour ton aide et ta patience
blux
Messages postés
26503
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
2 décembre 2024
3 317
30 nov. 2009 à 15:18
30 nov. 2009 à 15:18
Supprime la ligne msgbox qui provoque l'affichage...
Co52
Messages postés
78
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
8 octobre 2016
3
30 nov. 2009 à 17:37
30 nov. 2009 à 17:37
Bon, me revoila
J'ai supprime la ligne msgbox, j'ai déplacé ma base dorsale lancé le programme qui du coup bug, remis la base dorsale dans le dossier qui est noté dans le code et ça fonctionne.
J'attends sagement la suite
J'ai supprime la ligne msgbox, j'ai déplacé ma base dorsale lancé le programme qui du coup bug, remis la base dorsale dans le dossier qui est noté dans le code et ça fonctionne.
J'attends sagement la suite
blux
Messages postés
26503
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
2 décembre 2024
3 317
30 nov. 2009 à 18:35
30 nov. 2009 à 18:35
On peut procéder de deux manières :
- boite de dialogue qui va demander l'emplacement de la base liée
- renseignement d'un paramètre dans une table qui sera interrogée au lancement
- boite de dialogue qui va demander l'emplacement de la base liée
- renseignement d'un paramètre dans une table qui sera interrogée au lancement
Co52
Messages postés
78
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
8 octobre 2016
3
30 nov. 2009 à 18:39
30 nov. 2009 à 18:39
je préfère la boite de dialogue
merci
merci
blux
Messages postés
26503
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
2 décembre 2024
3 317
30 nov. 2009 à 19:18
30 nov. 2009 à 19:18
oui, mais si elle apparaît à l'utilisateur final (celui qui ne connait rien, mais qui appuie partout), on fait quoi ?
Co52
Messages postés
78
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
8 octobre 2016
3
30 nov. 2009 à 20:01
30 nov. 2009 à 20:01
Un question d'abord. Lorsque les ordinateurs portables sont coupés le soir et réouvert le lendemain matin (la bourse dure environ 1 semaine et chacun ramène son ordi chez lui) est-ce que la liaison avec le dossier partagée est perdue ou non ?
Si elle est conservée, à ce moment là ne peut on pas faire une boite de dialogue qui n'apparaît que si la liaison n'est plus bonne.
Si elle n'est pas conservée, peut on rajouter un bouton avec un mot de passe derrière qui ouvre une boite de dialogue.
Pour moi le problème de la table interrogée au lancement c'est que le chemin peu modifié d'une bourse à l'autre car ils ne conservent pas les info sur l'ordi où alors, il y a une astuce que je ne comprends pas avec cette méthode : comment est saisie le paramètre dans la table.
Si elle est conservée, à ce moment là ne peut on pas faire une boite de dialogue qui n'apparaît que si la liaison n'est plus bonne.
Si elle n'est pas conservée, peut on rajouter un bouton avec un mot de passe derrière qui ouvre une boite de dialogue.
Pour moi le problème de la table interrogée au lancement c'est que le chemin peu modifié d'une bourse à l'autre car ils ne conservent pas les info sur l'ordi où alors, il y a une astuce que je ne comprends pas avec cette méthode : comment est saisie le paramètre dans la table.
blux
Messages postés
26503
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
2 décembre 2024
3 317
30 nov. 2009 à 20:18
30 nov. 2009 à 20:18
Une liaison est un nom stocké quelque part dans une "table système" access.
Il n'y a donc pas à proprement parler de 'liaison perdue'. Soit l'emplacement 'cible' (dorsal) est accessible et les tables sont accédées normalement, soit l'emplacement n'est pas accessible, et on a aucun accès aux données.
Si elle est conservée, à ce moment là ne peut on pas faire une boite de dialogue qui n'apparaît que si la liaison n'est plus bonne.
Je ne connais pas de méthode pour intercepter une liaison déficiente dans access.
Pour moi le problème de la table interrogée au lancement c'est que le chemin peu modifié d'une bourse à l'autre car ils ne conservent pas les info sur l'ordi où alors, il y a une astuce que je ne comprends pas avec cette méthode : comment est saisie le paramètre dans la table.
Tu lances ta base, elle se plante car les liaisons ne sont pas bonnes, tu modifies un champ dans une table (qui n'est pas une table liée), tu fermes et tu relances ta base, ça marche.
Il n'y a donc pas à proprement parler de 'liaison perdue'. Soit l'emplacement 'cible' (dorsal) est accessible et les tables sont accédées normalement, soit l'emplacement n'est pas accessible, et on a aucun accès aux données.
Si elle est conservée, à ce moment là ne peut on pas faire une boite de dialogue qui n'apparaît que si la liaison n'est plus bonne.
Je ne connais pas de méthode pour intercepter une liaison déficiente dans access.
Pour moi le problème de la table interrogée au lancement c'est que le chemin peu modifié d'une bourse à l'autre car ils ne conservent pas les info sur l'ordi où alors, il y a une astuce que je ne comprends pas avec cette méthode : comment est saisie le paramètre dans la table.
Tu lances ta base, elle se plante car les liaisons ne sont pas bonnes, tu modifies un champ dans une table (qui n'est pas une table liée), tu fermes et tu relances ta base, ça marche.
Co52
Messages postés
78
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
8 octobre 2016
3
30 nov. 2009 à 21:29
30 nov. 2009 à 21:29
J'ai un souci avec le réseau et de cela découlera peut être la réponse. Je suis en train de faire des tests et je te réponds
Co52
Messages postés
78
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
8 octobre 2016
3
1 déc. 2009 à 00:48
1 déc. 2009 à 00:48
Bon, j'ai patiellement résolumon problème de réseau.
Je t'explique, peut-être pourras tu m'aider.
Même si le programme doit normalement être utilisé par 3 postes en même temps, pour simplifier je ne parlerai ici que de 2 postes :
1 poste admin qui contient la base avec les formulaires sur un disque propre au poste ainsi que la base avec les tables dans un dossier partagé. Ce poste a un user = user_admin et un mot de passe = mdp_admin
1 poste utilisateur qui ne contient que la base avec les formulaires et qui a un user = user_poste et un mot de passe = mdp_poste.
J'avais installé le partage en créant un user sur le poste admin avec les infos user_poste et mdp_poste et j'avais donné les autorisations à ce user pour modifier et lire les fichiers se trouvant dans le dossier partagé par le biais du programme partage de windows.
Je lançais mon programme et pour le moment je le liais manuellement à la base des tables. L'ordi me demandait le user et le mot de passe, je saisissais ceux du poste admin. Ca fonctionnait. Si j'éteignais l'ordi utilisateur et que je le rallumais lorsque je lançais le programme, celui-ci était bloqué et aucune modification n'était possible que ce soit du poste admin ou du poste utilisateur. Il fallait relier de nouveaux les tables (d'ou ma question en <16> sur la perte des liens. En fait, le programme reconnaissait les liens mais il s'ouvrait non pas avec les user et mot de passe du poste admin mais avec ceux du poste utilisateur. J'avais d'ailleurs posé la question sur le forum dans la partie "Bureautique" il y a quelque jour mais je n'est reçu aucune réponse.
J'ai contacté la personne qui se charge du réseau de l'association (qui comme moi et une personne extérieur et donc absente au moment d'utiliser le programme) et il m'a expliqué que leur réseau était installé différemment (attention, j'ai testé chez moi, pas avec leur réseau donc je ne sais pas si je rencontrerai le même problème mais bon) :
Par le biais du poste de travail du poste utilisateur j'ai fait un clic droit sur ordinateur et Connecter un lecteur réseau. J'ai choisi la lettre Z pour le lecteur et par le biais de Parcourir je suis allée définir le chemin où ce trouve le dossier partagé sur le poste admin. A ce moment l'ordinateur me demande le nom d'utilisateur et le mot de passe. Je saisi donc user_admin et mdp_admin et je coche Mémoriser mon mot de passe.
Je lance mon programme Access, pour le moment, je sélectionne ma base de table manuellement. Tout fonctionne normalement, avec les deux PC en même temps.
J'éteins mon poste utilisateur et je le rallume, l'ordinateur me dit alors "impossible de reconnecter tous les lecteurs réseau" et donc il faut ressaisir à chaque fois user_admin et mdp_admin lorSque l'on rouvre un pc.
Je ne sais pas si tu as une solution pour ce problème.
Du coup pour en revenir à notre première question soit boite de dialogue ou table, si tu me dis que la table c'est plus sûr, partons pour la table. En fait, j'hésitais uniquement du fait de ma pseudo "perde de lien" que j'explique plus haut puisque selon moi, il fallait systématiquement à chaque ouverture de l'ordinateur reconfigurer le lien même s'il existait (mais avec le mauvais user) et donc je pensais que la boite de dialogue était du coup plus logique
Je t'explique, peut-être pourras tu m'aider.
Même si le programme doit normalement être utilisé par 3 postes en même temps, pour simplifier je ne parlerai ici que de 2 postes :
1 poste admin qui contient la base avec les formulaires sur un disque propre au poste ainsi que la base avec les tables dans un dossier partagé. Ce poste a un user = user_admin et un mot de passe = mdp_admin
1 poste utilisateur qui ne contient que la base avec les formulaires et qui a un user = user_poste et un mot de passe = mdp_poste.
J'avais installé le partage en créant un user sur le poste admin avec les infos user_poste et mdp_poste et j'avais donné les autorisations à ce user pour modifier et lire les fichiers se trouvant dans le dossier partagé par le biais du programme partage de windows.
Je lançais mon programme et pour le moment je le liais manuellement à la base des tables. L'ordi me demandait le user et le mot de passe, je saisissais ceux du poste admin. Ca fonctionnait. Si j'éteignais l'ordi utilisateur et que je le rallumais lorsque je lançais le programme, celui-ci était bloqué et aucune modification n'était possible que ce soit du poste admin ou du poste utilisateur. Il fallait relier de nouveaux les tables (d'ou ma question en <16> sur la perte des liens. En fait, le programme reconnaissait les liens mais il s'ouvrait non pas avec les user et mot de passe du poste admin mais avec ceux du poste utilisateur. J'avais d'ailleurs posé la question sur le forum dans la partie "Bureautique" il y a quelque jour mais je n'est reçu aucune réponse.
J'ai contacté la personne qui se charge du réseau de l'association (qui comme moi et une personne extérieur et donc absente au moment d'utiliser le programme) et il m'a expliqué que leur réseau était installé différemment (attention, j'ai testé chez moi, pas avec leur réseau donc je ne sais pas si je rencontrerai le même problème mais bon) :
Par le biais du poste de travail du poste utilisateur j'ai fait un clic droit sur ordinateur et Connecter un lecteur réseau. J'ai choisi la lettre Z pour le lecteur et par le biais de Parcourir je suis allée définir le chemin où ce trouve le dossier partagé sur le poste admin. A ce moment l'ordinateur me demande le nom d'utilisateur et le mot de passe. Je saisi donc user_admin et mdp_admin et je coche Mémoriser mon mot de passe.
Je lance mon programme Access, pour le moment, je sélectionne ma base de table manuellement. Tout fonctionne normalement, avec les deux PC en même temps.
J'éteins mon poste utilisateur et je le rallume, l'ordinateur me dit alors "impossible de reconnecter tous les lecteurs réseau" et donc il faut ressaisir à chaque fois user_admin et mdp_admin lorSque l'on rouvre un pc.
Je ne sais pas si tu as une solution pour ce problème.
Du coup pour en revenir à notre première question soit boite de dialogue ou table, si tu me dis que la table c'est plus sûr, partons pour la table. En fait, j'hésitais uniquement du fait de ma pseudo "perde de lien" que j'explique plus haut puisque selon moi, il fallait systématiquement à chaque ouverture de l'ordinateur reconfigurer le lien même s'il existait (mais avec le mauvais user) et donc je pensais que la boite de dialogue était du coup plus logique
blux
Messages postés
26503
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
2 décembre 2024
3 317
1 déc. 2009 à 09:02
1 déc. 2009 à 09:02
J'ai pas tout compris : le user/mot de passe, c'est celui du partage réseau ou celui de l'identification au domaine windows ?
Co52
Messages postés
78
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
8 octobre 2016
3
1 déc. 2009 à 09:48
1 déc. 2009 à 09:48
Le user/mot de passe que j'utilise c'est celui que je saisie à l'ouverture de mon ordinateur, je fais peut être une bétise et de la mon problème. Chaque ordi à un user et un mot de passe qu'on utilise à l'ouverture et c'est ceux la que j'utilise. Faut-il en créer un particulier pour le partage et si oui ou est-ce qu'on le crée
Co52
Messages postés
78
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
8 octobre 2016
3
1 déc. 2009 à 10:27
1 déc. 2009 à 10:27
Laisse tomber pour le réseau, je verrai avec la personne qui l'installe pour l'asso pour qu'il me donne des cours. Je préfère avancer sur mon programme access on en était à la création d'une boite de dialogue ou d'une table et donc je te fais confiance pour la table.
blux
Messages postés
26503
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
2 décembre 2024
3 317
1 déc. 2009 à 12:59
1 déc. 2009 à 12:59
Donc tu crées une table locale (c'est à dire sur ta base frontale, sans liaison) avec un champ du nom que tu veux, par exemple : table "constantes", et champ "basdis"...
Tu remplis repdis avec le nom complet de ta base distante, genre : \\gnagnagna\toto\rep1\pling.mdb ou Z:\pouet\toto.mdb
Et ensuite tu modifies la procédure que je t'ai donnée :
Set Db = CurrentDb
Unc = DLookup("basdis", "constantes")
Unc = ";Database=" & Unc
For Each Tb In Db.TableDefs
If Left(Tb.Name, 4) <> "MSys" Then
If Tb.Connect <> "" Then
If Tb.Connect <> Unc Then
Tb.Connect = Unc
Tb.RefreshLink
End If
End If
End If
Next
Bien entendu, tu devras distribuer ta nouvelle base à tout le monde...
Pendant que tu y est, fais-en un .MDE, ça devrait décourager les impertinents du click...
Tu remplis repdis avec le nom complet de ta base distante, genre : \\gnagnagna\toto\rep1\pling.mdb ou Z:\pouet\toto.mdb
Et ensuite tu modifies la procédure que je t'ai donnée :
Set Db = CurrentDb
Unc = DLookup("basdis", "constantes")
Unc = ";Database=" & Unc
For Each Tb In Db.TableDefs
If Left(Tb.Name, 4) <> "MSys" Then
If Tb.Connect <> "" Then
If Tb.Connect <> Unc Then
Tb.Connect = Unc
Tb.RefreshLink
End If
End If
End If
Next
Bien entendu, tu devras distribuer ta nouvelle base à tout le monde...
Pendant que tu y est, fais-en un .MDE, ça devrait décourager les impertinents du click...