Anomalie avec un Adodc1.Recordset.Update en VB6 [Résolu]

Messages postés
62
Date d'inscription
samedi 25 octobre 2003
Dernière intervention
3 avril 2008
- - Dernière réponse : cs_Nicko11
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Dernière intervention
19 septembre 2007
- 24 mai 2007 à 08:06
j'ai réalisé un petit programme en VB6 pour me connecter à une BDD Access via un controle ADODC.
La connection se fait lors du chargement d'une form avec le code suivant:


Private Sub Form_Load()
Adodc1.ConnectionString = "provider=microsoft.Jet.OLEDB.4.0;Data source=" & localisebase & ";jet OLEDB:Database password=" & mdpbase & ""
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "SELECT* FROM ADMIN ORDER BY nom,prenom"
Adodc1.Refresh
end sub


j'ai plusieurs Textbox sur ma form, reliés chacuns à differents champs de la BDD par le controle ADODC.....
je peux modifier le contenu des données(en modifiant le contenu des textboxs)et je met à jour la base par un simple évenement click d'un command button:


Private Sub Command2_Click()
Adodc1.Recordset.Update
Adodc1.Refresh
Unload me
end sub


jusque là tout se passe bien, mais si je veux faire un update avec un évenement form_unload par ex:


Private Sub Form_Unload(Cancel As Integer)
Adodc1.Recordset.Update
Adodc1.Refresh
End Sub


cela ne marche pas: les modifications ne sont pas enregistrées dans la BDD!
il semblerait d'ailleurs que l'update dans ce cas ne fonctionne qu'avec un commandbutton !!!!


y-a t-il une erreur de ma part dans les sequences de programation? ou est-ce une anomalie VB6??
quel est votre avis? comment faire pour effectuer mon update sur un Private Sub Form_Unload???


merci pour vos réponses.
Afficher la suite 
A voir également:

Votre réponse

5 réponses

Meilleure réponse
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Dernière intervention
19 septembre 2007
3
Merci
Au pire, rien ne t'empeche de faire cela manuellement.

dim conn as new adodb.connection
dim rst as new adodb.recordset

conn .CommandType = adCmdText
conn .open = "provider=microsoft.Jet.OLEDB.4.0;Data source=" & localisebase & ";jet OLEDB:Database password=" & mdpbase

rst.open= "SELECT* FROM ADMIN ORDER BY nom,prenom", conn, adOpenDynamic, adLockOptimistic

grace a rst , tu peux choisir un enregistrement (méthode movenext, moveprevious, movefirst, movelast) et la valeur d'un champ avec rst.fields("Nom_Du_Champ")

Si tu veux modifier, cette valeur par la valeur d'une textbox, ca donne :

rst.fields("Nom_Du_Champ") = textbox.value 

a la fin tu fais 

rst.update 'pour mettre a jour les données
 
et enfin cela pour finir

set conn = nothing
set rst= nothing

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de cs_Nicko11
Messages postés
62
Date d'inscription
samedi 25 octobre 2003
Dernière intervention
3 avril 2008
3
Merci
juste apporter 2 corrections:
1)supprimer les signes = apres les conn et rst.open avec

dim conn as new adodb.connection
dim rst as new adodb.recordset
conn .CommandType = adCmdText
conn .open "provider=microsoft.Jet.OLEDB.4.0;Data source=" & localisebase & ";jet OLEDB:Database password=" & mdpbase
rst.open "SELECT* FROM ADMIN ORDER BY nom,prenom", conn, adOpenDynamic, adLockOptimistic

2)rst.fields("Nom_Du_Champ") = textbox.text     ' et non pas textbox.value..........

de simples détails...mais la suggestion est bonne et ça marche!
Merci beaucoup+++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de cs_arpege
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Dernière intervention
19 septembre 2007
0
Merci
Salut, il me semble avoir deja entendu un pb dans ce genre et les autres membres conseillaient de ne pas utiliser ce controle. Mais bon, cela marche pour toi sauf dans le unload donc on peut voir.

As tu essayé d'appeler la procédure Command2_Click dans le unload ?
Commenter la réponse de cs_Nicko11
Messages postés
62
Date d'inscription
samedi 25 octobre 2003
Dernière intervention
3 avril 2008
0
Merci
j'ai essayé mais cela ne marche pas............l'update ne se realise pas.
Commenter la réponse de cs_arpege
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Dernière intervention
19 septembre 2007
0
Merci
En effet, tu as raison, je sais pas ce qui m'a pris de mettre ces "=", n'importe quoi LOL.

Content que ca marche. Bonne continuation.
Commenter la réponse de cs_Nicko11

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.