{Access} liaison Dorsale/frontale
Résolu
Co52
Messages postés
78
Date d'inscription
Statut
Membre
Dernière intervention
-
Co52 Messages postés 78 Date d'inscription Statut Membre Dernière intervention -
Co52 Messages postés 78 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un soucis de liaison entre mes bases frontale et dorsale pour une base de donnée créée sous Access 2007.
J'ai créé une base contenant toutes les info : tables, requête, formulaire, etc.. puis je l'ai fractionnée en deux :
Base frontale = Bourse.accdb
Base dorsale = Bourse_table.accdb
C'est une application qui est utilisée 2 à 3 fois par an uniquement pour des bourses aux vêtements ou aux jouets d'une association et les membres de l'association utilisent donc leurs ordinateurs portables personnels (2 ou 3 ordinateurs maximum).
La responsable installe donc à chaque fois les documents nécessaires sur chaque ordinateur puisque ce ne sont pas toujours les mêmes soit :
La base frontale sur les 3 ordinateurs. La base dorsale sur 1 des 3 ordinateurs dans un dossier partagé.
Il faut signaler que les utilisateurs sont tous des utilisateurs relativement non expérimentés et que je n'interviens au niveau de ce programme que pour la création et la programmation, ensuite sauf cause de gros problème ils doivent ce débrouiller sans moi.
Pour des raisons de sécurités, je leur ai retiré l'accès aux menus d'Acces et donc, ils ne peuvent pas à l'ouverture de leur base accéder à la gestion de tables liées de l'onglet Outils de base de données pour lier la base frontale et la base dorsale.
J'ai fait des recherches sur internet et j'ai trouvé un site qui disait qu'il était possible de créer un code VBA pour demander à l'ouverture de la base frontale sur le premier formulaire ouvert (qui n'a aucun lien avec les tables) où ce trouvent la base dorsale mais qui ne donne aucun exemple et aucun lien pour m'aider plus juste le nom de livres que je ne possède pas.
Mon problème c'est que malheureusement, je ne sais pas programmer en VBA seulement bidouiller un code déjà existant en modifiant les noms de champs, de table, etc...
J'ai cherché sur internet et en fait tout ce que j'ai trouvé ne correspond pas à ma demande.
Quelqu'un peut-il venir à mon secourt.
Merci pour toute aide
J'ai un soucis de liaison entre mes bases frontale et dorsale pour une base de donnée créée sous Access 2007.
J'ai créé une base contenant toutes les info : tables, requête, formulaire, etc.. puis je l'ai fractionnée en deux :
Base frontale = Bourse.accdb
Base dorsale = Bourse_table.accdb
C'est une application qui est utilisée 2 à 3 fois par an uniquement pour des bourses aux vêtements ou aux jouets d'une association et les membres de l'association utilisent donc leurs ordinateurs portables personnels (2 ou 3 ordinateurs maximum).
La responsable installe donc à chaque fois les documents nécessaires sur chaque ordinateur puisque ce ne sont pas toujours les mêmes soit :
La base frontale sur les 3 ordinateurs. La base dorsale sur 1 des 3 ordinateurs dans un dossier partagé.
Il faut signaler que les utilisateurs sont tous des utilisateurs relativement non expérimentés et que je n'interviens au niveau de ce programme que pour la création et la programmation, ensuite sauf cause de gros problème ils doivent ce débrouiller sans moi.
Pour des raisons de sécurités, je leur ai retiré l'accès aux menus d'Acces et donc, ils ne peuvent pas à l'ouverture de leur base accéder à la gestion de tables liées de l'onglet Outils de base de données pour lier la base frontale et la base dorsale.
J'ai fait des recherches sur internet et j'ai trouvé un site qui disait qu'il était possible de créer un code VBA pour demander à l'ouverture de la base frontale sur le premier formulaire ouvert (qui n'a aucun lien avec les tables) où ce trouvent la base dorsale mais qui ne donne aucun exemple et aucun lien pour m'aider plus juste le nom de livres que je ne possède pas.
Mon problème c'est que malheureusement, je ne sais pas programmer en VBA seulement bidouiller un code déjà existant en modifiant les noms de champs, de table, etc...
J'ai cherché sur internet et en fait tout ce que j'ai trouvé ne correspond pas à ma demande.
Quelqu'un peut-il venir à mon secourt.
Merci pour toute aide
A voir également:
- {Access} liaison Dorsale/frontale
- Acer quick access - Forum logiciel systeme
- Quick Access service ✓ - Forum PC portable
- Désinstaller ACER QUICK ACCESS - Forum Logiciels
- Buée camera frontale iphone 13 - Forum iPhone
- Access appdata - Guide
25 réponses
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.
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
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.
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
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 ?
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.
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:\
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à)
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
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
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
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.
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.
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
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
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 ?
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
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.
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...