OVH Cloud OVH Cloud

tables liées sur base partagée

1 réponse
Avatar
stoomm
Bonjour,

J'ai un probleme avec Access :

J'ai une base qui a un certain nombre de tables liés vers
C:\MonRep\RepDivers\UneBase.mdb

Cette base est partagée.

Donc, si je veux taper dans une des table liée de cette base, à partir
d'un poste réseau, le lien etant sur c:\, ca recherche les bases
presentes en local et non sur le disque c: de la machine "serveur".

Y a t-il un moyen pour que cela prennent en compte que les bases du
serveur.
Je sais qu'on peut mettre le nom avant de type :
\\mamachine\monrep\etc... Mais cette solution n'est pas envisageable.
Existe t il autre chose ?

Merci d'avance.

Stoomm.

1 réponse

Avatar
Jeff
Bonjour

Voici une fonction que j'utilise pour modifier le chemin des tables attachés
en fonction
des valeurs lues dans un fichier INI

Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/

----------------------------------------------------------------------------
-------------------------------------
Function Attache ()
Dim MyBD1 As Database
10 On Error GoTo PrbAttache
20 Const plDefault = ""
30 Const IniSection = "Options"
40 Const IniEntry = "Chemin"
70 Attache = 0
90 IniString = Space$(255)
100 IniResult = GetPrivateProfileString(IniSection, IniEntry, plDefault,
IniString, TailleTampon, FichierIni)
110 If IniResult <= 0 Then
120 MsgBox "Erreur de lecture du fichier INI", 0, ""
130 Attache = -1
140 Exit Function
141 End If
142 IniString = Trim$(IniString)
143 CheminAcces = IniString
144 strCompare = ";DATABASE=" & Left$(IniString$, Len(IniString$) - 1)
151 IniString = Space$(255)
152 IniResult = GetPrivateProfileString(IniSection, IniEntryBourse,
plDefault, IniString, TailleTampon, FichierIni)
153 If IniResult <= 0 Then
154 MsgBox "Erreur de lecture du fichier INI", 0, ""
155 Attache = -1
156 Exit Function
157 End If
180 DoCmd SetWarnings False
200 Set MyBD1 = CurrentDB()
210 For Boucle = 0 To MyBD1.TableDefs.Count - 1
220 Set TableTemp = MyBD1.TableDefs(Boucle)
230 If InStr(1, TableTemp.Name, "MSys") = 0 Then
If TableTemp.Connect <> strCompare Then
250 TableTemp.Connect = strCompare
260 TableTemp.RefreshLink
End If
End If
290 Next Boucle
300 MyBD1.Close
310 Exit Function
PrbAttache:
320 If Err = 3219 Then Resume 290
330 MsgBox Error(Err), 0, "Erreur d'exécution n° " & Err & " - " & "Niveau "
& Erl
331 MsgBox "" & TableTemp.Name
340 Attache = -1
End Function
----------------------------------------------------------------------------
-----------------------------------------

"Stoomm" a écrit dans le message de
news:
Bonjour,

J'ai un probleme avec Access :

J'ai une base qui a un certain nombre de tables liés vers
C:MonRepRepDiversUneBase.mdb

Cette base est partagée.

Donc, si je veux taper dans une des table liée de cette base, à partir
d'un poste réseau, le lien etant sur c:, ca recherche les bases
presentes en local et non sur le disque c: de la machine "serveur".

Y a t-il un moyen pour que cela prennent en compte que les bases du
serveur.
Je sais qu'on peut mettre le nom avant de type :
mamachinemonrepetc... Mais cette solution n'est pas envisageable.
Existe t il autre chose ?

Merci d'avance.

Stoomm.