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 :

Code ne s'execute pas [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 67
    Points : 46
    Points
    46
    Par défaut Code ne s'execute pas
    Bonjour,

    j'ai un formulaire avec un bouton qui effectue divers opérations et qui fonctionne parfaitement.

    Je copie ce code sur un deuxième bouton en y modifiant certains paramètres.

    Dans le code du premier bouton, j'extrait des champs d'un table en lecture seule pour en créer une nouvelle.

    Il y le nom de la requête pour créer la table qui est différent et le code sql pour créer la table. J'ai testé manuellement et ça fonctionne.

    L'autre différence est que j'ai placé le code dans une procédure que j'appelle sur le bouton en question car j'ai un autre bouton similaire.

    Voici le code en question:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Dim Db As DAO.Database
    Dim Rc As DAO.QueryDef
    Dim Sql1 As String
    Dim Van As String
     
    Van = Me.tAn
    Set Db = CurrentDb
     
     Sql1 = "SELECT DISTINCT dbo_E_Freq.Fiche, dbo_E_Ele.Nom, dbo_E_Ele.Pnom, dbo_E_Freq.Annee, dbo_E_Freq.SrcFinan, '' AS Actif, CLng(0) AS Blochres, dbo_E_Ele.CodePerm, " _
      & "dbo_E_Freq.IndTransm, RmaxGrhEle.MaxDeDateInscrip, '' AS Remarque, '' AS Organisme, '' AS Enseignant, '' AS ADJ INTO tmp " _
    & "FROM (dbo_E_Freq INNER JOIN dbo_E_Ele ON dbo_E_Freq.Fiche = dbo_E_Ele.Fiche) INNER JOIN RmaxGrhEle ON dbo_E_Freq.Fiche = RmaxGrhEle.Fiche " _
    & "WHERE (((dbo_E_Freq.Annee)=" & Van & "));"
     
      Set Rc = Db.CreateQueryDef("RqlDossierEleC", Sql1)
      Set Rc = Db.QueryDefs("RqlDossierEleC")
     
      Rc.Execute
    Pour le bouton 2, voici le changement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
     
    ' Procédure qui détermime les fréquentations avec les champs approprié pour le rapport des organismes.
    Call RapportNC
     
     
    Dim Db1 As DAO.Database
    Dim Rc1 As DAO.QueryDef
    Dim Van As String
    Dim Sql1 As String
     
    Set Db1 = CurrentDb
      Sql1 = "SELECT dbo_E_Freq.Fiche, XCrepRmaxGrhEle.Grh AS Groupe, XCrepRmaxGrhEle.Grh, dbo_E_Ele.Nom, dbo_E_Ele.Pnom, dbo_E_Freq.Annee, dbo_E_Freq.IndTransm, " _
      & "XCrepRmaxGrhEle.MaxDeDateInscrip, '' AS Remarque,  '' AS Enseignant, '' AS ADJ, '' AS DateDeb, '' AS DateFin, '' AS Organisme,  '' AS Commentaires INTO tmp " _
    & "FROM (XCrepRmaxGrhEle INNER JOIN dbo_E_Ele ON XCrepRmaxGrhEle.Fiche = dbo_E_Ele.Fiche) INNER JOIN dbo_E_Freq ON dbo_E_Ele.Fiche = dbo_E_Freq.Fiche " _
    & "WHERE (((dbo_E_Freq.Annee)=" & Van & "));"
     
     
     
      Set Rc1 = Db1.CreateQueryDef("XCrepRqlEleC", Sql1)
      Set Rc1 = Db1.QueryDefs("XCrepRqlEleC")
      Rc1.Execute

    Pourquoi la requête du bouton deux ne s'execute pas ??


    Merci
    Pierre

  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.

    As-tu suivi ton code pas à pas pour vérifier qu'il est bien appelé ?

    Si oui. remplace

    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Rc.Execute(dbFailOnError)
    cela devrait te donner une piste sur la cause du problème.

    En passant tu pourrais faire plus direct :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sql1 = "SELECT DISTINCT dbo_E_Freq.Fiche, dbo_E_Ele.Nom, dbo_E_Ele.Pnom, dbo_E_Freq.Annee, dbo_E_Freq.SrcFinan, '' AS Actif, CLng(0) AS Blochres, dbo_E_Ele.CodePerm, " _
      & "dbo_E_Freq.IndTransm, RmaxGrhEle.MaxDeDateInscrip, '' AS Remarque, '' AS Organisme, '' AS Enseignant, '' AS ADJ INTO tmp " _
    & "FROM (dbo_E_Freq INNER JOIN dbo_E_Ele ON dbo_E_Freq.Fiche = dbo_E_Ele.Fiche) INNER JOIN RmaxGrhEle ON dbo_E_Freq.Fiche = RmaxGrhEle.Fiche " _
    & "WHERE (((dbo_E_Freq.Annee)=" & Van & "));"
     
    call db.execute(sql, dbFailOnError)
    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 du Club
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 67
    Points : 46
    Points
    46
    Par défaut
    Bonjour Marot_r,

    J'ai remplacé comme tu me l'as dit avec les commandes sans succès.

    Lorsque je l'exécute en pas à pas la création de table ne se fait pas.

    Je plane en plein nuage !!

    J'execute le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    call db.execute(sql, dbFailOnError)
    J'ai le message erreur 3061 trop peu de paramètre !


    Pourquoi le code ne fonctionnerai pas sur le deuxième bouton ?

    Merci

    Pierre

  4. #4
    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
    J'ai le message erreur 3061 trop peu de paramètre !
    Tu as probablement une erreur de syntaxe dans les noms de tes champs.

    1. Met un point d'arrêt juste après la création du SQL.
    2. Fait afficher la fenêtre d'exécution immédiate en appuyant sur [ctrl][g]
    3. tape ? Sql1 [enter]
    4. Sélectionne le résultat et copie le dans le SQL d'une requête
    5. Demande l'exécution, Access devrait te dire ce qui lui manque et cela devrait te permettre de savoir où est le problème.


    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.

  5. #5
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    marot_r

    gagpie

    Je ne vois pas la déclaration de Van dans la partie supérieure ne faudrait il pas Van = Me.tAn

    Ensuite étonnant que la variable déclarée soit de type String alors qu'elle semble plutôt correspondre à un numérique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set Db1 = CurrentDb
      Sql1 = "SELECT dbo_E_Freq.Fiche, XCrepRmaxGrhEle.Grh AS Groupe, XCrepRmaxGrhEle.Grh, dbo_E_Ele.Nom, dbo_E_Ele.Pnom, dbo_E_Freq.Annee, dbo_E_Freq.IndTransm, " _
      & "XCrepRmaxGrhEle.MaxDeDateInscrip, '' AS Remarque,  '' AS Enseignant, '' AS ADJ, '' AS DateDeb, '' AS DateFin, '' AS Organisme,  '' AS Commentaires INTO tmp " _
    & "FROM (XCrepRmaxGrhEle INNER JOIN dbo_E_Ele ON XCrepRmaxGrhEle.Fiche = dbo_E_Ele.Fiche) INNER JOIN dbo_E_Freq ON dbo_E_Ele.Fiche = dbo_E_Freq.Fiche " _
    & "WHERE (((dbo_E_Freq.Annee)=" & Van & "));"
    Si malgré tout, après la déclaration de ta variable çà ne fonctionne toujours pas tu peux toujours ajouter un debug.print Sql1 et récupérer la chaîne dans l'éditeur VBA (suivre les indications de Marot) !

    Cordialement

    Jimbolion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 67
    Points : 46
    Points
    46
    Par défaut
    Bonjour à vous deux,

    Merci pour vos précieux conseils.

    J'ai finalement contourné le problème, en exécutant un Docmd.openquery.

    Mais, je vais y revenir plus tard, car les rapports pressaient.


    Merci infiniment.


    Vive le Forum !!!


    Pierre

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

Discussions similaires

  1. j'ai une erreur à l'execution de ce code je ne sais pas pourquoi
    Par jack_1981 dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 28/01/2008, 11h29
  2. [MySQL] partie de code qui ne s'execute pas
    Par ayisse dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/07/2007, 17h40
  3. Code dans la fonction GUI_Opening qui ne s'execute pas
    Par AsmaHaj dans le forum Interfaces Graphiques
    Réponses: 10
    Dernier message: 16/05/2007, 19h31
  4. [Mail] Les codes PHP ne s'executent pas
    Par Rajhonson dans le forum Langage
    Réponses: 4
    Dernier message: 28/11/2006, 13h40
  5. probleme code vba ne s'execute pas apres instruction sql
    Par arnogef dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 29/12/2005, 12h34

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