Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/05/2011, 23h00   #1
Invité régulier
 
Inscription : mai 2011
Messages : 47
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 47
Points : 8
Points : 8
Par défaut Erreur : Too few parameters. Expected 1

Bonjour a tous, voila quand j'essaie de lancer mon code VBA j'obtiens cette erreur, et je ne sais pas pourquoi.
J'ai deja fait des recherches sur internet pour cela mais aucun cas n'etait similaire au mien.
Voici mon code :

Code :
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
        Dim oDB3 As DAO.Database
    Dim lrsNumRuis2 As DAO.Recordset
    Dim lrsEtab As DAO.Recordset
    Dim ruisId2 As String
    Dim LSQLNumRuis2 As String, LSQLEtab As String, listInstallEtab As String, ruis2 As String, rowNumRuis2 As String
    rowNumRuis2 = Target.row
    ruis2 = Cells(rowNumRuis2, "A")
    Target.Validation.Delete
    Set oDB3 = CurrentDb()
' cette requete marche tres bien, 
' je recupere le numero du RUIS pour men servir apres :
    LSQLNumRuis2 = "SELECT RUIS.Id FROM RUIS WHERE RUIS.nom = """ & ruis2 & """;"
    Set lrsNumRuis2 = oDB3.OpenRecordset(LSQLNumRuis2)
    If Not IsEmpty(lrsNumRuis2) Then
            ruisId2 = lrsNumRuis2(0)
    Else
        MsgBox "Erreur lors de la récuperation du numero de RUIS"
        Exit Sub
    End If
    MsgBox "num du RUIS : " & ruisId2
 
' cest sur cette requete que jobtiens mon erreur :
 
    LSQLEtab = "SELECT DISTINCT Etablissements.nom FROM Etablissements, EtablissementRUIS WHERE Etablissements.Id = EtablissementRUIS.etablissementId AND EtablissementRUIS.RUISId = " & ruisId2 & ";"
    Set lrsEtab = oDB3.OpenRecordset(LSQLEtab)
 
    If lrsEtab.RecordCount > 0 Then
        Do While lrsEtab.EOF = False
            listInstallEtab = listInstallEtab & ", " & lrsEtab("nom")
            lrsEtab.moveNext
        Loop
        MsgBox listInstallEtab
    Else
        listInstallEtab = "   "
    End If
    Target.Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
                                    Operator:=xlBetween, Formula1:=Mid(listInstallEtab, 2)
Je ne comprends vraiment pas pourquoi j'ai cette erreur car mes 2 requetes ont la meme structure, et les 2 prennent un parametre qui est dans une variable.

Si vous avez une solution je suis preneur
robx2309 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 04h37   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 615
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 615
Points : 30 962
Points : 30 962
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

A priori tu récupères des données d'une feuille Excel :

Code :
1
2
3
rowNumRuis2 = Target.row
ruis2 = Cells(rowNumRuis2, "A")
Target.Validation.Delete
Tu utilises ensuite la variable ruis2, qu'y a-t-il à l'intérieur ?
Le champ Id de ta table Ruis est de quel type ? Numérique ? Si c'est le cas tu n'as pas besoin des doubles guillemets, une paire suffirait.

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 15h32   #3
Invité régulier
 
Inscription : mai 2011
Messages : 47
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 47
Points : 8
Points : 8
Ma premiere requete fonctionne très bien, c'est sur la 2ème que j'obtiens l'erreur en question :

Code :
1
2
    LSQLEtab = "SELECT DISTINCT Etablissements.nom FROM Etablissements, EtablissementRUIS WHERE Etablissements.Id = EtablissementRUIS.etablissementId AND EtablissementRUIS.RUISId = " & ruisId2 & ";"
    Set lrsEtab = oDB3.OpenRecordset(LSQLEtab)
De plus j'ai bien verifie le contenu de "ruisId2", et elle contient bien le numero de RUIS.

EDIT : Probleme résolu, en faite c'etait juste parce que je m'étais trompé sur le nom d'un champ dans ma requete
robx2309 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h19.


 
 
 
 
Partenaires

Hébergement Web