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 :

Exécuter une procédure stockée Sql Via VBA


Sujet :

VBA Access

  1. #1
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut Exécuter une procédure stockée Sql Via VBA
    bonjour,

    Je souhaite éxécuter une procédure stockée Sql via VBA.

    Lorsque je la lance à partir de l'analyseur de requête, la procédure s'éxécute normalement, mais elle plante avec Vba.

    Je pense que c'est un problème de format de date, car je ne vois pas d'autre explications, mais je n'arrive pas à résoudre l'anomalie.

    Pouvez-vous m'aider ?

    Voici la syntaxe que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    datedeb = InputBoxdate("Veuillez saisir la date de début de la promotion", "SAISIR DATE", "Début Flyer")
    datefin = InputBoxdate("Veuillez saisir la date de fin de la promotion", "SAISIR DATE", "Fin Flyer")
     
                datedeb = Format(datedeb, "mm/dd/yyyy")
                datedeb = Format(datefin, "mm/dd/yyyy")
     
           Set rcd = ConnectODBC.OpenRecordset("EXEC Buro_Tarifs_Promo_1 @Fichier_Origine = 'CatSpicers.txt'")
           Set rcd = ConnectODBC.OpenRecordset("SET LANGUAGE US_ENGLISH " & _
                    "EXEC Buro_Tarifs_Promo_2 @Date1 = 'datedeb', @Date2 = 'datefin'")
    Merci d'avance pour votre aide.

    Daniel

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set rcd = ConnectODBC.OpenRecordset("SET LANGUAGE US_ENGLISH " & _
                    "EXEC Buro_Tarifs_Promo_2 @Date1 = '" & datedeb & "', @Date2 = '" & datefin & "'")
    [Access] Les bases du débogage => ici

  3. #3
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut
    Bonjour,

    Merci pour ta réponse kloun, mais le problème persite.

    J'ai le message suivant :

    L'appel ODBC à échoué...
    Je ne comprend ce qui se passe !!

    Que veut dire ce message.

    Je ne pense pas que ce soit un problème de connexion ODBC, puisque je l'utilise déjà dans mon code.

    Merci pour aide.

    Daniel

  4. #4
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 898
    Points : 4 787
    Points
    4 787
    Par défaut
    Bonsoir ,
    vois aussi du coté du code de LedZep
    http://www.developpez.net/forums/d67...a/#post3984711
    "Always look at the bright side of life." Monty Python.

  5. #5
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut
    Bonsoir,

    Merci Micniv pour ton post.

    Je viens d'effectuer de nouveaux test, et j'ai pu m'assurer que c'est bien un problème de format de date.

    En effet, quand ma plage de date est la suivante :

    Datedeb : 02/03/2009
    Datefin : 10/03/2009

    La procédure stockée est bien exécutée, en revanche si ma plage de date est :
    Datedeb : 02/03/2009
    Datefin : 21/03/2009

    le message suivant s'affiche :
    L'appel ODBC à échoué...
    J'ai essayé en changeant le format de date :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    datedeb = Format(datedeb, "mm/dd/yyyy")
    datefin = Format(datefin, "mm/dd/yyyy")
    sans succès.

    Existe t-il une syntaxe particulière pour modifier le format de date ?

    Merci pour votre aide.

    Daniel

  6. #6
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 898
    Points : 4 787
    Points
    4 787
    Par défaut
    Hello,

    Comment sont déclarés tes paramètres sur Sql Server : en datetime ?

    sinon j'ai vu ce tuto qui passe des dates à une ps :
    http://barlatier.developpez.com/csha...stockee/cours/

    "Always look at the bright side of life." Monty Python.

  7. #7
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut
    Salut micniv,

    Effectivement les paramètres sont bien déclarés en datetime.

    Je poursuis mes recherches et je reste impatient de trouver la réponse.

    @+

    Daniel

  8. #8
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    Et avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datedeb = Format(datedeb, "mm\/dd\/yyyy")
    Cela change quelque chose ?

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  9. #9
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 898
    Points : 4 787
    Points
    4 787
    Par défaut
    re_hello,

    voici une syntaxe qui fonctionne (chez moi) :
    qui consiste à déclarer un type adDBdate et à passer une valeur de ce type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    .Parameters.Append .CreateParameter("@dt1", adDBDate, adParamInput, 10, CDate("02/02/2009"))
    .Parameters.Append .CreateParameter("@dt2", adDBDate, adParamInput, 10, CDate("21/02/2009"))
    A+
    "Always look at the bright side of life." Monty Python.

  10. #10
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim iDat_Deb as date
    Dim iDat_Fin as date 
        iDat_Deb = InputBoxdate("Veuillez saisir la date de début de la promotion", "SAISIR DATE", "Début Flyer")
        iDat_Fin= InputBoxdate("Veuillez saisir la date de fin de la promotion", "SAISIR DATE", "Fin Flyer")
     
        Set rcd = ConnectODBC.OpenRecordset("EXEC Buro_Tarifs_Promo_1 @Fichier_Origine = 'CatSpicers.txt'")
        Set rcd = ConnectODBC.OpenRecordset("SET LANGUAGE US_ENGLISH " & _
                                            "EXEC Buro_Tarifs_Promo_2 @Date1 = '" & format(iDat_Deb, "MM\/DD\/YYYY") & "', @Date2 = '" & format(iDat_Deb, "MM\/DD\/YYYY") &"'")
    [Access] Les bases du débogage => ici

  11. #11
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut
    Bonjour,

    Je viens de teste la solution de Kloun et BONNE NOUVELLE, ça fonctionne.

    Mon souci provenait bien de la date.

    En effet l'expression suivante
    datedeb = Format(datedeb, "mm/dd/yyyy")
    ne transformait pas la date dans le format désiré.

    Enfin c'est réglé, encore merci pour votre aide.


    Daniel

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

Discussions similaires

  1. [WD16] Connexion SQL SERVEUR pour exécuter une procédure stockée
    Par philippe30 dans le forum WinDev
    Réponses: 10
    Dernier message: 17/10/2023, 20h54
  2. Exécuter une procédure stockée sous SQL*Plus
    Par awalter1 dans le forum PL/SQL
    Réponses: 7
    Dernier message: 02/10/2012, 11h01
  3. Exécuter une procédure stockée PL/SQL Oracle sous Talend
    Par robinson50 dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 03/11/2008, 10h51
  4. Réponses: 2
    Dernier message: 20/03/2007, 17h00
  5. Exécution d'une procédure PL/SQL via un dblink
    Par yador dans le forum PL/SQL
    Réponses: 4
    Dernier message: 13/03/2007, 08h42

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