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

Access Discussion :

probleme de requetes VBA/ACESS. erreur execution 3251


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut probleme de requetes VBA/ACESS. erreur execution 3251
    bonjour. j'ai un souscis avec une requete access sous vba.
    il me marque

    erreur execution 3251
    too few parameters. expected 9

    il bloque sur l'executiion de la requete

    voila 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    Option Compare Database
    
    Private Sub Commande31_Click()
    
    
    
    'definition des type requetes'
    Dim reqajout As DAO.QueryDef
    Dim reqsuppr As DAO.QueryDef
    Dim rcs As DAO.Recordset
    
     'référence à la requête
    
    Set reqsuppr = CurrentDb.QueryDefs("suppression_champs_movex")
    Set reqajout = CurrentDb.QueryDefs("ajout_en_attente")
    
        
        
        
    'definition du recordset de texte'
    Dim rstTemp As Recordset
    'definition du compteur'
    Dim intCount As Integer
    'definition du boolean suivant'
    Dim booNext As Boolean
    'Definition dun champs temporaire de test'
     Dim Tempcode As Integer
    
    Dim temp As String
    
        
    'passer a la ligne'
    Set rstTemp = Me.Recordset
    
        
    
    
    'initialisation des variable'
    booNext = True
            
    'Valeur du numéro?????'
    intCount = 1
           
    With rstTemp
                
     Do While booNext
       'Tant qu'il y a des lignes apres, faire'
                Do While Not .EOF
                                     
                    'Définition de la clé'
                    Tempcode = OACUNO
                                        
                        'tant que lon à le meme code, faire'
                        Do While Not (Tempcode <> OACUNO) Or .EOF
                        
                            'ajout de champs dans la variable'
                            temp = temp & " " & OACUNO
                            .MoveNext
                        Loop
                    
                    'parametrage du numéro de reclamation pour la requete'
                    reqajout.Parameters("Clé") = Tempcode
                    'lancement de la requete d'ajout Movex --> En_attente'
                    reqajout.Execute
                    
                    'parametrage du numéro de reclamation pour la requete'
                    reqsuppr.Parameters("numreclam") = Tempcode
                    'lancement de la requete de suppression'
                    reqsuppr.Execute
                    
                Loop
                        
        'passage a la ligne suivante'
        booNext = .NextRecordset
        intCount = intCount + 1
      Loop
        
    End With
     
    rstTemp.Close
    
        
    End Sub

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,

    D'après l'erreur et à la lecture de ton code, j'ai l'impression qu'il s'agit de requêtes SQL direct (aussi dénommées SQL pass-through) qui seraient mal reconnues par Access.

    Pourrais-tu donner le SQL de la requête "ajout_en_attente" ?

    j'ai un souscis avec une requete access sous vba.
    il me marque

    erreur execution 3251
    too few parameters. expected 9

    il bloque sur l'executiion de la requete

    voila 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
    ...
    'definition des type requetes'
    Dim reqajout As DAO.QueryDef
    Dim reqsuppr As DAO.QueryDef
    ...
    
     'référence à la requête
    
    Set reqsuppr = CurrentDb.QueryDefs("suppression_champs_movex")
    Set reqajout = CurrentDb.QueryDefs("ajout_en_attente")
    
    ...                
                    'parametrage du numéro de reclamation pour la requete'
                    reqajout.Parameters("Clé") = Tempcode
                    'lancement de la requete d'ajout Movex --> En_attente'
                    reqajout.Execute
                    
                    'parametrage du numéro de reclamation pour la requete'
                    reqsuppr.Parameters("numreclam") = Tempcode
                    'lancement de la requete de suppression'
                    reqsuppr.Execute
    ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    c'est une requete deja creer sous access...

    le contenu de cette requete est :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO En_attente ( Numéro, OARONO, OAOREF, OACUNO, OAALCU, OAORNO, TLTX60, OAOSDT, OBITNO, A_Jour, OBORQT, Ancien_Num_commande, Nouveau_Num_commande, Référence_livrée, Quantité_livrée, Date_préparation, Type_conditionnement, Magasinier, BP_dispo, Cause_erreur, Inventaire_tournant, Erreur_confirmée, Commentaire, Coutant_de_largent, Magasin_ou_preparation )
    VALUES (NULL, Movex.OARONO, Movex.OAREF, [Clé], Movex.OAALCU, Movex.OAORNO, temp, Movex.OAOSDT, Movex.OABITNO, 0, Movex.OBORQT, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    "Too few parameters" indique que des champs de ta requête ne sont pas reconnus et qu'il attend que tu lui fournisse une valeur.

    Pourquoi ne pas avoir testé ce sql dans une requête stockée pour voir quels paramètres étaient manquant ? En l'executant via VBA, tu ne voies pas cette information mais juste le message d'erreur.

    Toujours tester ses requêtes dans une requête stockée avant de les passer en VBA...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    un grand Merci.

    le truc c'est que l'on me demande de les faire sous acceess et de les executer comme ca via VBA...


    Comment donc lui dire que les valeurs sont dans la base Movex et quil doit les stocker dans la base en_attente?

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Merci d'avoir donné le code SQL.
    Je comprends mieux le souci d'Access qui ne sait pas comment valoriser certains éléments de la clause VALUES et, du coup, les considère comme étant des paramètres:
    * Movex.OARONO,
    * Movex.OAREF,
    * Movex.OAALCU,
    * Movex.OAORNO,
    * temp,
    * Movex.OAOSDT,
    * Movex.OABITNO,
    * Movex.OBORQT.

    Citation Envoyé par schwinny
    c'est une requete deja creer sous access...
    Tu dois trouver des exemples d'utilisation de cette requête et t'en inspirer.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    le probleme est qu'il y en a pas

    mais je ne comprend pas comment cela se fait il qu'il ne sait pas retoruver les champs...
    Movex.champs lui indique pas que c'est stocker dans la table movex et que c'est la valeur champ?

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Regarde la syntaxe d'un : INSERT INTO ... SELECT. Une petite recherche dans les cours, la fax ou le forum te donneront surement les détails.

    Ca répondra à ton besoin

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    merci.

    donc apparament je devrais faire...

    INSERT INTO en_attente SELECT mes champs movex….FROM movex WHERE

    il me mettra mes values automatiquement...?

    je vais tester ca

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    Donc access bloque au meme endroit...

    mais cette fois j'ai fait comme requete

    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
    INSERT INTO En_attente
    SELECT OARONO AS OARONO, OAREF AS OAREF, [Clé] AS OACUNO, OAALCU AS OAALCU,
     OAORNO AS OAORNO, temp AS TLTX60, OAOSDT AS OAOSDT, 
    OABITNO AS 
    OABITNO, A_Jour AS A_Jour, OBORQT AS OBORQT, 
    Ancien_Num_commande AS Ancien_Num_commande, 
    Nouveau_Num_commande AS Nouveau_Num_commande, Référence_livrée AS 
    Référence_livrée, Quantité_livrée AS Quantité_livrée, Date_préparation AS Date_préparation, Type_conditionnement 
    AS Type_conditionnement, Magasinier AS Magasinier, BP_dispo AS BP_dispo, 
    Cause_erreur AS 
    Cause_erreur, Inventaire_tournant AS Inventaire_tournant, Erreur_confirmée AS Erreur_confirmée, Commentaire AS Commentaire, 
    Coutant_de_largent AS 
    Coutant_de_largent, Magasin_ou_preparation 
    AS Magasin_ou_preparation
    FROM Movex;
    et il me marque comme erreur:

    3061... Too few parameters... 4 expected...

    cela voudrait il dire quil y a 4 champs que access ne reconnait pas?



    EDIT: en lancant la requete a la main, il me demande les champs Clé, temp, oabitno et oaref...

Discussions similaires

  1. [AC-2003] probleme de requete vba
    Par tyjez dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 06/05/2014, 21h41
  2. [VBA] Aide Erreur execution !!
    Par Virgile59 dans le forum VBA Access
    Réponses: 2
    Dernier message: 10/02/2006, 12h01
  3. Probleme avec requete, une erreur survient...
    Par charleshbo dans le forum Access
    Réponses: 6
    Dernier message: 09/02/2006, 14h27
  4. 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
  5. erreur mysql... probleme de requete
    Par om.rava dans le forum Requêtes
    Réponses: 5
    Dernier message: 07/12/2005, 21h48

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