OVH Cloud OVH Cloud

[Acc 97] - Attachement de tables

4 réponses
Avatar
Jeff
Bonjour à tous

Je teste sous Access 97 la fonction ci-dessous. Le problème:
dès que j'essaye de quitter l'application par un bouton ou un menu
par une commande DoCmd.Quit, la base se ferme mais pas la fenêtre
principale Access. Il faut alors pour la fermer passer par le
gestionnaire de tâches.

Si je n'appelle pas cette fonction lors de l'ouverture de mon formulaire
principale, tout fonctionne parfaitement.

Si quelqu'un à une idée sur la question, je suis preneur

--
Cordialement

Jeff

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

; FONCTION

Function fCheckLinks()

Dim nbTbl As Long
Dim idx As Long
Dim dbs As DAO.Database
Dim TblDef As TableDef
Set dbs = CurrentDb()
Dim newpath As String

newpath = "C:\FICHIER.INI"

nbTbl = dbs.TableDefs.Count

For idx = 0 To nbTbl - 1
Set TblDef = dbs.TableDefs(idx)
If TblDef.Attributes = dbAttachedTable Then
TblDef.Connect = ";DATABASE=" & newpath & ";UID=;PWD="
TblDef.RefreshLink
End If
Next idx

dbs.Close
Set dbs = Nothing

End Function

4 réponses

Avatar
Raymond [mvp]
Bonjour Jeff.

Il te manque le TblDef = Nothing
mais pas sur du tout.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Jeff" a écrit dans le message de
news:
Bonjour à tous

Je teste sous Access 97 la fonction ci-dessous. Le problème:
dès que j'essaye de quitter l'application par un bouton ou un menu
par une commande DoCmd.Quit, la base se ferme mais pas la fenêtre
principale Access. Il faut alors pour la fermer passer par le
gestionnaire de tâches.

Si je n'appelle pas cette fonction lors de l'ouverture de mon formulaire
principale, tout fonctionne parfaitement.

Si quelqu'un à une idée sur la question, je suis preneur

--
Cordialement

Jeff

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

; FONCTION

Function fCheckLinks()

Dim nbTbl As Long
Dim idx As Long
Dim dbs As DAO.Database
Dim TblDef As TableDef
Set dbs = CurrentDb()
Dim newpath As String

newpath = "C:FICHIER.INI"

nbTbl = dbs.TableDefs.Count

For idx = 0 To nbTbl - 1
Set TblDef = dbs.TableDefs(idx)
If TblDef.Attributes = dbAttachedTable Then
TblDef.Connect = ";DATABASE=" & newpath & ";UID=;PWD="
TblDef.RefreshLink
End If
Next idx

dbs.Close
Set dbs = Nothing

End Function




Avatar
Jeff
Bonjour Raymond

merci pour ta réponse rapide mais en envoyant le post
cela a aussi attiré mon attention.

Donc c'était bien ça. Merci

--
Cordialement

Jeff

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

"Raymond [mvp]" a écrit dans le message de
news:%
Bonjour Jeff.

Il te manque le TblDef = Nothing
mais pas sur du tout.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Jeff" a écrit dans le message de
news:
Bonjour à tous

Je teste sous Access 97 la fonction ci-dessous. Le problème:
dès que j'essaye de quitter l'application par un bouton ou un menu
par une commande DoCmd.Quit, la base se ferme mais pas la fenêtre
principale Access. Il faut alors pour la fermer passer par le
gestionnaire de tâches.

Si je n'appelle pas cette fonction lors de l'ouverture de mon formulaire
principale, tout fonctionne parfaitement.

Si quelqu'un à une idée sur la question, je suis preneur

--
Cordialement

Jeff

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

; FONCTION

Function fCheckLinks()

Dim nbTbl As Long
Dim idx As Long
Dim dbs As DAO.Database
Dim TblDef As TableDef
Set dbs = CurrentDb()
Dim newpath As String

newpath = "C:FICHIER.INI"

nbTbl = dbs.TableDefs.Count

For idx = 0 To nbTbl - 1
Set TblDef = dbs.TableDefs(idx)
If TblDef.Attributes = dbAttachedTable Then
TblDef.Connect = ";DATABASE=" & newpath & ";UID=;PWD="
TblDef.RefreshLink
End If
Next idx

dbs.Close
Set dbs = Nothing

End Function








Avatar
Anor
Bonjour Jeff

Une idée ; il faudrait peut-être que tu fermes l'objet TblDef .....


Sinon, la procédure que je propose sur

Jeff :
| Bonjour à tous
|
| Je teste sous Access 97 la fonction ci-dessous. Le problème:
| dès que j'essaye de quitter l'application par un bouton ou un menu
| par une commande DoCmd.Quit, la base se ferme mais pas la fenêtre
| principale Access. Il faut alors pour la fermer passer par le
| gestionnaire de tâches.
|
| Si je n'appelle pas cette fonction lors de l'ouverture de mon
| formulaire principale, tout fonctionne parfaitement.
|
| Si quelqu'un à une idée sur la question, je suis preneur
Avatar
Anor
oups !

Je disais : la procédure que je propose sur
http://memoaccess.free.fr/tables.htm#Links
fonctionne correctement sur des bases 97 sur NT4.....

Tout ce que je peux dire, c'est que si je propose cette méthode-ci,
c'est parce que j'avais remarqué avec les autres méthodes proposées sur les sites habituels, que
:

1- rafraîchir systématiquement l'attache de toutes les tables attachées augmentait le temps de
la procédure
2 - déclencher le changement de chemin dès la première erreur d'ouverture d'un recordset est 100
fois plus rapide que de tenter un
rafraîchissement et laisser access échouer sur cette action puis changer de chemin.

Expérience personnelle, temps d'ouverture des users 2, 3 et suivants est passé de 3 minutes à 10
secondes avec cette méthode.
Si elle n'était pas meilleure que celle des copains, je ne l'aurais pas publiée sur mon site
;-)))

--
à+
Arnaud
--------------------------------------------------
Avant toute chose : http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
## Réponses souhaitées sur ce forum, merci. ##
--------------------------------------------------


Jeff :
| Bonjour à tous
|
| Je teste sous Access 97 la fonction ci-dessous. Le problème:
| dès que j'essaye de quitter l'application par un bouton ou un menu
| par une commande DoCmd.Quit, la base se ferme mais pas la fenêtre
| principale Access. Il faut alors pour la fermer passer par le
| gestionnaire de tâches.
|
| Si je n'appelle pas cette fonction lors de l'ouverture de mon
| formulaire principale, tout fonctionne parfaitement.
|
| Si quelqu'un à une idée sur la question, je suis preneur