IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Deux Requêtes ADO identiques, l'une ne fonctionne pas [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Deux Requêtes ADO identiques, l'une ne fonctionne pas
    Bonjour,
    Je vais cherche une feuille sur un fichier qui n'est pas à moi, J'ai un problème sur le nom de la feuille.
    Voici la requête qui fonctionne : SELECT * FROM [1300 C METALLIQUE 1000X800X425$] et exactement la même qui ne fonctionne pas.
    Elle mes sort une Erreur d'exécution '-2147467259 (80004005)':
    "1300 C METALIQUE 1000X800X425$" n'est pas un nom valide.

    J'ai tester tous les caractères de cette chaine avec l'instruction asc(mid(NomFeuille,i,1 )) sur les deux, elle m'affiche les mêmes résultats, celle qui fonctionne est celle copier directement sur la feuille du fichier et l'autre ne fonctionne pas.

    Quelqu'un à-t-il la réponse?

    Voici une partie de mon code pour être plus précis.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    'Réalise la connection ADO
    Cnx.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
         "Data Source=" & FICHIER & ";Extended Properties=Excel 12.0"
    'Récupère toutes les tables (feuilles).
    Set TablesSchema = Cnx.OpenSchema(adSchemaTables)'Enregistre le nom de la feuille
    NomFeuille = Replace(Replace(Replace(TablesSchema!TABLE_NAME, "$", ""), "'", ""), "#", " ")
    'Définit la requête sur la feuille.
    texte_SQL = "SELECT * FROM [" & NomFeuille & "$]"     
    'créer le recordset pour executer la requête
    Set rst = New ADODB.Recordset
    Set rst = Cnx.Execute(texte_SQL)

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour, bonjour !

    La deuxième chaîne est différente de la première ‼ Y a même pas le même nombre de caractères, franchement …

    Voilà, voilà !

    _________________________________________________________________________________________________________
    Je suis Paris, Nice, Bruxelles, Charlie, …

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Deux Requete ADO identiques, l'une ne fonctionne pas
    Bonjour,
    Je vous remercie de vous en occuper aussi rapidement.

    Le problème ne vient pas de là car, il s'agit du même texte, c'est moi qui est écrit le message renvoyé et j'ai fais une faute en l'écrivant.

    Mon problème vient de plus loin, c'est en essayant de copier cette feuille dans mon classeur que j'ai eut une erreur car, il ne trouvait pas la feuille, alors que l'ensembles des feuilles venant d'autre classeurs fonctionnaient très bien jusqu'à présent.

    J'ai simplement constaté que cette feuille m'écrivait des "#", alors qu'il n'y avait pas de "#" dans le fichier source et j'ai voulue les supprimer sur cette dernière version en écrivant un replace() supplémentaire.

    Donc pour l'instant la problème est résolu en enlevant le replace() ça remarche mais Il faut que je mette mon replace() sur le remplissage de la listebox que je rempli pas un GetRows.

    Mais pour l'instant ce n'est pas encore fait, je vous tiendrais au courant.

  4. #4
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Problème résolu
    Bonjour,

    Je ne vois pas très clair, c'est en effet un "." qui est remplacé par un "#" par "adSchemaTables" et non par un espace " ". Il faut dire que je travail sur un Portable dont l'écran est un peu sale.

    Si ça peut servir à quelqu'un de savoir que adSchemaTables de ADODB.Recordset renvoi un "#" à la place d'un point "."

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Le point représente le séparateur entre la table et le champ [table].[champ] hors quand un [champ.quelque chose] ado replace le point par un caractères générique qui replace n'importe quel caractères [champ#quelque chose] !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] une requête appelée par un bouton ne fonctionne pas
    Par pup1523 dans le forum VBA Access
    Réponses: 12
    Dernier message: 27/06/2012, 09h47
  2. Avoir deux applications quasi identiques dans une même webapp, est-ce possible?
    Par mbraten dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 28/02/2011, 16h48
  3. Deux méthodes SQL dont une ne fonctionne pas ?
    Par bybelos33 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/03/2009, 15h12
  4. 2 requêtes identiques mais l'une ne fonctionne pas
    Par bybelos33 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 27/03/2009, 09h06
  5. [Conception] Deux codes identique mais un qui fonctionne pas
    Par fabrice88 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 01/08/2006, 17h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo