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. #1
    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 comment inserer un enregistrement dans une table?
    Bonjours,
    Voila je souhaite inserer un enregistrement dans ma table "Facture" de ma base de données.
    Cet enregistrement contient en faite plusieurs variable de ma form.
    Je ne sais pas comment faire.

    J'ai commencé a faire cette requete mais je pense qu'elle n'est pas bonne.

    str = "INSERT INTO Document" _
    & "SELECT Document.Id_document" _
    & "FROM document" _
    & "WHERE Document.Id_document ='" & txtNumero.text & "'" _
    & "AND document.Total_TTC ='" & txtTTC.text & "'" _
    & "AND document.Total_HT ='" & txtHT.text & "'" _
    & "AND document.Total_TVA ='" & txtTVA.text & "'" _

  2. #2
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut
    salut,

    tu nous fait quoi là? déjà tu veux insérer dans Facture, alors pourquoi écrire
    "INSERT INTO Document"?

    2ème chose: pense aux espaces

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    str = "INSERT INTO Document " _
    & "SELECT Document.Id_document " _
    & "FROM document" _
    & "WHERE Document.Id_document ='" & txtNumero.text & "' " _
    & "AND document.Total_TTC ='" & txtTTC.text & "' " _
    & "AND document.Total_HT ='" & txtHT.text & "' " _
    & "AND document.Total_TVA ='" & txtTVA.text & "'"
    revois déjà ça.
    Xavier

  3. #3
    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
    Dsl ma table s'apelle bien "Document" et non "Facture".

    Erreur de sintaxe dans la clause from.

  4. #4
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut
    qu'est censée faire ta requête? S'agit-il bien d'une requête imbriquée que tu veux faire?
    Xavier

  5. #5
    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
    dit
    Ajoute un ou plusieurs enregistrements à une table. C'est ce qu'on appelle une requête Ajout.

    Syntaxe

    Requête Ajout avec plusieurs enregistrements :

    INSERT INTO target [IN externaldatabase] [(field1[, field2[, ...]])]
    SELECT [source.]field1[, field2[, ...]
    FROM tableexpression

    Requête Ajout avec un seul enregistrement :

    INSERT INTO target [(field1[, field2[, ...]])]
    VALUES (value1[, value2[, ...])

    Copyright (c) 1996 Microsoft Corporation
    Donc dans le premier cas tu insères des enregistrements qui viennent d'une autre table. Dans le deuxieme cas, tu ajoutes un enregistrement pour lequel tu definis des valeurs.
    A vue de nez,il me semble que tu te situes dans le deuxieme.

  6. #6
    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
    Citation Envoyé par Asdorve
    qu'est censée faire ta requête? S'agit-il bien d'une requête imbriquée que tu veux faire?
    Le but de ma requete c'est d'inserer dans ma table facture un enegistrement avec des variables contenues dans ma form.

  7. #7
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    INSERT INTO Document[(field1[, field2[, ...]])]
    VALUES (txtNuméro.text , ...)
    Xavier

  8. #8
    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
    Quelqu'un pourrait me doner un exemple de la deuxieme requete svp, pour voir la syntaxe. Je ne connais pas bien les requetes INSERT et j'ai un peut de mal la, merci.

    J'ai fais ceci et j'ai une erreur de syntaxe.

    str = "INSERT INTO Document [(document.Id_Document[, document.Total_TTC[, document.Total_HT[, document.Total_TVA]]])] " _
    & "VALUES (txtNumero.text, txtTTC.text, txtHT.text, txtTVA.text) "

  9. #9
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    INSERT INTO Document ("ChampsNuméro", "ChampsNom",...) 
    VALUES ("12", "Floran30", ...)
    Xavier

  10. #10
    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
    Ca ne marche pas

    str = "INSERT INTO Document (document.Id_Document, document.Total_TTC, document.Total_HT, document.Total_TVA) " _
    & "VALUES (txtNumero.text, txtTTC.text, txtHT.text, txtTVA.text) "

  11. #11
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut
    essaye ça
    du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    str = "INSERT INTO Document (document.Id_Document, document.Total_TTC, document.Total_HT, document.Total_TVA) " _
    & "VALUES ('" & txtNumero.text & "', '" & txtTTC.text & "' , '" & txtHT.text & "', '" & txtTVA.text "') "
    Xavier

  12. #12
    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
    Opération non valide.

  13. #13
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut
    fais voir ton code, quelle base de données?
    Xavier

  14. #14
    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
    Base de donnée access.
    Voila mon code entier :

    Private Sub Command3_Click()
    Dim str As String
    Dim bd As dao.Database
    Dim tbl As dao.Recordset

    str = "INSERT INTO Document (document.Id_Document, document.Total_TTC, document.Total_HT, document.Total_TVA) " _
    & "VALUES ('" & txtNumero.text & "', '" & txtTTC.text & "' , '" & txtHT.text & "', '" & txtTVA.text & "')"


    Set bd = OpenDatabase(".\bd1.mdb")
    Set tbl = bd.OpenRecordset(str)

    End Sub

    Je veux que en cliquant sur ce bouton ca ajoute dans ma table les un enregistrement avec les valeur contenu dans les txtbox citées plus haut.

  15. #15
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut
    t'es sur de bien ouvrir la base de données?
    Xavier

  16. #16
    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 oui je pense.

    Ca ne vient pas de la base de données mais de la requete a mon avis.
    Quand j'execute :

    "Erreur d'excution 3219
    Operation non valide"

    Avec la ligne Set tbl = bd.OpenRecordset(str) surlignée.

  17. #17
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut
    lu sur le net


    Tout d'abord, il y a certaines references à cocher... dans le menu Projets - Références, Microsoft AtiveX Data Objects 2.x Library. Ensuite, il faut établir une connexion avec la base. Pour cela, on utilise l'objet 'connection' :

    Dim con as ADODB.Connection
    Set con = New ADODB.Connection

    Ensuite, il faut définir le pilote ainsi que la chaine de connexion :

    con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" Chemin de la base "

    Puis, ouvrir la connexion :

    con.open

    Si vous devez traiter une base de données assez grande et que vous ouvrez souvent votre connexion, je conseille de mettre tout ce que nous avons vu dans un module, et d'appeler à chaque fois le module. Par exemple si le module s'appele SeConnecter :

    Call module1.SeConnecter(con)

    Voilà pour ce qui est de la connexion, passons désormais à la phase de manipulation des données. Pour cela, il faut utiliser des requêtes, de la même maniére que sous Access, avec insert into, update, delete, select ... .

    Xavier

  18. #18
    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
    La connexion a ma base de données est trés bonne j'ai plusieurs autres requetes qui marche dans aucun porbleme.
    La ca vient principalement de la requete en elle meme je pense.

  19. #19
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Set tlb = New Recordset
    Puis pour executer la requête :

    Xavier

  20. #20
    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
    Type incompatible.

Discussions similaires

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

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