Vba access erreur 3061 trop peu de paramètre

Résolu
sf44 Messages postés 3 Statut Membre -  
sf44 Messages postés 3 Statut Membre -
Bonjour,

J'ai un petit souci sur cette fonction que je veux intégrer dans une zone de texte pour calculer le mode d'une serie de donnée.

Elle fonctionne sur une requete avec beaucoup de donnée mais pas sur sa sous requete. Et ca retourne erreur 3061 trop peu de paramètre 3 attendu

Voici ce que j'ai fait :

Public Function CalculMode(strExpression As String, strDomaine As String) As Variant
'declaration variable
Dim strsql As String
Dim rst As DAO.Recordset
'affectation
strsql = "SELECT TOP 1 " & strExpression & " as mode FROM " & strDomaine & " GROUP BY " & strExpression & " ORDER BY Count(" & strExpression & ") DESC;"
Set rst = CurrentDb.OpenRecordset(strsql)
'affectation qu resultat de la fonction
If rst.RecordCount = 0 Then
CalculMode = "pas possible"
Else
CalculMode = rst("mode")
End If
'libération
rst.Close
Set rst = Nothing
End Function

Je ne parviens pas à trouver mon erreur qui est à priori sur la requete

Merci de votre aide

2 réponses

  1. sf44 Messages postés 3 Statut Membre
     
    bonjour,
    j'ai l'impression que mon problème provient des sous requete qui utilise des valeurs de control. VBA doit pas reconnaitre le truc [formulaire]!modifiable

    il faut que j'utilise cela je pense mais une autre erreur apparait : erreur de compilation utlisation incorrecte du mot cle ME

    Je ne comprend pas, pouvez-vous m'aider : 2 est ma requete

    'declaration variable des controles
    Dim strmodmov As String
    Dim strmodit As String
    Dim strmodsup As String

    'affectation a partir des controles
    strmodmov = Me.Modifiable2.Value
    strmodit = Me.Modifiable9.Value
    strmodsup = Me.Modifiable11.Value


    'affectation
    strsql = "SELECT TOP 1 " & strExpression & " as mode " & vbCrLf & _
    "FROM " & strDomaine & " " & vbCrLf & _
    "WHERE 2.[mov code]=" & strmodmov & " and 2.item='" & strmodit & "' and 2.[supplier no]='" & strmodsup & "'" & vbCrLf & _
    "GROUP BY " & strExpression & "" & vbCrLf & _
    "ORDER BY Count(" & strExpression & ") DESC;"
    Set rst = CurrentDb.OpenRecordset(strsql)
    0
  2. sf44 Messages postés 3 Statut Membre
     
    j'ai resolu mon pb, l'erreur que j'ai faite :
    utiliser une sous requete avec des [formulaire]![formulaire1]...
    à la place de ME j'ai mis Forms![ecran].Modifiable2.Value avec ecran le nom du formulaire.
    Je peux pas mettre la table 2 sans les crochets

    voila
    0