dans ton code, con.open , mets le AVANT ta requête
dans ton code, con.open , mets le AVANT ta requête
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
utilises-tu "con" quelque part d'autre dans ton code, la connexion est-elle bien fermée quand tu cherches à l'ouvrir?
Nan je n'utilise pas con dans mon code.
Comment savoir si ma connexion est bien fermée ?
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
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
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"
après AdLockPessimistic, enlève les guillemets.
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()
Slt tu pourré juste me donner la partie de ton code qui rajoute une ligne a ta table article stp.
Celle qui marche.
Bonjour,
Normalement, c'est exactement la meme chose, ie "une requete".Envoyé par floran30
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.
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" ).
jlai déja cité c'est la première partie de mon code "ligart",c'est ce code qui marche très bien...Envoyé par floran30
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?Envoyé par AdHoc
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager