Code DAO: 1 parametre attendu

cs_jpp81 Messages postés 32 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 25 novembre 2009 - 5 déc. 2006 à 06:30
cs_jpp81 Messages postés 32 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 25 novembre 2009 - 6 déc. 2006 à 06:29
bonjour,
je séche lamentablement

Une base acces 97, une table [ILOTS], 4 Champs
    _NoIlot      champs numerique entier long
    _NomIlot    champs texte
    _Surface    Champs numerique entier long
    _Culture    Champs texte
   
Voila pour la base
Je cree un projet sous vb 4 pro avec
1 form     Form1
1 combo    CmbNonIlot
1 text box        Text1

Dans le formload je tape

Private Sub Form_Load()
 Dim base As String
        base = "INTRANTS.mdb"
 Dim a As Variant
'remplir la liste des ilots
  
    Dim db As Database
    Dim rsc As Recordset
    Dim SQLC As String
    SQLC = "SELECT [NomIlot] FROM [ILOTS]"
    Set db = Workspaces(0).OpenDatabase(base)
    Set rsc = db.OpenRecordset(SQLC, dbOpenDynaset)

If rsc.RecordCount = 0 Then
MsgBox " Vous devez remplir la Fiche des Ilots"
Exit Sub
End If
    rsc.MoveFirst
    a = rsc![NomIlot]
Do Until rsc.EOF
    a = rsc![NomIlot]
  CmbNonIlot.AddItem a
    rsc.MoveNext
Loop
rsc.MoveFirst
rsc.Close
db.Close

End Sub
   
    Dans clic du combo je tape
   
    Private Sub CmbNonIlot_Click()
 Dim base As String
 base = "INTRANTS.mdb"
    Dim db As Database
     Dim critere As String
   critere = CmbNonIlot
     Dim rsSurf As Recordset
     Dim SQLSurf As String
SQLSurf = " SELECT [Surface] FROM [ILOTS] " _
    & " WHERE [NomIlot] = " & CmbNonIlot & ";"
Set db = Workspaces(0).OpenDatabase("INTRANTS.mdb")
Set rsSurf = db.OpenRecordset(SQLSurf, dbOpenDynaset)

   rsSurf![Surface] = Text1.Text
rsSurf.Close
End Sub

Si je lance, le combo se rempli mais au premier clic qui doit m'afficher dans
Text1 la surface de l'ilot que j'ai selectionne dans le combo, j'ai droit a "Trop peu
de parametre.1 parametre manquant"
La base est bonne, la sql est bien sur le nom de l'ilot du combo,les noms de champs
dans la base et le prog sont correct et le compil s'arrete sur le set rsSurf.
Qu'est-ce que j'oublie????
Merci d'avance pour vos réponses.
jpp

4 réponses

domsig Messages postés 125 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 11 mai 2010
5 déc. 2006 à 07:55
bonjour


je suis pas sûr mais il me semble qu'il manque dans ton combo le premier élément de ta table (puisque tu fais un rsc.MoveFirst puis a = rsc![NomIlot] sans additem.)
Ta requête ne me semble pas correcte, essaie
SQLSurf " SELECT [Surface] FROM [ILOTS] WHERE [NomIlot] """ & CmbNonIlot & """"

bon courage

Allez voir mon site !
http://www.amis-marolles.org
le site d'une association s'occupant de patrimoine et de traditions
0
cs_jpp81 Messages postés 32 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 25 novembre 2009
5 déc. 2006 à 08:16
Salut domsig
effectivement la double cote fonctionne.

merci beaucoup
jpp
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 déc. 2006 à 03:37
Salut
Tu peux aussi utiliser le simple ' à la place du double ".
Le SQL accepte le ' comme séparateur de chaine et ça simplifie l'écriture sous VB.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_jpp81 Messages postés 32 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 25 novembre 2009
6 déc. 2006 à 06:29
Effectivement, ça marche aussi.
C'est crispant de passser des heures (voire des jours ) pour une erreur de ce genre. merci a tous
jpp
0
Rejoignez-nous