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

VB 6 et antérieur Discussion :

Erreur d'exécution :La méthode 'Open' de l'objet '_Recorset' a échoué


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Points : 124
    Points
    124
    Par défaut Erreur d'exécution :La méthode 'Open' de l'objet '_Recorset' a échoué
    Bonjour,
    mon problème est que lorsque j'exécute le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    MaChaine = "SELECT * FROM local ORDER BY CINT (MID(mat_loc,5))"
    With MyRecord
    If .State <> adStateClosed Then .Close
    .CursorLocation = adUseServer
    .LockType = adLockOptimistic
    .CursorType = adOpenKeyset
    .Source = MaChaine
    Set .ActiveConnection = MyCon
    .Open
    End With
    le débogeur s'arrete à la ligne en rouge et j'ai le message d'erreur suivant :
    Erreur d'exécution '-2147467259(80004005)'
    La méthode 'Open' de l'objet '_Recorset' a échoué
    Je voudrais savoir d'où vient l'erreur et comment y remedier
    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Hmm... Sais pas.

    Une hypothèse : le résultat de la ligne
    a peut-être pour effet d'ouvrir implicitement ton RecordSet...

    As-tu essayé de mettre la ligne qui provoque l'erreur en commentaire et d'exécuter ton code pour voir ce que ça donne ? (pour vérifier mon hypothèse)

  3. #3
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 172
    Points
    17 172
    Par défaut
    Que contient mat_loc ?
    Order by NonDuChamps, laisant penser que mat_loc contient justemant le nom du champs, la construction de MaChaine devrait être plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaChaine = "SELECT * FROM Configue ORDER BY " & Mid(mat_loc, 5, 1)
    de plus Cint me semble des plus suspect, le nom d'un champs dans une table etant de type String, encore une chose, Mid attend 3 parametres.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Membre régulier Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Points : 124
    Points
    124
    Par défaut
    je voudrais savoir pourquoi le meme code marche ailleurs, sur d'autres modules dans le meme programme et sur d'autres il m'envoie le message d'erreur meme quand je change le code avec celui ci par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyRecord.Open MaChaine, MyCon, adOpenKeyset, adLockOptimistic, adCmdText

  5. #5
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 172
    Points
    17 172
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaChaine = "SELECT * FROM local ORDER BY CINT (MID(mat_loc,5))"
    CInt => Convertit une expression en Integer

    Citation Envoyé par Référence SQL
    ORDER BY, clause
    Syntaxe

    SELECT fieldlist FROM table WHERE selectcriteria [ORDER BY field1 [ASC | DESC ][, field2 [ASC | DESC ]][, ...]]]

    Une instruction SELECT contenant une clause ORDER BY se compose des éléments suivants*:

    Élément Description
    fieldlist Noms du ou des champs à extraire avec leurs alias de nom de champ, fonctions de regroupement SQL, prédicats de sélection (ALL, DISTINCT, DISTINCTROW, ou TOP) ou autres options d'instruction SELECT.

    table Nom de la table contenant les enregistrements à extraire. Pour plus d'informations, reportez-vous à la rubrique relative à la clause FROM.

    selectcriteria Critères de sélection. Si l'instruction contient une clause WHERE, le moteur de base de données Microsoft Jet trie les valeurs après avoir appliqué les conditions WHERE aux enregistrements.

    field1, field2 Noms des champs sur lesquels doit porter le tri.
    Citation Envoyé par bruce207
    le meme code marche ailleurs ..........
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    et ta variable elle est définie partout de la même façon ?

  7. #7
    Membre régulier Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Points : 124
    Points
    124
    Par défaut
    Bonjour,
    j'utilise CINT ici parceque ma table mat_loc est de type Text et que les enregistrements sont dans l'ordre alphanumérique et sont commposé comme suit LOCAL1, LOCAL10, LOCAL2,..., LOCAL9. Donc ceci c'est dans le but de les ordonner. Voici mon application en piece jointe pour que vous voyer de quoi je parle
    Fichiers attachés Fichiers attachés

  8. #8
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 172
    Points
    17 172
    Par défaut
    Merci pour les eclairsissements.
    Malheureusement tu ne peux pas adopter cette façon de faire, tu ne peux trier que par ordre alphanumérique (code ascii de chaque caractère) ton champs etant de type String.
    Tu ne pouras reclasser que l'ensemble des enregistrements renvoyés, dans une boucle.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  9. #9
    Membre régulier Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Points : 124
    Points
    124
    Par défaut
    J'ai changé ma requete mais la meme erreur persiste. Je voudrais savoir les causes l'echec de la methode Open d'un recordset.

  10. #10
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 172
    Points
    17 172
    Par défaut
    J'utilise Visidata version 6.0, et je ne parviens pas a ouvrir ta base de données, avec un petit prog VB, même probleme.
    Dans ton fichier Alire.txt, tu indiques les Forms qui demande l'ouverture du recordset et qui semble fonctionner, elles sont toutes gérées si l'ouverture échoue, de fait aucune ne réalisent l'ouverture.
    Pour bbil, MyRecord et declaré dans un module en public

    Désolé, soit je n'ai pas la reference permetant d'ouvrire ta BD, soit ta BD est corrompue, je ne peu donc t'apporter plus de d'aide, ne pouvant verifier les parametres de ta BD (nom des tables, nom et type des champs .......)
    Bon courage pour la suite.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  11. #11
    Membre régulier Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Points : 124
    Points
    124
    Par défaut
    Ouf! j'ai trouvé, le problème venait du nom de la table local qui est ou doit etre un mot clé d'ACCESS.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaChaine = "SELECT * FROM local ORDER BY CINT (MID(mat_loc,5))"
    apres l'avoir changé tout est rentré dans l'ordre. Merci à tous et à Progelect donc le post m'a un peu guider sur ma bdd.

  12. #12
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Bruce207 c'est un probleme classique de la programmation SQL ; quand tu as ce genre de problemes faire toujours des essais avec un copier coller dans le generateur de requetes de Ms Access ou l'outil de SQL-SERVER pour pouvoir tester la requeete

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

Discussions similaires

  1. [XL-2007] Erreur d'exécution 1004 La méthode Select de l'Objet Worksheet a échoué !
    Par Nonno 94 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 08/11/2013, 15h39
  2. Réponses: 12
    Dernier message: 07/05/2010, 15h48
  3. La méthode open de l'objet connection a échoué
    Par amirad dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 19/03/2009, 12h28
  4. Réponses: 6
    Dernier message: 08/01/2009, 11h06
  5. ERREUR:la méthode open de l'objet recordset a échoué
    Par ashash dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/07/2007, 13h06

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