cs_arpege
Messages postés62Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention 3 avril 2008
-
9 mai 2007 à 21:26
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 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???
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 :
cs_arpege
Messages postés62Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention 3 avril 2008 23 mai 2007 à 22:48
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+++
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 septembre 20073 10 mai 2007 à 08:17
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 ?