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

VB 6 et antérieur Discussion :

comment inserer un enregistrement dans une table?


Sujet :

VB 6 et antérieur

  1. #61
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 54
    Points : 12
    Points
    12
    Par défaut
    ligart = dataset.Tables("liste article").NewRow
    'ligart("code") = "test"
    'ligart("CODEBARRE") = "Test"
    'ligart("nom") = "test"
    'ligart("TYPE") = "U"
    'dataset.Tables("liste article").Rows.Add(ligart)
    Quest c que le dataset dans ton code ?

  2. #62
    Membre actif Avatar de AdHoc
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 245
    Points : 239
    Points
    239
    Par défaut
    Bonjour,
    pour khalid71,
    mais attention j'utilise VB.net
    c'est ce qui me semblait
    vb.net => forum dotnet

    pour floran30, ou en est tu ?

  3. #63
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 54
    Points : 12
    Points
    12
    Par défaut
    Je n'y arrive tjrs pas.
    Je commence a deseperé j'arrive vraiment a rien avec cette requete INSERT.

  4. #64
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 54
    Points : 12
    Points
    12
    Par défaut
    Connexion fermée ou non valide dans le contexte.
    Je comprend pas serieux.

  5. #65
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    J'ai pô tout a fais compris ton problème, mais je sais que pour ajouter un enregistrement dans une bdd (pour access), je fais comme ça....



    Public Function AjoutBdd()

    Dim RscDico As Recordset
    Dim LReq As String


    openBDD 'ouvre la base de données


    LReq = "SELECT * FROM " & le nom de la table & ""

    Set RscDico = BDD.OpenRecordset(LReq, dbOpenDynaset)

    RscDico.AddNew

    le code qui va bien pour tes données

    RscDico.Update
    RscDico.Close


    End Function

  6. #66
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 54
    Points : 12
    Points
    12
    Par défaut
    Ben en fait je souhaite simplement ajouter une ligne a ma table "Document".
    Et je prend les valeurs de cette ligne dans des textbox de ma form.

    voila ma requete sql :
    "INSERT INTO Document (Document.Id_document, Document.Total_TTC, Document.Total_HT, Document.Total_TVA) " _
    & "VALUES ('" & txtNumero.text & "', '" & txtTTC.text & "' , '" & txtHT.text & "', '" & txtTVA.text & "'), con, AdopenDynamic, AdLockOptimistic"
    Merci pour l'aide totof39, mais j'ai pas compris trop la syntax dans ta fonction.
    Tu pourrais m'aider stp.
    Et je souhaite placer ce code dans un boutton.

  7. #67
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 54
    Points : 12
    Points
    12
    Par défaut
    Bon j'ai reussi a faire ça :


    Dim tbl As dao.Recordset
    Dim str As String
    Dim bd As dao.Database

    Set bd = OpenDatabase(".\bd1.mdb")

    str = "SELECT * FROM Document "

    Set tbl = bd.OpenRecordset(str)

    tbl.AddNew

    tbl.Fields("Total_TTC") = 11
    tbl.Fields("Total_HT") = 11
    tbl.Fields("Total_TVA") = 11

    tbl.Update
    tbl.Close
    Mais il me dit :
    "Vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associé est requi dans la table 'client'"

    Mes deux table 'client' et 'document' sont bien en relation mais je ne sais pas comment faire la.

  8. #68
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    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
    Public Function AjoutBdd()  'fonction à appeler après avoir cliqué sur le bouton
     
    Dim RscDico As Recordset
    Dim LReq As String
     
     
    openBDD 'fonction qui ouvre la base de données
     
     
    LReq = "SELECT * FROM " Document ""  'tu créé ta requete en sélectionnant_ 
    						     tous les champs de ta table (comme ici)_
    						    ou alors tu met les noms de tes champs
     
    Set RscDico = BDD.OpenRecordset(LReq, dbOpenDynaset) 	'la tu applique la requete sur la bdd
     
    RscDico.AddNew			'ajoute une ligne a la requete
     
    RscDico.Fields(Id_document).Value = txtNumero.text	'
    RscDico.Fields(Total_TTC).Value = txtTTC.text		'
    RscDico.Fields(Total_HT).Value = txtHT.text		'	
    RscDico.Fields(Total_TVA).Value = txtTVA.text		'rempli le nouvel enregistrement	
     
     
    RscDico.Update		'modifie la bdd en ajoutant le nouvel enregistrement
    RscDico.Close		'ferme le tout
     
     
    End Function

    Moi c'est la méthode que j'utilise quand je bosse sur une bdd acces depuis un soft VB. Je sais pas si c'est plus optimiser que le INSERT car je m'en suis jamais servi. Enfin voila, c'est tout ce que je peux faire avec mes maigres connaissances.
    Bon courage a toi

  9. #69
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 54
    Points : 12
    Points
    12
    Par défaut
    c'est obligé de le faire avec une fonction ?

  10. #70
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    LOL, ba la je crois qu'il va falloir que tu migre dans le forum access car je sais pas exactement comment ça se passe quand deux table sont liées.
    Désolé de pas pouvoir t'aider plus que ça.

  11. #71
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    La fonction n'est pas obligatoire, tu peux juste coller le code dans la fonction de ton bouton_click().

  12. #72
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 54
    Points : 12
    Points
    12
    Par défaut
    Bon j'ai repris ton code totof, mais tjrs impossible d'inserer un enregistrment car l'enregistrement associé est requi dans la table client.

    j'ai creer une bdd test avec une seule table est le code marche niquel merci.

    Mainenant ce se complique un peut.

  13. #73
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 62
    Points : 71
    Points
    71
    Par défaut change de procédé
    essaie donc ça

    -pour déclarer tes objets:

    dim base as DataBase
    dim requete as QueryDef

    -pour définir les objets
    set base=OpenDataBase("chemin_complet\ta_base.mdb")
    set requete=CreateQueryDef("", "INSERT INTO ta_table (champ_num,champ_txt) values (" & val_num & "','" & "' & val_txt & "'")

    -pour executerla requete
    requete.execute

    si ça te marque une erreur type de données incompatible, c'est que tu as fais une erreur dans les quotes (") et les apostrophes.

    la syntaxe est differente pour insérer les nombre et les string

    ..." & nombre & "....
    ...' " & string & " ' ...


    essaie et dis moi

  14. #74
    Membre actif Avatar de AdHoc
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 245
    Points : 239
    Points
    239
    Par défaut
    D'après le message, donc ton problème viendrait de ta requete.
    Tu essaye de créer un enregistrement dans la table client dont un des champ est lié à celui de la table client (je suppose que c'est l'identifiant Client).
    Le message te dit qu'il n'arrive pas à trouver cette correspondance.
    "Vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associé est requi dans la table 'client'"
    Mes deux table 'client' et 'document' sont bien en relation mais je ne sais pas comment faire la.
    De fait, dans ta requete, tu n'as pas l'air d'affecter une valeur à un identifiant client et si ta relation est de type [1,x] (~tout document doit etre lié à au moins un client), cela doit normalement etre refuser.
    Solutions possibles:
    - Changer ta structure de la base (ouille ouille, ça c'est mal, cela veut dire que le MCD est mal fait ou que la base ne le respecte pas)
    - Mettre un code client dans ton enregistrement.

  15. #75
    Rédacteur
    Avatar de jacma
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 79
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut
    Bonsoir

    J'ai lu ton post et les différentes contributions, et je dois dire que je n'ai pas compris si c'est avec ADO ou DAO. Le message 17 mentionne ADO, le 26 DAO, le 34 ADO, le 44 Ado et le 67 DAO. Alors, soit j'ai mal lu, soit il faudrais que tu précise: DAO ou ADO , et que les contributeurs s'y tiennent.

    Il faudrais également que tu précises le contexte. Il apparait à la fin que tu semble utiliser des tables liées. C'est un peut tard.

    Dernier point: pourquoi une requête ajout? C'est une obligation ou tu ne sais pas faire autrement (directement avec des contrôles liés aux données). D'après ta réponse à Toto
    Merci pour l'aide totof39, mais j'ai pas compris trop la syntax dans ta fonction
    il semble que tu ne sache pas vraiment...

    Alors, comme le dirais... je ne sais plus qui, aides nous à t'aider.

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/05/2013, 22h40
  2. Réponses: 1
    Dernier message: 12/05/2009, 11h05
  3. Comment modifier un enregistrement dans une table ?
    Par pimst37 dans le forum VBA Access
    Réponses: 3
    Dernier message: 21/02/2008, 20h41
  4. Réponses: 12
    Dernier message: 06/08/2007, 07h46
  5. Réponses: 2
    Dernier message: 08/02/2006, 21h22

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