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

VBA Access Discussion :

Comment créer un bouton ajouter enregistrement ?


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 26
    Points : 17
    Points
    17
    Par défaut Comment créer un bouton ajouter enregistrement ?
    bonjour

    Je debute dans le vbs sous access, j'ai un petit formulaire qui affiche les données de ma table client. J'aimerai créer un bouton me permettant de créer un nouvelle enregistrement dans ma table client mais je ne connais pas la syntax exactement, mais je connais la requete sql a faire...

    voici ma requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO clients(client_num,client_raison) VALUES('', txt_raison.value)
    ma sous vba sa marche comment ?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Points : 81
    Points
    81
    Par défaut
    Ca marche avec des recordset, mais tu peux aussi utiliser du SQL

    Exemple d'ajout de tuple avec un recordset :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        Dim bd As Database 'déclaration de la base de donnée
        Dim rs As DAO.Recordset 'déclaration du recordset
        Set bd = CurrentDb() 'la variable prend pour valeur la base de données
        Set rs = bd.OpenRecordset("ARCHIVE") 'mise en mémoire de la table ARCHIVE dans le recordset
                    rs.AddNew
                        rs.Fields("nom_archive") = nom_archive & " " & nom_support_archive & " n° " & i
                        rs.Fields("date_archive") = date_archive
                        rs.Fields("code_support") = support_archive
                        rs.Fields("code_systeme") = systeme_archive
                        rs.Fields("code_typea") = type_archive
                    rs.Update
    C'est assez simple avec les recordset, mais pour du SQL, c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docmd.runsql("ta requete SQl")
    dans le code VB d'une procédure ou fonction.

  3. #3
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Utilises Currentdb.execute (de préférence)
    ou Docmd.RunSQL

    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Currentdb.execute "INSERT INTO clients(client_num,client_raison) VALUES('','" &  txt_raison.value & "'),dbFailOnError"

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    ok donc j'ai un petit peu ajusté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.Execute "INSERT INTO clients([client_raison]) VALUES("'test"")"
    il faut rajouter des [ ] autour des nom de propriété, la sa marche

    mais sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.Execute "INSERT INTO clients([client_raison]) VALUES('"&txt_nom.value&"')"
    et bien c est pas bon, a savoir que txt_nom existe bien dans mon formulaire

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    c'est quoi ton erreur?

    utilise les balises code #

    car là on lit mal ton code j'ai l'impression qu'il te manque des espaces ici :

    t'a tout collé?

    il faut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ('" & txt_nom.value & "')"
    on sait jamais c'est peut etre ca surtout s'il te met le texte en rouge

  6. #6
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Comme le dit Elstak, la prochaine fois, utilises la balise code (le bouton #) quand tu postes un message contenant du code (je l'ai fait pour toi pour le précédent message).
    EDIT: dans ce cas c'est un contre exemple: la balise code interprete mal l'apostrophe parce le code n'est pas complet


    D'accord avec Elstak, le fait de coller les éléments fausse le compilateur (le caractère & accolé ayant alors un autre sens....)
    Pour ma part, j'aime rappelé qu'il s'agit d'un controle du formulaire en cours avec le ME.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VALUES('" Me!txt_nom.value & "')"

Discussions similaires

  1. Réponses: 30
    Dernier message: 24/10/2011, 18h37
  2. comment créer un bouton enregistrer l'image sous
    Par faucon54 dans le forum Langage
    Réponses: 1
    Dernier message: 05/06/2007, 08h43
  3. Réponses: 9
    Dernier message: 08/03/2006, 15h57
  4. [FLASH] Comment créer un bouton à fond transparent ?
    Par langela94 dans le forum Flash
    Réponses: 2
    Dernier message: 20/01/2006, 15h01
  5. Réponses: 4
    Dernier message: 04/10/2005, 00h15

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