Problème d'ouverture de fichier contenant TCD linke sur base acces

wilaw

XLDnaute Nouveau
Bonjour,

Je viens d'avoir un problème assez bizarre:
je commence a passer mes fichier excel 2003 en excel 2007.

la structure est la suivante: une base acces qui calcul les données, cela est ressorti en TCD excel qui est apres utilise pour des rapport en excel.

le rapport en question appel un fichier contenant les macro.
la macro en elle même ne fait qu'appeler le fichier contenant le TCD sans le mettre a jour.

en 2003 ca marche parfaitement, en 2007 la macro s’arrête au moment d'ouvrir le Fichier contenant les TCD, sans avoir de message d'erreur. voici l'instruction que j utilise

tableau_adresse = "\\ksiopebis\KYOTO\bdd excel\Vol.xlsx"
Application.Workbooks.Open Filename:=tableau_adresse, ReadOnly:=True

la macro s’arrête donc a la deuxième ligne


j'ai essaye d'avoir le message d'erreur , j'ai reussit a l'avoir en faisant un enregistrement de macro.
et la l'erreur est la suivante :

"trop de caractere de continuité de ligne".

la je suis étonne il ne me semble pas que mon instruction soit trop longue.
puis je rentre dans le code enregistrer et la, c'est l hallu ( je colle le code enregistrer) :

Workbooks("Vol.xlsx").Connections.Add "Connexion2", "", Array(Array( _
"ODBC;DSN=MS Access Database;DBQ=\\ksiopebis\KYOTO\BDD ATLAS.mdb;DefaultDir=\\ksiopebis\KYOTO;DriverId=25;FIL=MS Access;MaxBufferSize" _
), Array("=2048;PageTimeout=5;UID=admin;")), Array( _
"SELECT `Vol reg : selection new`.`Nouvelle duree`, `Vol reg : selection new`.`ville d'arrivée final`, `Vol reg : se" _
, _
"lection new`.Engagement, `Vol reg : selection new`.Contingent, `Vol reg : selection new`.`SommeDeSomme des ventes`," _
, _
" `Vol reg : selection new`.Ctg, `Vol reg : selection new`.Rqs, `Vol reg : selection new`.Dtdep, `Vol reg : selectio" _
, _
"n new`.Vol" & Chr(13) & "" & Chr(10) & "FROM `\\ksiopebis\KYOTO\BDD ATLAS`.`Vol reg : selection new` `Vol reg : selection new`" _
), 2
Workbooks("Vol.xlsx").Connections.Add "Connexion1", "", Array(Array( _
"ODBC;DSN=MS Access Database;DBQ=\\ksiopebis\KYOTO\BDD ATLAS.mdb;DefaultDir=\\ksiopebis\KYOTO;DriverId=25;FIL=MS Access;MaxBufferSize" _
),Array("=2048;PageTimeout=5;")), Array( _
"SELECT R_selection_T_vol_resultat_reg.`#Pays`, R_selection_T_vol_resultat_reg.Dtdep, R_selection_T_vol_resultat_reg" _
, _
".Stkrtc, R_selection_T_vol_resultat_reg.Rtcdld, R_selection_T_vol_resultat_reg.Dtrtcp, R_selection_T_vol_resultat_r" _
, _
"eg.Dtrtcd, R_selection_T_vol_resultat_reg.Ctgrtc, R_selection_T_vol_resultat_reg.Ctg, R_selection_T_vol_resultat_re" _
, _
"g.Offre, R_selection_T_vol_resultat_reg.Res, R_selection_T_vol_resultat_reg.Opt, R_selection_T_vol_resultat_reg.Rtc" _
, _
", R_selection_T_vol_resultat_reg.Dispo, R_selection_T_vol_resultat_reg.Nsp, R_selection_T_vol_resultat_reg.Rqs, R_s" _
, _
"election_T_vol_resultat_reg.Rqscnf, R_selection_T_vol_resultat_reg.CRg, R_selection_T_vol_resultat_reg.Durmin, R_se" _
, _
"lection_T_vol_resultat_reg.Durmax, R_selection_T_vol_resultat_reg.Rqsaut, R_selection_T_vol_resultat_reg.Refnsp, R_" _
, _
"selection_T_vol_resultat_reg.DtExport, R_selection_T_vol_resultat_reg.`Nouvelle duree`, R_selection_T_vol_resultat_" _
, _
"reg.`ville de depart final`, R_selection_T_vol_resultat_reg.`ville d'arrivée final`, R_selection_T_vol_resultat_reg" _
, _
".Engagement, R_selection_T_vol_resultat_reg.Contingent, R_selection_T_vol_resultat_reg.`Ventes corrigé`, R_selectio" _
, _
"n_T_vol_resultat_reg.`Stocks corrigé`, R_selection_T_vol_resultat_reg.`Dispo corrigé`, R_selection_T_vol_resultat_r" _

Alors la oui je commence a comprendre pourquoi c'est trop long -_-. Pourquoi il me fait la connection avec ma base acces alors qu'a aucun moment je la demande et je ne sais même pas comment faire pour l’empêcher de faire

Si quelqu'un a une solution je suis preneur :)

Merci d'avance

Cordialement

Wilaw
 

STephane

XLDnaute Occasionnel
Re : Problème d'ouverture de fichier contenant TCD linke sur base acces

bonjour,

Tu crées le TCD depuis Excel via le menu Données ?
Si oui, Excel doit effectivement créer une connexion de données avec la base Access.
Est-ce que la définition de cette connexion est trop longue ?

Toujours est-il qu'une fois la connexion créée, tu as juste besoin normalement de la rafraîchir (et pas de la recréer).


Si tu as vraiment besoin de cette création de connexion, tu peux pour contourner le problème de continuité de lignes (qui semble survenir avec les nouvelles versions d'Excel) :
- enlever chaque signe "_" qui sert à partager la ligne, mais fais attention car ce signe est utilisé dans les noms de tes tables
- découper les blocs "array(....)" et les mettre dans différentes variables

dim BLOCARRAY
Workbooks("Vol.xlsx").Connections.Add "Connexion2", "", BLOCARRAY
BLOCARRAY = BLOCARRAY & "......array1"
BLOCARRAY = BLOCARRAY & "," "......array1"


en espérant que ça fasse avancer le schmilblick
 

Discussions similaires

Statistiques des forums

Discussions
314 628
Messages
2 111 343
Membres
111 107
dernier inscrit
cdel