OVH Cloud OVH Cloud

réorienter requete

3 réponses
Avatar
damien
Bonjour,
à partir d'une base de donnée sous access je récupére mes données pour faire
des graphiques. Je fais ceci sous excel avec données -> Donnees externes ->
importer des donnees et je fais pointer vers mes tables de ma base de donnée.
mais j'ai migrer de windows 2000 à XP et maintenant ma base de donnée est sur
le disque C:\ alors qu'auparavant elle était sur un disque D:\
Donc comment je peux faire pour rediriger ma requete vers les memes tables
mais sur c:\???????? je ne peux pas le faire manuellement car il y en a de
trop!!!
Merci
Damien

3 réponses

Avatar
JCJ
Salut Damien

En bidouillant les macros enregistrées, j'ai pu retrouver la syntaxe des
instructions liées aux requètes.
La macro suivante peut modifier le chemin du fichier MDB
Ce qui fait que : D:BasesstocksHistorique stocks.mdb devient
C:BasesstocksHistorique stocks.mdb
Attention, je ne teste pas si l'origine est "D:", et je ne contrôle pas non
plus l'existance des répertoires et fichiers sur "C:"
Mais çà doit marcher pour chaque query de la feuille en cours.

Sub Macro1()
Dim qt As QueryTable
Dim df As String

For Each qt In ActiveSheet.QueryTables
df = qt.SourceDataFile
Debug.Print df
qt.SourceDataFile = "C" & Mid$(df, 2)
Next qt
End Sub


JCJ

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

Bonjour,
à partir d'une base de donnée sous access je récupére mes données pour
faire
des graphiques. Je fais ceci sous excel avec données -> Donnees
externes ->
importer des donnees et je fais pointer vers mes tables de ma base de
donnée.
mais j'ai migrer de windows 2000 à XP et maintenant ma base de donnée est
sur
le disque C: alors qu'auparavant elle était sur un disque D:
Donc comment je peux faire pour rediriger ma requete vers les memes tables
mais sur c:???????? je ne peux pas le faire manuellement car il y en a de
trop!!!
Merci
Damien



Avatar
damien
Merci je pense que c'est l'idée mais j'ai taper le code dans le module
Workbook afin que cela ce lance a l'open du fichier mais quand je tape :
For Each qt In ActiveSheet.
il ne me propose c'est qu'il y a un probleme j'ai alors mis ActiveWorkbook
et la il me propose tout saut QueryTables
Merci de m'aider car la je suis bloquer


Salut Damien

En bidouillant les macros enregistrées, j'ai pu retrouver la syntaxe des
instructions liées aux requètes.
La macro suivante peut modifier le chemin du fichier MDB
Ce qui fait que : D:BasesstocksHistorique stocks.mdb devient
C:BasesstocksHistorique stocks.mdb
Attention, je ne teste pas si l'origine est "D:", et je ne contrôle pas non
plus l'existance des répertoires et fichiers sur "C:"
Mais çà doit marcher pour chaque query de la feuille en cours.

Sub Macro1()
Dim qt As QueryTable
Dim df As String

For Each qt In ActiveSheet.QueryTables
df = qt.SourceDataFile
Debug.Print df
qt.SourceDataFile = "C" & Mid$(df, 2)
Next qt
End Sub


JCJ

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

Bonjour,
à partir d'une base de donnée sous access je récupére mes données pour
faire
des graphiques. Je fais ceci sous excel avec données -> Donnees
externes ->
importer des donnees et je fais pointer vers mes tables de ma base de
donnée.
mais j'ai migrer de windows 2000 à XP et maintenant ma base de donnée est
sur
le disque C: alors qu'auparavant elle était sur un disque D:
Donc comment je peux faire pour rediriger ma requete vers les memes tables
mais sur c:???????? je ne peux pas le faire manuellement car il y en a de
trop!!!
Merci
Damien








Avatar
JCJ
Re Hi,

Pour ce genre de macros "outils", je les stocke dans le classeur PERSO.XLS,
et éventuellement, j'ajoute un raccourcis clavier ou un bouton dans une
barre d'outils.
Résultat:
+Macro toujours disponible,
+Pas de code à ajouter à chaque classeur;

-pour cette macro, il faut être sur la feuille à traiter avant de la lancer
(la macro)
-ne pas oublier de sauvegarder de temps en temps PERSO.XLS,
-la macro n'est pas disponible sans PERSO.XLS et ne "voyage" pas avec le
classeur.

D'autres part s'il a plusieurs feuilles par classeur, il faut lancer la
macro sur chaque feuille ou adapter la macro pour la faire parcourir toutes
les feuilles du classeur actif.
Dans le style : (ATTENTION: NON TESTE!!!!!!!)

Sub Macro2()
Dim st As Worksheet
Dim qt As QueryTable
Dim df As String

For Each st In ActiveWorkbook.Worksheets
For Each qt In st.QueryTables
df = qt.SourceDataFile
qt.SourceDataFile = "C" & Mid$(df, 2)
Next qt
Next st
End Sub

Bye
JCJ

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

Merci je pense que c'est l'idée mais j'ai taper le code dans le module
Workbook afin que cela ce lance a l'open du fichier mais quand je tape :
For Each qt In ActiveSheet.
il ne me propose c'est qu'il y a un probleme j'ai alors mis ActiveWorkbook
et la il me propose tout saut QueryTables
Merci de m'aider car la je suis bloquer


Salut Damien

En bidouillant les macros enregistrées, j'ai pu retrouver la syntaxe des
instructions liées aux requètes.
La macro suivante peut modifier le chemin du fichier MDB
Ce qui fait que : D:BasesstocksHistorique stocks.mdb devient
C:BasesstocksHistorique stocks.mdb
Attention, je ne teste pas si l'origine est "D:", et je ne contrôle pas
non
plus l'existance des répertoires et fichiers sur "C:"
Mais çà doit marcher pour chaque query de la feuille en cours.

Sub Macro1()
Dim qt As QueryTable
Dim df As String

For Each qt In ActiveSheet.QueryTables
df = qt.SourceDataFile
Debug.Print df
qt.SourceDataFile = "C" & Mid$(df, 2)
Next qt
End Sub


JCJ

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

Bonjour,
à partir d'une base de donnée sous access je récupére mes données pour
faire
des graphiques. Je fais ceci sous excel avec données -> Donnees
externes ->
importer des donnees et je fais pointer vers mes tables de ma base de
donnée.
mais j'ai migrer de windows 2000 à XP et maintenant ma base de donnée
est
sur
le disque C: alors qu'auparavant elle était sur un disque D:
Donc comment je peux faire pour rediriger ma requete vers les memes
tables
mais sur c:???????? je ne peux pas le faire manuellement car il y en a
de
trop!!!
Merci
Damien