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 :

SQL : Trop peu de paramètres [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 95
    Points : 97
    Points
    97
    Par défaut SQL : Trop peu de paramètres
    Bonjour,

    Je travail sur Accès depuis le début de journée,j'ai créé plus d'une dizaine de requêtes et à chaque fois je me retrouve face au même message d'erreur. Jusqu'à présent, en bidouillant et pourtant sans rien changer au contenu, ma requête finissait par être acceptée et digérée. Cette fois-ci je ne trouve pas la solution. Pouvez-vous m'aider ?

    Voici le code :
    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
    24
    25
    26
    27
    28
    29
        Dim sem_debut As Integer
        Dim sem_fin As Integer
        Dim an_debut As Integer
        Dim an_fin As Integer
     
        Dim NbMoe As Double     ' variable donnant le total pour la main d'oeuvre
        Dim SQL_moe As String
        ' ========================================
        ' Définition des valeurs par défaut
        ' ========================================
        sem_debut = Form_BilanParDates.semaine_debut.Value
        sem_fin = Form_BilanParDates.semaine_fin.Value
        an_debut = Form_BilanParDates.annee_debut.Value
        an_fin = Form_BilanParDates.annee_fin.Value
        NbMoe = 0
        NbVehicules = 0
        NbMateriel = 0
        ' ========================================
        ' Calcl du total de la MAIN D'OEUVRE
        ' ========================================
        Set oDb = CurrentDb
        SQL_moe = "SELECT taux_horaire,duree_prod FROM CoutParticipants AS CP,Employes AS E,MainOeuvre AS MO WHERE " & _
            "E.nom = MO.nom AND " & _
            "E.prenom = MO.prenom AND " & _
            "E.poste = CP.participant AND " & _
            "MO.semaine BETWEEN " & sem_debut & " AND " & sem_fin & " AND " & _
            "MO.annee BETWEEN " & an_debut & " AND " & an_fin
     
        Set oRst = oDb.OpenRecordset(SQL_moe, dbOpenSnapshot)
    Et le message d'erreur :
    Trop peut de paramètres. 2 Attendus.

    En fonction des requêtes que j'ai fais, le nombre de paramètres attendus était différent, mais pourquoi me dit-il cela ?

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Deux des champs que tu as défini ne doivent pas exister ou porter un autre nom.

    Une solution simple pour faire du SQL avec Access est d'aller dans l'éditeur de requête, de faire ta requête par sélection de table et glisser déplacer puis de faire afficher le SQL correspondant. Après tu n'as plus qu'à le coller dans ton code ou faire un appel de requête paramétrée.

    Le SQL de Access ayant quelques particularité cette méthode fait gagner pas mal de temps.

    Pour touver l'erreur dans ta requête actuelle tu peux
    • mettre un point d'arrêt sur Set oRst = oDb.OpenRecordset(SQL_moe, dbOpenSnapshot)
    • et en utilisant la fenêtre d'exécution immédiate ([ctrl][g]) taper debug.print SQL_moe ce qui faire afficher le contenu de ta variable SQL_moe. Une fois cela fait tu va pouvoir vérifier si ce que tu voulais écrire est bien ce que Access a compris.
    • Si oui, créer une nouvelle requête et importe le SQL affiché par le debug.print dans cette nouvelle requête et essaye de passer en mode design. Cela devrait te donner des indications sur la source de ton problème.


    A+

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 95
    Points : 97
    Points
    97
    Par défaut
    Merci beaucoup pour cette réponse très complète.

    Ce que j'ai fais c'est ajouter la ligne :
    MsgBox SQL_moe
    et il semblerait que le résultat affiché soit bien la requête que je voulais. Je vais essayer de débuger et de l'exécuter selon tes indications, si besoin je reviendrais ici.

    Merci

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 95
    Points : 97
    Points
    97
    Par défaut
    Merci,

    En passant en mode design j'ai compris que le champ semaine que j'allais cherché dans la table "MainOeuvre" ne se situe pas dans cette table en faite.

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

Discussions similaires

  1. erreur requète SQL : trop peu de paramètres
    Par pierre.egaud dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 21/04/2006, 14h57
  2. Réponses: 3
    Dernier message: 04/04/2006, 19h59
  3. Réponses: 4
    Dernier message: 15/03/2006, 16h47
  4. erreur :Trop peu de paramètres, C'est koi??
    Par nickg dans le forum ASP
    Réponses: 18
    Dernier message: 06/01/2006, 15h59
  5. erreur trop peu de paramétre. un attendu ??
    Par Amandine62 dans le forum ASP
    Réponses: 3
    Dernier message: 25/01/2005, 15h00

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