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. #41
    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
    dans ton code, con.open , mets le AVANT ta requête
    Xavier

  2. #42
    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
    J'ai essayer, meme chose.

  3. #43
    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
    redonne ton code actuel
    Xavier

  4. #44
    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
    Private Sub Command3_Click()

    Dim tbl As adodb.Recordset
    Set tbl = New Recordset

    Dim con As adodb.Connection
    Set con = New adodb.Connection

    con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= .\bd1.mdb"
    con.Open

    tbl.Open "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"

    End Sub

  5. #45
    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
    utilises-tu "con" quelque part d'autre dans ton code, la connexion est-elle bien fermée quand tu cherches à l'ouvrir?
    Xavier

  6. #46
    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
    Nan je n'utilise pas con dans mon code.

    Comment savoir si ma connexion est bien fermée ?

  7. #47
    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
    tu mets ça avant con.open

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If con.State = adStateOpen Then
    con.Close
    End If
    Xavier

  8. #48
    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
    Meme erreur.

  9. #49
    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
    mets ça aussi juste après

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If tbl.State = adStateOpen Then
    tbl.Close
    End If
    Xavier

  10. #50
    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
    Tjrs meme erreur.

    Dim tbl As adodb.Recordset
    Set tbl = New Recordset

    Dim con As adodb.Connection
    Set con = New adodb.Connection

    If con.State = adStateOpen Then
    con.Open
    End If
    If tbl.State = adStateOpen Then
    tbl.Close
    End If

    con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= .\bd1.mdb"
    con.Open

    tbl.Open "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"

  11. #51
    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
    après AdLockPessimistic, enlève les guillemets.
    Xavier

  12. #52
    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 fait mais encore pareil.

  13. #53
    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
    arrrr. pffffff,
    Xavier

  14. #54
    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
    Xavier

  15. #55
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut ajout d'une nouvelle ligne
    S@lut,

    J'ai un souci avec mon code, j'ai rajouté une nouvelle ligne à une table article, tout se passe bienmais par contre j'utilise le même code pour une autre table entetecomandeclient de la même base t pourtant rien n'est enregistrer dans la base,qui pourait me dire pourquoi?voici mon code
    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)
    'cmdbuild2 = New OdbcCommandBuilder(reqarticle)
    'Try
    ' reqarticle.Update(dataset, "liste article")
    'Catch ex As Exception
    ' MsgBox(ex.message)
    'End Try
    'dataset.Clear()
    'charger()
    A ce moment l'enregistrement a lieu mais par contre après ça bloque
    'x = -1
    'For i = 1 To UBound(Lignes)
    ' If VB.Left(Lignes(i), 4) = "HGEN" Then
    'x = x + 1
    liget = dataset.Tables("liste etcdeclient").NewRow
    'ligdefste = resreqdefste.Rows(0)
    'liget("RTCFIELD1") = 1234 'Trim(Mid(Lignes(i), 44, 35))
    'liget("codedocutil") = 315 ' ligdefste("numclientcde") + 1
    liget("code") = 800
    'liget("type") = "CC"
    'liget("datedoc") = Today
    liget("tarif") = 1
    'liget("CategorieAV") = "0"
    'liget("Depot") = "DP"
    'liget("calculTVA") = True
    'liget("GestionTPF") = True
    'liget("PieceTrans") = False
    'liget("PieceEdit") = False
    dataset.Tables("liste etcdeclient").Rows.Add(liget)
    cmdbuild2 = New OdbcCommandBuilder(reqetclient)
    reqetclient.InsertCommand = cmdbuild2.GetInsertCommand
    Try
    reqetclient.Update(dataset, "liste etcdeclient")
    Catch ex As Exception
    MsgBox(ex.Message)
    End Try
    dataset.Clear()
    charger()

  16. #56
    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
    Slt tu pourré juste me donner la partie de ton code qui rajoute une ligne a ta table article stp.
    Celle qui marche.

  17. #57
    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,
    Citation Envoyé par floran30
    je pensais pas que c'était aussi compliquer de faire une requete INSERT, j'ai pas eu de prob pour tout ce qui etait SELECT
    Normalement, c'est exactement la meme chose, ie "une requete".
    Si tes SELECT fonctionnent, il n'y a aucune raison que je connaisse pour que tes insert into ne marchent pas.
    A ta place, je me focaliserai sur la requete.
    1) Essayes déjà en passant des valeurs en dur pour 1 enregistrement d'essai
    2) Ensuite, récuperes la chaine de caractere de ta requete qui ne marche pas et teste la directement sur access
    Cela te permettra d'éliminer un certain nombre d'erreur.

    Une remarque: Je ne passe jamais directement un champ de saisie en "parametre" à une requete, je passe toujours par des variables intermédiaires que je teste.

    PS: pour khalid, il n'y a pas de try en vb, c'est on error etc.etc.

  18. #58
    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
    Bonjour

    Je n'ai pas suivi ce post, mais la lecture des dernières réponses m'incite à t'orienter vers le le concepteur DataEnvironment. Celui-ci est doté d'un générateur SQL accessible depuis le volet "Général" de la fenêtre de propriétés. Tu y sélectionne le bouton radio "Instruction SQL" et tu clique sur le bouton de commande Générateur SQL..." qui est devenu accessible.

    Auparavant, tu as bien sûr créé la connexion du DataEnvironment et la commande, ce qui ne devrait pas poser de grosses difficultés.

    Une fois dans la fenêtre du concepteur, sélectionne la connexion dont tu veux te servir puis la table sur laquelle doit être effectuée la requête. Amène là dans le volet "Shéma", juste en dessous et fais glisser les champs voulus dans la grille. Toujours dans ce volet, affiches le menu contextuel et sélectionne "Requête Ajout de valeurs". Et suis les indications qui te sont

    Tu verras qu'au fur et à mesure de toutes ces actions, la requête SQL se construit et/ou se modifie automatiquement dans le volet requête. A la fin, non seulement tu as ta requête, dont tu pourras te servir de modèle ou carrément la couper/coller dans ton code, mais tu pourras tester immédiatement la commande.

    Si tu rencontres des difficultés dans ce cheminement, exposes les (sans "l" ).

  19. #59
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par floran30
    Slt tu pourré juste me donner la partie de ton code qui rajoute une ligne a ta table article stp.
    Celle qui marche.
    jlai déja cité c'est la première partie de mon code "ligart",c'est ce code qui marche très bien...

  20. #60
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par AdHoc
    Bonjour,

    Normalement, c'est exactement la meme chose, ie "une requete".
    Si tes SELECT fonctionnent, il n'y a aucune raison que je connaisse pour que tes insert into ne marchent pas.
    A ta place, je me focaliserai sur la requete.
    1) Essayes déjà en passant des valeurs en dur pour 1 enregistrement d'essai
    2) Ensuite, récuperes la chaine de caractere de ta requete qui ne marche pas et teste la directement sur access
    Cela te permettra d'éliminer un certain nombre d'erreur.

    Une remarque: Je ne passe jamais directement un champ de saisie en "parametre" à une requete, je passe toujours par des variables intermédiaires que je teste.

    PS: pour khalid, il n'y a pas de try en vb, c'est on error etc.etc.
    merci mais attention j'utilise VB.net et le try fonctionne bien pkoi penses tu ke je devrais utiliser error et si c le cas c koi exactement le code stp?

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