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 :

filtre sous-form avec paramètres, erreur 'Too few parameters' sur OpenRecordset [AC-2003]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 226
    Par défaut filtre sous-form avec paramètres, erreur 'Too few parameters' sur OpenRecordset
    Bonjour,

    je travail avec access 2003, j'ai une table liée depuis SQL Server 2000.
    J'ai crée une requête access (CountFromToMctModel) qui demande 2 paramètres de type date (from et to).

    Mon but est d'avoir le résultat de cette requête affiché dans une form de type Feuille de données pour que l'utilisateur puisse encore faire des tri ou des filtres.

    J'ai alors crée une form principale, car j'aimerais afficher des autres requêtes dans la même form.
    Dans cette form j'ai mis 2 champs d'entrée des dates (dtFrom, dtTo), un bouton (SearchDate) qui va afficher ma requête et une sous-form vide (SFList).

    Voilà le code de mon bouton:

    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
    Private Sub SearchDate_Click()
        Dim rs As DAO.Recordset
        Dim qd As DAO.QueryDef
     
        vFrom = Me.dtFrom
        vTo = Me.dtTo
     
        Set db = CurrentDb
        Set ws = DBEngine.Workspaces(0)
        Set qd = db.QueryDefs("CountFromToMctModel")
        qd.Parameters(0) = vFrom
        qd.Parameters(1) = vTo
        Set rs = qd.OpenRecordset(DB_OPEN_DYNASET)		'résultats de la requête
        Me.SFList.SourceObject = "SForm"			'mettre la form "SForm" dans ma sous-foem vide SFList
        Set Me.SFList.Form.Recordset = rs			'afficher le résultat dans SFList
        Me.SFList.Visible = True
        qd.Close
    End Sub
    Jusqu'à la ça fonctionne. J'ai mes résultats affichés dans une sous-form Feuille de données.
    Le problème est que quand je fais un tri ou un filtre avec l'interface, les 2 paramètres de la requête sont redemandés via les MsgBox automatiques.

    Moi j'aimerais que les 2 paramètres soient reprises depuis la form principale.

    J'ai donc pensé de récupérer l'événement "Sur filtre appliqué" et de faire moi même le filtre... voilà 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
    'in sous-form
    Private Sub Form_ApplyFilter(Cancel As Integer, ApplyType As Integer)
    	DoCmd.CancelEvent	'stop the Access filter procedure
    	Dim rsFF As DAO.Recordset
    	Dim rsCopy As DAO.Recordset
    	Dim filter As String
    	Set rsCopy = Me.Form.Recordset	'copy result from form
    	filter = Me.filter							'copy filter
    	Call Form_SEARCH.test(filter, rsCopy)
    End Sub
     
    'in main-form
    Public Sub test(ExpFiltre As String, rs As DAO.Recordset)
        Dim rsFiltre As DAO.Recordset     
        rs.filter = ExpFiltre           'appli filter as rs
        Set rsFiltre = rs.OpenRecordset 'result of filter in rsFiltre
        Me.SFList.SourceObject = "SForm"
        Set Me.SFList.Form.Recordset = rsFiltre
        Me.SFList.Visible = True
    End Sub
    mais j'ai l'erreur <Too few parameters. Expected 2.> à la ligne Set rsFiltre = rs.OpenRecordset sur rs.OpenRecordset.

    J'ai modifié le code une centaine de fois...c'est 3 jours que j'essaye et que je cherche...mais pas de nouvelles.

    Où est l'erreur dans mon code?
    Ou est-ce que ma solution est complètement (conceptuellement) fausse et il faux que je reparte avec d'autres bases?

    Merci d'avance pour toute info
    Si vous voulez des compléments d'explication demandé seulement svp

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 226
    Par défaut


    j'ai perdu tout ce temps pour découvrir que en mettant le nom des champs de la form dans la requête directement, il les trouve tout seul...donc pas besoin de filtre d'aucun genre.....

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

Discussions similaires

  1. [AC-2003] Erreur : Too few parameters. Expected 1
    Par robx2309 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 25/05/2011, 15h32
  2. Réponses: 2
    Dernier message: 01/04/2008, 09h38
  3. erreur too few arguments ; recup valeur boucle
    Par Sam 069 dans le forum Access
    Réponses: 2
    Dernier message: 26/07/2006, 17h38
  4. Réponses: 5
    Dernier message: 01/06/2006, 16h18
  5. Réponses: 3
    Dernier message: 03/11/2005, 18h41

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