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 Access Discussion :

ODBC -- Appel échoué [AC-2007]


Sujet :

Macros Access

  1. #1
    Candidat au Club
    Homme Profil pro
    PHARMA
    Inscrit en
    Août 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : PHARMA
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2014
    Messages : 7
    Points : 3
    Points
    3
    Par défaut ODBC -- Appel échoué
    Bonjour à tous,

    Nouveau sur le forum, j'ai développé une base access avec AC2007.
    J'ai commencé par mettre mes bases dorsales (contenant uniquement les tables) sur le réseau interne de mon entreprise, base frontale évidemment en locale sur chaque PC utilisateur.
    Tout fonctionne nikel avec les inconvénients que comporte toute connexion réseau, lorsque le nombre d'utilisateur est élevé ça rame...
    Du coup j'ai décidé de basculer ces fameuses bases dorsales sous SQL et c'est là que j'ai un problème.
    Le code ci dessous qui fonctionnait parfaitement lorsque les bases dorsales étaient sur le réseau me renvoie l'erreur "ODBC--Appel échoué" lorsque cette même table à migrer sous SQL (en utilisant l'assistant Access, car peu de connaissance sous SQL)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Me.cListeLien.Form.Recordset = CurrentDb.OpenRecordset("SELECT * FROM Tab_Inter_Lien WHERE Tab_Inter_Lien.IndexInter=" & Current_Enrg & " ORDER BY Tab_Inter_Lien.Lien ASC", dbOpenSnapshot, dbSeeChanges) '
    PS: Mes accès à SQL ont été vérifiés, j'ai les bons droits

    Si quelqu'un a une idée, merci par avance pour votre aide

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour

    Est-ce que tu peux faire exécuter la requête avec l'assistant de création de requête d'Access ?

    Est-ce que cette requête retourne beaucoup d'enregistrements ?

    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
    Candidat au Club
    Homme Profil pro
    PHARMA
    Inscrit en
    Août 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : PHARMA
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2014
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Bonjour Marot,
    N'étant pas un expert SQL, quand tu parles d'assistant de création de requetes, c'est avec Access ou sur SQL ?

    PS: juste pour info j'utilise SQL server Management studio 2008

  4. #4
    Candidat au Club
    Homme Profil pro
    PHARMA
    Inscrit en
    Août 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : PHARMA
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2014
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Oups !!
    J'ai lu le message un peu vite !! La réponse est dans ton message. Je check et te tiens informé

  5. #5
    Candidat au Club
    Homme Profil pro
    PHARMA
    Inscrit en
    Août 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : PHARMA
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2014
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Je viens de tester en créant la requêtes avec l'assistant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Tab_Inter_Lien.[IndexInter], Tab_Inter_Lien.[Lien]
    FROM Tab_Inter_Lien
    Je n'ai pas d'erreur et ca me renvoie pas de résultat ==> Table vide ==> normale je n'ai encore rien saisie dans cette table

    Par contre je viens de remarquer qu'en rajoutant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Tab_Inter_Lien.[IndexInter], Tab_Inter_Lien.[Lien]
    FROM Tab_Inter_Lien
    ORDER BY Tab_Inter_Lien.Lien ASC;
    Il me renvoie l'erreur ODBC-Appel échoué , en me disant que [lien] étant de type nText il ne peut pas être trié, du coup je vais tester avec ID qui est une valeur numérique pour voir si cela marche.

    Ca avance dans le debug, par contre bizarre que SQL me renvoie une erreur alors que lorsque la table lié est sur Access pas d'erreur

  6. #6
    Candidat au Club
    Homme Profil pro
    PHARMA
    Inscrit en
    Août 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : PHARMA
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2014
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Dans mon code, j'ai donc remplacé ".lien" par ".ID"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Me.cListeLien.Form.Recordset = CurrentDb.OpenRecordset("SELECT * FROM Tab_Inter_Lien WHERE Tab_Inter_Lien.IndexInter=" & Current_Enrg & " ORDER BY Tab_Inter_Lien.ID ASC", dbOpenSnapshot, dbSeeChanges)
    L'erreur renvoyé est "L'expression entrée fait référence à un objet fermé ou supprimé"

    Merci pour ton aide

  7. #7
    Candidat au Club
    Homme Profil pro
    PHARMA
    Inscrit en
    Août 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : PHARMA
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2014
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    Grâce à ton aide, j'ai pu voir que l'erreur venait d'un pb de type de champ sur lequel "ORDER BY" ne pouvait s'appliquer ce qui renvoyait l'erreur.
    ORDER BY ne s'applique pas sur des champs de type "text" ou "ntext". Du coup j'ai remplacé par "nvarchar" ca marche nikel.

    Par contre en poursuivant le test de mon code, je me retrouve avec un nouveau problème. toujours lié au fait que sur lorsque les tables sont sur le réseau cà marche nikel, une fois sur SQL j'ai des erreurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set parent.Form.SF_Modele_PM_Param.Form.Recordset = CurrentDb.OpenRecordset("SELECT * FROM Tab_Modele_PM_Param WHERE ID=-1", dbOpenSnapshot, dbSeeChanges)
    Me renvoie l'erreur ==> L'expression entrée fait référence à un objet fermé ou supprimé

    Je ne comprends pas pourquoi ?

    MErci de votre support

  8. #8
    Candidat au Club
    Homme Profil pro
    PHARMA
    Inscrit en
    Août 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : PHARMA
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2014
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Problème soldé.
    J'ai effectué la migration de mes tables access vers SQL avec l'assistant Access.
    Et ce dernier avait converti certains de mes champs de type "memo" en champ de type "Text" ou "ntext". Pour ces 2 derniers, bon nombre de requêtes utilisant DISTINCT, ORDER BY etc.... ne fonctionnait pas avec le type "text". Par conséquent j'ai converti tous les "text/nText" en "Nvarchar(MAX)" ==> ca fonctionne parfaitement !

    Merci encore pour l'aide, je ne pourrai pu trouver ce problème sans l'astuce de débugger en inscrivant les requêtes sous SQL et compiler.

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

Discussions similaires

  1. [AC-2003] Erreur d'exécution 3146, ODBC -- l'appel a échoué
    Par flet le kid dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 23/06/2017, 16h34
  2. [AC-2003] Lien SQL Server - ODBC l'appel a échoué
    Par tototiti2008 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 22/10/2010, 14h18
  3. [AC-2003] "ODBC -- Appel échoué" lors de l'ouverture d'une table sql dans access
    Par benoit27 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 25/06/2009, 10h50
  4. Probleme ODBC (l'appel ODBC a échoué)
    Par Clement3829 dans le forum VBA Access
    Réponses: 4
    Dernier message: 30/03/2009, 10h22
  5. ODBC -- l'appel a échoué
    Par lorang dans le forum Access
    Réponses: 3
    Dernier message: 28/06/2006, 10h35

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