OVH Cloud OVH Cloud

Connexion à une base de données

4 réponses
Avatar
BCS
Bonjour,
Mon problème est le suivant :
Par programmation, je réalise une reconnexion à une base de données. Le prob
est que la reconnexion est super lente à partir du moment ou un utilisateur
est déjà connectée à cette même base. Par contre quand personne n'y est
connecté, cela se déroule assez rapidement.
Qqun sait me dire d'ou vient le problème que je rencontre ?
Mon code est le suivant :
For intCount = 0 To db.TableDefs.Count - 1
Set tdf = db.TableDefs(intCount)
If tdf.Connect <> "" Then
tdf.Connect = ";DATABASE=" & strDBPath
tdf.RefreshLink
end if
next intCount

où strDBPath = chemin de la base à connecter

4 réponses

Avatar
Raymond [mvp]
Bonjour.

le 1er problème: pourquoi ré-attaches-tu tes tables sytématiquement ?
le 2e problème: tu ne testes pas les attaches corrompues.
le 3e problème: on ne rafraîchit les liens que si une attache est trouvée
corrompue.
la solution: vérifier les liens lors du lancement de la base
http://officesystem.access.free.fr/vba/verifierliens.htm

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"BCS" a écrit dans le message de news:

Bonjour,
Mon problème est le suivant :
Par programmation, je réalise une reconnexion à une base de données. Le
prob
est que la reconnexion est super lente à partir du moment ou un
utilisateur
est déjà connectée à cette même base. Par contre quand personne n'y est
connecté, cela se déroule assez rapidement.
Qqun sait me dire d'ou vient le problème que je rencontre ?
Mon code est le suivant :
For intCount = 0 To db.TableDefs.Count - 1
Set tdf = db.TableDefs(intCount)
If tdf.Connect <> "" Then
tdf.Connect = ";DATABASE=" & strDBPath
tdf.RefreshLink
end if
next intCount

où strDBPath = chemin de la base à connecter


Avatar
BCS
En fait je ne ré-attache pas les tables systématiquement.
J'ai en fait une base de données programme et plusieurs bases de données data
Dans mon programme, je laisse à l'utilisateur la possibilité, par une
fonction, de se connecter à la base de données data X ou Y. C'est à ce moment
là que le processus de connexion se fait et c'est donc là que mon prob se
pose c'est que si personne n'est connecté à la base de données Y par exemple,
lorsque l'utilisateur s'y connecte en lancant ma fonction, pas de soucis, ca
va vite. Par contre si qqun y est deja connecté (et donc en cours
d'utilisation) ca met un temps dingue.

J'espère que c'est plus clair ;-)

Merci deja pour ta reponse précédente


Bonjour.

le 1er problème: pourquoi ré-attaches-tu tes tables sytématiquement ?
le 2e problème: tu ne testes pas les attaches corrompues.
le 3e problème: on ne rafraîchit les liens que si une attache est trouvée
corrompue.
la solution: vérifier les liens lors du lancement de la base
http://officesystem.access.free.fr/vba/verifierliens.htm

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"BCS" a écrit dans le message de news:

Bonjour,
Mon problème est le suivant :
Par programmation, je réalise une reconnexion à une base de données. Le
prob
est que la reconnexion est super lente à partir du moment ou un
utilisateur
est déjà connectée à cette même base. Par contre quand personne n'y est
connecté, cela se déroule assez rapidement.
Qqun sait me dire d'ou vient le problème que je rencontre ?
Mon code est le suivant :
For intCount = 0 To db.TableDefs.Count - 1
Set tdf = db.TableDefs(intCount)
If tdf.Connect <> "" Then
tdf.Connect = ";DATABASE=" & strDBPath
tdf.RefreshLink
end if
next intCount

où strDBPath = chemin de la base à connecter







Avatar
Raymond [mvp]
Je te conseille de lire la fiche technique:
Accès de fichier partagé est retardé si le fichier est ouvert sur un autre
ordinateur (c'est bien ça ?)
http://support.microsoft.com/kb/150384/
ainsi que:
Comment optimiser la performance Office Access et Jet de réseau de moteur de
base de données avec clients Windows 2000 et Windows XP
http://support.microsoft.com/default.aspx?scid=kb;fr;889588
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"BCS" a écrit dans le message de news:

En fait je ne ré-attache pas les tables systématiquement.
J'ai en fait une base de données programme et plusieurs bases de données
data
Dans mon programme, je laisse à l'utilisateur la possibilité, par une
fonction, de se connecter à la base de données data X ou Y. C'est à ce
moment
là que le processus de connexion se fait et c'est donc là que mon prob se
pose c'est que si personne n'est connecté à la base de données Y par
exemple,
lorsque l'utilisateur s'y connecte en lancant ma fonction, pas de soucis,
ca
va vite. Par contre si qqun y est deja connecté (et donc en cours
d'utilisation) ca met un temps dingue.

J'espère que c'est plus clair ;-)

Merci deja pour ta reponse précédente



Avatar
BCS
Un grand merci raymond, il s'agit bien de l'article
http://support.microsoft.com/kb/150384/


Je te conseille de lire la fiche technique:
Accès de fichier partagé est retardé si le fichier est ouvert sur un autre
ordinateur (c'est bien ça ?)
http://support.microsoft.com/kb/150384/
ainsi que:
Comment optimiser la performance Office Access et Jet de réseau de moteur de
base de données avec clients Windows 2000 et Windows XP
http://support.microsoft.com/default.aspx?scid=kb;fr;889588
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"BCS" a écrit dans le message de news:

En fait je ne ré-attache pas les tables systématiquement.
J'ai en fait une base de données programme et plusieurs bases de données
data
Dans mon programme, je laisse à l'utilisateur la possibilité, par une
fonction, de se connecter à la base de données data X ou Y. C'est à ce
moment
là que le processus de connexion se fait et c'est donc là que mon prob se
pose c'est que si personne n'est connecté à la base de données Y par
exemple,
lorsque l'utilisateur s'y connecte en lancant ma fonction, pas de soucis,
ca
va vite. Par contre si qqun y est deja connecté (et donc en cours
d'utilisation) ca met un temps dingue.

J'espère que c'est plus clair ;-)

Merci deja pour ta reponse précédente