OVH Cloud OVH Cloud

Problème mde

2 réponses
Avatar
ludo6625
Bonjour,

Voil=E0 j'ai tjs des probl=E8me avec mon code pour actualiser=20
les tables de ma base grace =E0 du code.
En effet, il ne reconnait pas ma base donn=E9es.mde comme=20
valide pour l'importation il m'indique une=20
erreur : "objet non definit".
Ma base est en mde pour les tables, Faut t'il absolument=20
une base mdb pour ce code, il me met aussi un carr=E9 quand=20
j'affiche la valeur strdb est ce normal ???
je vous met mon code :

'** Actualisation des attaches de tables qui se trouve
'** dans la base de donn=E9e sp=E9cifi=E9e dans "strDb"
Dim db As Database
Dim tdf As TableDef
Dim tdfNew As TableDef

Set db =3D OpenDatabase(strDb)
For Each tdf In db.TableDefs
Set tdfNew =3D CurrentDb.TableDefs(tdf.Name)
tdfNew.Connect =3D ";DATABASE=3D" & strDb
'lerreur est ici strdb est bien d=E9finit mais=20
quand j'affiche =E7a valeur il me met g:\gp\donn=E9es.mde=20
puis un carr=E9
Err =3D 0
On Error Resume Next
tdfNew.RefreshLink
If Err <> 0 Then: ActualiserAttaches =3D False:=20
Exit Function
Next
ActualiserAttaches =3D True

End Function
'*******************************************

2 réponses

Avatar
Jean
Bonjour Ludo,
remplace "Dim db As Database" par "Dim db As Dao.Database",
tu dois préciser à Access que tu travaille en DAO.

N'Ouble pas de cocher la librairie "Microsoft DAO 3.60
Object Library" dans le menu 'Outils/Références' de VBA.

Pour ta question sur Mde & Mdb, le format importe peu,
pourvu que le code soit monté correctement.

A+ Jean.
Avatar
ludo6625
Bonjour le code ne me met plus d'erreur mais aucun des
chemin des tables n'est changé ???? :-))

Est ce que c'est parce que je ne précise pas le nom des
tables à mettre à jour ????

voici le code :
Function fCheckLinks()
Dim rst As DAO.Recordset
Set dbs = CurrentDb()

On Error Resume Next
nbTbl = dbs.TableDefs.Count

For idx = 0 To nbTbl - 1
Set TblDef = dbs.TableDefs(idx)
If TblDef.Attributes = dbAttachedTable Then
Set rst = dbs.OpenRecordset(TblDef.Name)
End If
Next idx

If Err <> 0 Then
fRefreshLinks
End If

rst.Close
dbs.Close
Set rst = Nothing
Set dbs = Nothing

End Function

Sub fRefreshLinks()
Dim newpath As String
On Error Resume Next

newpath = OpenFilebase("")
For idx = 0 To nbTbl - 1
Set TblDef = dbs.TableDefs(idx)
If TblDef.Connect <> "" Then
TblDef.Connect = ";DATABASE=" & newpath
& ";UID=;PWD="
TblDef.RefreshLink
End If
Next idx
' MsgBox Err
If Err = 0 Then
MsgBox "Modification du chemin des tables réussit !",
vbInformation + vbOKOnly, "Welcome !"
Exit Sub
Else
If MsgBox("Les Tables n'ont pas été trouvées " _
& "dans la base sélectionnée, voulez-vous essayer
à nouveau ?", _
vbExclamation + vbYesNo, "Sélection non Valide")
= vbNo Then
dbs.Close
Set dbs = Nothing
Set TblDef = Nothing
MsgBox "Au Revoir !", vbCritical +
vbOKOnly, _
"Fermeture de l'application"
DoCmd.Quit
Else
dbs.Close
Set dbs = Nothing
Set TblDef = Nothing
Call fCheckLinks
End If
End If
End Sub