ADO Update

cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 - 29 juin 2005 à 13:50
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 - 1 juil. 2005 à 10:09
Salut...

J'ai un problème avec mon update... J'utilise VB6 ADO et ACCESS.

Je modifie ma BD et ca ne se save pas...

Je ne sais pas si mon problème peut venir de mes recordset...

Voila mon code au démarage

Private Sub Form_Load()

'Type de bases de donnée pour la connexion (Pour Acces 2000 (4.0), pour la version 95 et 97 (3.51)
Connection.Provider = "Microsoft.jet.OLEDB.4.0"
'Chemin de la base de donnée (APP.PATH permet de ce mettre dans le chemin
'courant la ou ce trouve le projet)- Paramettrage de la chaine de connection
Connection.ConnectionString = App.Path & "\dossier_actif.mdb"
'Ouverture de la connection
Connection.Open
'Ouverture de la requête sql dans le recordset
BD.Open "Select * from dossiers_actif", Connection, adOpenDynamic, adLockOptimistic


Me.Show

Form_Activate

txtRechercheNormale.SetFocus


End Sub


Je fais une recherche avec un nouveau Recordset

Voici le Code du bouton RECHERCHE

Private Sub cmdRecherche_Click()

'Mets le checkbox Invisible coché
Check1.Item(7).Value = 1

Set BD2 = New ADODB.Recordset
ListView1.ListItems.Clear

BD2.Open "SELECT * FROM [dossiers_actif] WHERE [DOSSIER] like '%" & txtRechercheNormale.Text & "%'", Connection, adOpenKeyset, adLockBatchOptimistic


txtDossier.Text = BD2!DOSSIER & ""
txtTravail.Text = BD2!TRAVAIL & ""
txtLivraison.Text = BD2!livraison & ""
txtAttenteTerrain.Text = BD2!ATTENTE_TERRAIN & ""
txtAttenteTirroir.Text = BD2!ATTENTE_TIRROIR & ""
txtRecherche.Text = BD2!RECHERCHE & ""
txtDessin.Text = BD2!DESSIN & ""
txtRapport.Text = BD2!RAPPORT & ""
txtYvon.Text = BD2!YVON & ""
txtReference.Text = BD2!RÉFÉRENCE & ""
txtRemarque.Text = BD2!REMARQUE & ""

txtRechercheNormale.Text = ""

If BD2.RecordCount > 0 Then
BD2.Delete
End If

txtRechercheNormale.SetFocus



Et mon code pour le Update

Private Sub cmdSave_Click()
BD.Update

End Sub




Voila...


Si quelqu'un voit pourquoi mon update ne fonctionne pas.... merci d'avance

9 réponses

cs_dan80 Messages postés 101 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 19 avril 2006
29 juin 2005 à 14:03
fais plustot une requete sql:

update 'le nom de ta table' set ('chaque champ que tu veux modifié')=('valeur correspondante au champ') where ('ta condition')

essaye ca pour moi c la meilleur solution
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
29 juin 2005 à 14:27
Salut....

Et bien je suis vraiment débutant avec les commande SQL...

Serait-il possible de me donner un exmeple...

car j'essais de suivre ton exmeple mais je ne m'y connais pas assez et je fais plein d'erreur de code...

donc ca devrait ressembler à Dossier_Actif SET (txtRecherche, txtCalcul) = (RECHERCHE, CACLCUL) where UPDATE ????



Dossier_Actif est le nom de ma table ACCESS
txtRecherche est un textbox
txtCalcul est un textbox
RECHERCHE est le nom de ma colonne dans ma BD ACCESS
CALCUL est le nom de ma colonne dans ma BD ACCESS
UPDATE est ma condition....

mais je ne sais pas comment inscrire le code correctement


J'attends de tes nouvelles...

merci d'avance
0
cs_dan80 Messages postés 101 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 19 avril 2006
29 juin 2005 à 14:51
exemple:
1 table Action
2 champs : N°Action,NomAction

on veut modifier le nom de l'action 3

update Action set(NomAction)=( ' " & txtAction.text & " ') where N°Action=" & txtN°Action.text & "

attention a la syntaxe pour les variables:

' " & (string) & " '
" & (integer) & "
# " & (date) & " #

demande si tu ve d'autres infos
0
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
29 juin 2005 à 15:21
ca n'enregistre pas car BD est ouvert en mode dynamic (Select)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
29 juin 2005 à 15:26
en plus tu n'as pas affecter les champs par leur textbox avant l'update
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
29 juin 2005 à 16:37
tu peux me donner une exemple stp ????


En mode dynamic.... je ne savais meme pas que j'étais en mode dynamic... héhéhéhé

Et c'est quoi le ocde pour affcter les champs avec les textbox...

Si je crois ce que je pense je l'ai ai activé dans mon ACTIVAT

voici le code

Private Sub Form_Activate()
'Chargement des textbox a l'activation de la Form
Set txtDossier.DataSource = BD
txtDossier.DataField = "DOSSIER"
Set txtLivraison.DataSource = BD
txtLivraison.DataField = "LIVRAISON"
Set txtTravail.DataSource = BD
txtTravail.DataField = "TRAVAIL"
Set txtRecherche.DataSource = BD
txtRecherche.DataField = "RECHERCHE"
Set txtAttenteTerrain.DataSource = BD
txtAttenteTerrain.DataField = "ATTENTE_TERRAIN"
Set txtCalcul.DataSource = BD
txtCalcul.DataField = "CALCUL"
Set txtDessin.DataSource = BD
txtDessin.DataField = "DESSIN"
Set txtRapport.DataSource = BD
txtRapport.DataField = "RAPPORT"
Set txtYvon.DataSource = BD
txtYvon.DataField = "YVON"
Set txtAttenteTirroir.DataSource = BD
txtAttenteTirroir.DataField = "ATTENTE_TIRROIR"
Set txtReference.DataSource = BD
txtReference.DataField = "RÉFÉRENCE"
Set txtRemarque.DataSource = BD
txtRemarque.DataField = "REMARQUE"

End Sub

J'attends de tes nouvelles...
0
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
30 juin 2005 à 11:54
Ouvrir une table :

Dim TmpRs as ADODB.Recordset

Set TmpRs = New ADODB.Recordset
TmpRs.Open "Param", CNX, adOpenStatic
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
30 juin 2005 à 18:14
Salut c'est encore moi...

meric pour le code... mais serait-il possible d'avoir plus d'information....

Je veux tout comprendre....

Tu me dit que ma BD est ouverte en mode dynamic (Select. Mais le code que tu m'a mit à ton dernier message... Ma BD sera en quel mode ???

Deuxièment, j'ai encore bcp de difficulté a saisir les paramêtre qu'on peut utiliser avec ADO... Ca peut ressembler a quoi les paramètres avec mon code ????

J'ai écrit ca comme code mais ca plante...

BD.Open "from dossiers_actif", Connection, adOpenStatic

J'ai bcp de difficulté avec les paramètres

Voici la totalité du code pour le Load de ma Form

'Déclaration des deux variables pour la connexion
Dim Connection As New ADODB.Connection
Dim BD As New ADODB.Recordset
Dim BD2 As New ADODB.Recordset

Private Sub cmdSave_Click()
BD.Update

End Sub

Private Sub Form_Load()

'Type de bases de donnée pour la connexion (Pour Acces 2000 (4.0), pour la version 95 et 97 (3.51)
Connection.Provider = "Microsoft.jet.OLEDB.4.0"
'Chemin de la base de donnée (APP.PATH permet de ce mettre dans le chemin
'courant la ou ce trouve le projet)- Paramettrage de la chaine de connection
Connection.ConnectionString = App.Path & "\dossier_actif.mdb"
'Ouverture de la connection
Connection.Open

Set BD = New ADODB.Recordset

'Ouverture de la requête sql dans le recordset

'******************************************************************
'CODE QUE J'AVAIS AVANT TON EXPLICATION
'BD.Open "Select * from dossiers_actif", Connection, adOpenDynamic, adLockOptimistic
'*******************************************************************
BD.Open "from dossiers_actif", Connection, adOpenStatic


Me.Show

Form_Activate

txtRechercheNormale.SetFocus


Merci encore
0
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
1 juil. 2005 à 10:09
Salut ,

La structure est :

BD.Open "nom_table", Connection, adOpenStatic

donc au lieu de BD.Open "from dossiers_actif", Connection, adOpenStatic
mets
BD.Open "dossiers_actif", Connection, adOpenStatic


ensuite
dans

Private Sub cmdSave_Click()
BD!Champs1=tontextboxchamps1
BD!Champs2=tontextboxchamps2
...
BD.Update

End Sub
0
Rejoignez-nous