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

Access Discussion :

[VBA][recordset]pb update error 3061 too few parameters


Sujet :

Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Points : 158
    Points
    158
    Par défaut [VBA][recordset]pb update error 3061 too few parameters
    salut ,

    en fait je voudrais modifié un nom que je selectionne dans une combo
    ensuite je fais ma requete sql avec mon recordset je fais un edit + update

    et j ai erreur suivant sur la requete sql error 3061 too few parameters expected 1

    je ne comprends pas ou est mon erreur pourtant j ai regardé le tuto recordset


    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
     
     
    Private Sub btncontrat_Click()
     
    Dim db As DAO.Database
     
    Dim rsmodifcontrat As Recordset
     
    Dim oldcontrat As Integer
    Dim newcontrat As Integer
     
    oldcontrat = combocontrat.Value
    newcontrat = TxtBoxcontrat.Value
     
     
    Set db = DBEngine.OpenDatabase("d:\invoice.mdb", True)
     
     
    Set rsmodifcontrat = db.OpenRecordset("select * from contrat where contrat_nb = oldcontrat", dbOpenDynaset)
     
     
        With rsmodifcontrat
     
            While Not .EOF
     
            .Edit
            .Fields("contrat_nb").Value = newcontrat 'edition du champs et attribue la valeur de la textbox
            .Update
            .MoveNext
     
     
            Wend
     
        End With
     
    rsmodifcontrat.Close
    db.Close
     
    Set rsmodifcontrat = Nothing
    Set db = Nothing
     
     
     
    End Sub
    voila merci

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Essaie ça :

    Si ton champ contrat_nb est de type texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set rsmodifcontrat = db.OpenRecordset("select * from contrat where contrat_nb = '" & oldcontrat & "'", dbOpenDynaset)
    Si ton champ contrat_nb est de type numérique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set rsmodifcontrat = db.OpenRecordset("select * from contrat where contrat_nb = " & oldcontrat, dbOpenDynaset)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Points : 158
    Points
    158
    Par défaut
    oui c'était ca contrat_nb est numerique

    je ne connaissais pas la différence de syntaxe entre string ou int et que cela pouvais etre aussi different dans la syntaxe sql vba

    merci ca fonctionne


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

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/03/2013, 07h47
  2. INSERT INTO ok via ACCESS Too few parameter via ODBC
    Par Frederick_Etudiant dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 15/01/2009, 12h37
  3. Réponses: 2
    Dernier message: 01/04/2008, 09h38
  4. Réponses: 1
    Dernier message: 30/05/2007, 10h41
  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