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

VBA Access Discussion :

Query réussie en manuel mais ODBC call failed en VBA


Sujet :

VBA Access

  1. #1
    Membre chevronné
    Inscrit en
    Février 2011
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 469
    Par défaut Query réussie en manuel mais ODBC call failed en VBA
    Bonjour,

    J'ai créé une requête sur le datawarehouse. Elle fonctionne très bien. Dans MS Access, quand je double-clique sur le nom de la requête, elle s'effectue parfaitement.

    Maintenant que cela fonctionne, je veux exécuter cette requête en VBA.

    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    currentdb.execute NomDeLaRequete
     
    dim dbs as DAO.Database
    Set dbs = Application.CurrentDb
    dbs.Execute strSQL, dbFailOnError
     
    DoCmd.RunSQL strSQL   où strSQL est mon statement SQL
     
     
    DoCmd.OpenQuery ("NomDeLaRequete")

    Toutes ces méthodes me donnent une erreur

    ODBC--call failed.
    [Microsoft][ODBC SQL Server Driver][SQL Server]The SELECT permission was denied on the object NomDeLaView, database NomDeLadbSQL, schema dbo. (#229)

    La seule raison qui me vient à l'esprit est la nature de cette vue SQL.
    D'habitude, sur ce serveur SQL les vues sont basées sur d'autres tables SQL. Ici, cette vue est basée sur une table Oracle.

    Avez-vous déjà eu ce genre d'erreur ?
    Comment l'avez-vous résolu ?

    Merci pour votre aide

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Ta requête est-elle une requête de modification ?

    Si non pour afficher le résultat tu as juste besoin de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenQuery ("NomDeLaRequete")
    Tout le reste du code ne sert à rien.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre chevronné
    Inscrit en
    Février 2011
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 469
    Par défaut
    Bonjour,

    Oui, la requête est bien une requête de modification. Elle ajoute des lignes à une table existante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    currentdb.execute "NomDeLaRequete"
    est suffisant pour exécuter la requête et toutes les autres lignes de codes sont là pour vous montrer les autres solutions que j'ai essayées.

    Aujourd'hui, j'ai essayé encore une autre solution :
    J'ai retiré toutes les autres requêtes, tables, formulaires, tous les autres modules, fonctions ou sub de ma base de données Access. Je n'ai gardé que la table dans laquelle la requête ajoute les lignes, le lien vers la vue SQL dans mon Data Warehouse et la fonction simplifiée avec la ligne currentdb.execute "NomDeLaRequete"

    Surprise : ça marche !!
    Pourquoi cela fonctionne-t-il dans ma base simplifée et pas dans la base originelle ?

    Je vais continuer à simplifier mon code pour mettre en évidence l'élément erroné.

    Merci pour l'intérêt que vous portez à mon problème.

  4. #4
    Membre chevronné
    Inscrit en
    Février 2011
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 469
    Par défaut
    Bonjour,

    A la suite de ma surprise de ce matin, j'ai modifié la séquence de mon processus.
    Cette base exécute environ 150 requêtes, l'une après l'autre. C'est une function VBA qui les lance. Cette requête-ci était exécutée au milieu de la liste.
    Fort heureusement, cette requête ne dépendait pas des résultats des autres requêtes et j'ai pu la déplacer en première position. Elle est donc exécutée au départ du processus.
    Maintenant, cela fonctionne. Je ne comprends pas pourquoi mais ça marche.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 01/02/2017, 20h54
  2. [AC-2003] Access 2003 ODBC Call Failed error
    Par Skullish dans le forum VBA Access
    Réponses: 11
    Dernier message: 06/06/2012, 13h16
  3. [AC-2007] "ODBC --call failed" au deuxième passage
    Par yonnel dans le forum Access
    Réponses: 4
    Dernier message: 10/06/2011, 11h15
  4. [AC-2010] Insert Into erreur "ODBC --Call Failed" avec un champ sql server Identify
    Par jayjazz dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 17/05/2011, 13h17
  5. [AC-2003] ODBC - Call Failled vers table SQL Server
    Par Marc_27 dans le forum VBA Access
    Réponses: 2
    Dernier message: 10/11/2009, 09h41

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