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 :

Message "Trop peu de paramètres attendu. 4"


Sujet :

Access

  1. #1
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut Message "Trop peu de paramètres attendu. 4"
    Bonsoir,

    A partir d'un formulaire (qui n'est pas basé sur une table ou sur une requète), je souhaite mettre à jour une table avec les informations que j'inscris dans ce formulaire, puis à l'aide d'une bouton MAJ, j'e veux ajouter les renseignements à ma table.

    Voici 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Private Sub Mise_à_Jour_Click()
    On Error GoTo Err_Mise_à_Jour_Click
     
    Dim MaBase As Database, Tbl_Prospects As Object
    Dim Formulaire As String
    Dim SqlInsert As String, StrTable As String
    Set MaBase = CurrentDb
    Set Tbl_Prospects = MaBase.OpenRecordset("Tbl_Prospects", dbOpenTable)
     
    StrTable = "Tbl_Prospects"
    Formulaire = "[Formulaires]![Frm_CreatProspects]"
     
    SqlInsert = " INSERT INTO " & StrTable & " (Code_Client, Raison_Sociale, Adresse, Adresse_Cplt)"
    SqlInsert = SqlInsert + " SELECT " & Formulaire & "![Code_Client] as Code_Client,"
    SqlInsert = SqlInsert + Formulaire & "![Raison_Sociale] as Raison_Sociale,"
    SqlInsert = SqlInsert + Formulaire & "![Adresse] as Adresse,"
    SqlInsert = SqlInsert + Formulaire & "![Adresse_Cplt] as Adresse_Cplt" & " ;"
     
    Debug.Print SqlInsert
     
            MaBase.Execute SqlInsert, dbFailOnError
            MsgBox "Vous avez ajouté " & MaBase.RecordsAffected & " enregistrement."
            Debug.Print SqlInsert
     
    Exit_Mise_à_Jour_Click:
        Exit Sub
     
    Err_Mise_à_Jour_Click:
        MsgBox Err.Description
        Resume Exit_Mise_à_Jour_Click
     
    End Sub
    Mon code n'est peut-être pas tout à fait correct.

    Par contre ce que je ne comprend pas c'est quand je récupère la syntaxe Sqlinsert et que je la copie dans une requête cela fonctionne.

    J'ai le message "Trop peu de paramètres attendu. 4" quand je lance la procédure.

    Est-ce ma démarche est bonne pour mettre à jour cette table (mon souhait de valider la mise à jour avec le bouton)

    Où se situe le problème.

    Merci pour votre aide.

    Daniel.

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut Re: Message "Trop peu de paramètres attendu. 4"
    Bonjour,
    Citation Envoyé par Daniel MOREAU
    Est-ce ma démarche est bonne pour mettre à jour cette table (mon souhait de valider la mise à jour avec le bouton)
    Oui sur le principe.
    Il y a aussi la solution du Recordset:
    * créer un nouvel enregistrement dans la table visée,
    * renseigner chaque champ avec la valeur contenue dans le contrôle correspondant
    * mettre à jour l'enregistrement.
    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
    Private Sub Mise_à_Jour_Click()
     
        Dim MaBase As DAO.Database, RS As DAO.Recordset
     
    On Error GoTo Erreur
     
        Set MaBase = CurrentDb
        Set RS = MaBase.OpenRecordset("Tbl_Prospects", dbOpenTable)
     
        RS.AddNew
     
    On Error GoTo ErreurAddNew
     
        RS!Code_Client = Me.Code_Client
        RS!Raison_Sociale = Me.Raison_Sociale
        RS!Adresse = Me.Adresse
        RS!Adresse_Cplt = Me.Adresse_Cplt
        RS.Update
     
        MsgBox "Vous avez ajouté un enregistrement."
     
    Fin:
        RS.Close
        Exit Sub
     
    ErreurAddNew:
        MsgBox Err.Description
        RS.Cancel
        Resume Fin
     
    Erreur:
        MsgBox Err.Description
        Resume Fin
     
    End Sub

  3. #3
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut Trop peu de paramètres attendu
    Merci JBO pour ta réponse,

    Je vois que tu es matinal, et surtout de bon conseil.

    Merci ça fonctionne vraiment bien.

    Si je peu abusé, dans l'éventualité ou je souhaiterai annuler cette mise quel est le code qu'il faut ajouter.

    Merci et merci encore

    Daniel

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut Re: Trop peu de paramètres attendu
    Citation Envoyé par Daniel MOREAU
    [...] dans l'éventualité ou je souhaiterai annuler cette mise quel est le code qu'il faut ajouter.
    Tu veux annuler l'insertion d'une ligne de données dans Tbl_Prospects ?
    Voire d'un ensemble de lignes dans le cadre d'une "session de travail" ?

    Peux-tu préciser ?

    Sinon, en l'état, tout enregistrement inséré dans la table existe dans la base de données et ne peut être "annulé".
    Mais on peut toujours le supprimer (ouf ) par la suite. Cet enregistrement est -il désigné par un champ identifiant ?

    On peut aussi utiliser une transaction au sein de laquelle une ou plusieurs insertions sont réalisées. Ensuite la transaction est entérinée (commit, les insertions sont conservées) ou révoquée (rollback, les insertions sont "annulées")

  5. #5
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut
    Pour le moment je souhaite simplement annuler la où les dernières mises à jour.

    Je vais bien sûr insérer dans mon code msgbox demandant confirmation de cette mise à jour, mais je souhaite également dans l'éventualité où l'opérateur fasse une fausse manip revenir en arrière et donc supprimer le dernier enregistrement, voire les dernièrs (avec comme clé le champ date)

    Merci encore


    Daniel

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/03/2015, 20h08
  2. Réponses: 8
    Dernier message: 03/09/2012, 18h51
  3. Trop peu de paramètres attendu ?
    Par devdev dans le forum VBA Access
    Réponses: 4
    Dernier message: 06/05/2009, 16h57
  4. Réponses: 3
    Dernier message: 04/04/2006, 19h59
  5. erreur trop peu de paramétre. un attendu ??
    Par Amandine62 dans le forum ASP
    Réponses: 3
    Dernier message: 25/01/2005, 15h00

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