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 :

Trop peu de paramètres 1 requis (erreur 3061) avec automation


Sujet :

VBA Access

  1. #21
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 092
    Points : 268
    Points
    268
    Par défaut
    Bon, les nouvelles :

    Çà a marché pendant un moment mais le filtre ne fonctionnait pas , m'exportant des centaines de données de rdv en mettant une plombe ....

    Maintenant revient l'erreur "trop peu de paramètres, 2 attendus" et le débogueur s'immobilise sur la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rst = qdf.OpenRecordset()
    C'est à devenir fou !

    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
    Public Function ExportActionsOutlook()
     
    Dim qdf As DAO.QueryDef
    Dim rst As DAO.Recordset
     
      ' Référence à la requête
     
    Set qdf = CurrentDb.QueryDefs("rqexportactionsoutlook")
    qdf.Parameters("[Forms]![groupes actions]![numgrpaction]") = Forms![groupes actions]![NumGrpAction]
    Set rst = qdf.OpenRecordset()
     
     
        ' Enregistrer d'abord pour s'assurer que les champs requis sont remplis.
        DoCmd.RunCommand acCmdSaveRecord
     
        On Error GoTo AjoutAction_Err
     
    'Vérifie qu'il existe des actions à exporter
     
    If rst.RecordCount = 0 Then
     
    MsgBox "Il n'y a aucune action à exporter vers Outlook", vbOKOnly, "Transfert annulé"
     
    Exit Function
     
    Else
     
    rst.MoveFirst
     
    Do While Not rst.EOF
     
     
        ' Ajouter un nouveau rendez-vous.
     
           Dim outobj As New Outlook.Application
           Dim outappt As Outlook.AppointmentItem
           Set outobj = CreateObject("outlook.application")
           Set outappt = outobj.CreateItem(olAppointmentItem)
     
           With outappt
     
     
            .Start = Nz(rst!HoraireDebut, "")
              .Duration = Nz(rst!DuréeAction, "")
              .Subject = Nz(rst!Contact, "") & " " & Nz(rst![vendeur/intervenant], "")
              .Body = Nz(rst!NotesAction, "")
              .Location = Nz(rst!LieuAction, "")
              .ReminderMinutesBeforeStart = Nz(rst!MinutesRappel, "")
              .ReminderSet = Nz(rst!RappelAction, "")
              Debug.Print rst!HoraireDebut, rst!DuréeAction, rst![vendeur/intervenant], rst!NotesAction, rst!LieuAction, rst!MinutesRappel, rst!RappelAction
              Debug.Print Forms![groupes actions]!NumGrpAction
     
     
                 ' Définir l'indicateur AjoutéàOutlook, enregistrer, afficher un message.
                 CurrentDb.Execute ("update t_rendezvous set t_rendezvous.ajoutéàoutlook=-1 where ((t_rendezvous.numaction=forms![groupes actions]![sf groupes actions].form))")
     
     
                .Save
           End With
     
       'Boucle
       rst.MoveNext
       Loop
      End If
     
       ' Libérer la variable objet Outlook.
       Set outobj = Nothing
       Set rst = Nothing
       Set outappt = Nothing
        ' Libération de la référence
    Set qdf = Nothing
     MsgBox " Actions ajoutées à Outlook ! "
     
     Exit Function
     
    AjoutAction_Err:
        MsgBox " Erreur " & err.Number & Chr(10) & err.Description
        Exit Function
    End Function
    Code requête :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    PARAMETERS [Forms]![groupes actions]![numgrpaction] Text (9);
    SELECT T_RendezVous.HoraireDebut, T_RendezVous.NumContact, T_RendezVous.NotesAction, T_RendezVous.LieuAction, T_RendezVous.RappelAction, T_RendezVous.MinutesRappel, T_RendezVous.AjoutéàOutlook, T_RendezVous.DuréeAction, RqContacts.Contact, [Vendeurs et Intervenants].[Vendeur/Intervenant], T_RendezVous.NumGrpAction
    FROM RqContacts INNER JOIN ([Vendeurs et Intervenants] INNER JOIN T_RendezVous ON [Vendeurs et Intervenants].IdVendeurIntervenant = T_RendezVous.IdIntervenant) ON RqContacts.NumContact = T_RendezVous.NumContact
    WHERE (((T_RendezVous.NumGrpAction)=[Formulaires]![Groupes Actions]![NumGrpAction]))
    ORDER BY T_RendezVous.HoraireDebut DESC;

  2. #22
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 302
    Points : 19 513
    Points
    19 513
    Billets dans le blog
    64
    Par défaut
    et quand tu ouvres ta requête manuellement ?
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #23
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 092
    Points : 268
    Points
    268
    Par défaut
    La requête s' exécute sans aucun problème !

  4. #24
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 302
    Points : 19 513
    Points
    19 513
    Billets dans le blog
    64
    Par défaut
    Bonjour,

    Juste une remarque :

    Il faut que vous sortiez de la boucle la commande qui ouvre outlook :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    Dim outobj As New Outlook.Application
    Set outobj = CreateObject("outlook.application")
    ...
    ça vous fait une instance OutLook de crée et de détruite à chaque passage de boucle
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #25
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 092
    Points : 268
    Points
    268
    Par défaut
    Merci beaucoup pour cette remarque très pertinente

    Pour ce qui est du message auriez vous une idée de ce qui provoque cette erreur ?

  6. #26
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 302
    Points : 19 513
    Points
    19 513
    Billets dans le blog
    64
    Par défaut
    si ça pointe le openrecordset alors il ne reste que le paramètre...
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  7. #27
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 010
    Points : 24 578
    Points
    24 578
    Par défaut
    Bonjour,
    Je reviens dans la discussion :

    Si tu fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set qdf = CurrentDb.QueryDefs("rqexportactionsoutlook")
    qdf.Parameters("[Forms]![groupes actions]![numgrpaction]") = Forms![groupes actions]![NumGrpAction]
    Set rst = qdf.OpenRecordset()
    Quel intérêt de mettre un nom aussi long ?
    Fais simplement ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set qdf = CurrentDb.QueryDefs("rqexportactionsoutlook")
    qdf.Parameters("[NumGrpAction]") = Forms![groupes actions]![NumGrpAction]
    Set rst = qdf.OpenRecordset()
    et pour la requête cela :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PARAMETERS [NumGrpAction] Text (9);
    SELECT...
    WHERE (((T_RendezVous.NumGrpAction)=[NumGrpAction]))
    ...

    Simplifier ! Il faut simplifier !

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  8. #28
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 092
    Points : 268
    Points
    268
    Par défaut
    Bonjour Loufab,

    J'ai fait ce que tu préconisais mais il me sort "élément non trouvé dans cette collection" en pointant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    qdf.Parameters("[numgrpaction]") = Forms![groupes actions]![NumGrpAction]
    D'autre part si j’exécute la requête le paramètre est ignoré = pas de filtre, est ce normal ?

    Merci

  9. #29
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 010
    Points : 24 578
    Points
    24 578
    Par défaut
    Bonjour,
    Tu as dû faire une erreur dans la requête ou bien ce n'est pas la bonne requête auquel tu fais référence. Eventuellement tu peux faire un
    debug.print qdf.SQL avant de faire le Openrecorset()
    Ainsi tu verras si le paramètre est le bon.

    Je te joins un exemple fonctionnel.
    Voici mon code placé sur un bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Commande2_Click()
    Dim rq As DAO.QueryDef
    Dim rst As DAO.Recordset
    Set rq = CurrentDb.QueryDefs("rqt")
    rq.Parameters("[Nom]") = Forms!formulaire1!texte1
    Set rst = rq.OpenRecordset()
    Debug.Print rst.Fields(0)
    Stop
    End Sub
    Basé sur une requête nommée "rqt" que voici :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PARAMETERS [Nom] Text ( 9 );
    SELECT Table1.N°, Table1.Champ1
    FROM Table1
    WHERE (((Table1.Champ1)=[Nom]));

    La table se nomme "table1" elle contient 2 champs :
    N° qui est un numéroAuto
    Champ1 qui est du Texte.

    Le formulaire "Formulaire1" contient une zone de texte nommé "Texte1".

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

Discussions similaires

  1. Erreur 3061 : Trop peu de paramètres.1 attendu
    Par deglingo37 dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 05/12/2014, 19h55
  2. Réponses: 8
    Dernier message: 03/09/2012, 18h51
  3. Trop peu de paramètres. <nombre> attendu. (Erreur 3061)
    Par myriame dans le forum VBA Access
    Réponses: 3
    Dernier message: 05/03/2012, 23h44
  4. Réponses: 3
    Dernier message: 04/04/2006, 19h59
  5. Réponses: 4
    Dernier message: 15/03/2006, 16h47

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