Rs.update

Signaler
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015
-
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
-
Salut !

J'ai un soucis au niveau de l'update
voici mon code :

Dim Con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim requete As String

Private Sub Bouton2_Click()
rs.Update
rs![NomCarte] = Text01
rs![Valide] = Text06
rs.Update
End Sub

Private Sub Form_Load()
Con.Provider = "MSDASQL.1; Persist Security Info=False; User ID=root; Data Source=MySQL; Initial Catalog=dB"
Con.Open
requete = "SELECT * from Carte"
rs.CursorLocation = adUseClient
rs.Open requete, Con, adOpenStatic, adLockOptimistic
rs.ActiveConnection = Con
End Sub


La connexion fonctionne à présent, l'ajout fonctionne mais l'édition édite toujours la première ligne.

Pouvez-vous m'aider svp à éditer la ligne de l'enregistrement en cours ?

Merci

----------
OS : Windows XP SP3 et Vista 32
Platforme : VB 6.0 + SP6
Ok VB6.0 c'est pas net !

8 réponses

Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
Bonjour,

l'ajout fonctionne mais l'édition édite toujours la première ligne.

Qu'appelles-tu l'édition, s'il s'agit d'un update (mise à jour) d'un enregistrement, il faut d'abord te positionner dessus. Là tu travailles sur un jeu de n enregistrements et seul le premier sera mis à jour.

Calade
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

Oui c'est exactement cela, comment arriver à l'enregistrement souhaité est ma question...
as tu une solution stp ?
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
Il faut te positionner dessus à l'aide d'une des méthodes suivantes:

rs.Find (c'est la plus répandu)

rs.Movexxx (pour se déplacer dans le recordset sans condition particulière.

Regarde ton aide pour comment programmer tout cela et reviens nous voir avec ton code.


Calade
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

Voilà ce que j'obtiens mais toujours avec erreur :
Set rs = rs.Open("select * from CarteAdmin where CodeID=""" & Text04 & """;")
rs.Update
    rs![NomCarte] = Text01
    rs![Valide] = Text06
rs.Update
rs.MoveNext


J'ai essayé de voir MSDN, google, vbfrance et developpez, rien à faire, personne ne parle de find...
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
Déjà, donnes le libellé de l'erreur ET la ligne sur laquelle elle se produit.

Je suis sur que cela pourra aider.


Calade
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

Alors j'ai édité un peux le code :
rs.Open ("select * from CarteAdmin where CodeID=""" & Text04 & """;")
rs.Update
    rs![NomCarte] = Text01
    rs![Valide] = Text06
rs.Update
rs.MoveNext


J'ai cette erreur :
Erreur d'exécution '-2147217900 (80040e14)':
[MySQL][ODBC 5.1 Driver][mysqld-5.0.22]Unknown column 'CodeID' in 'where clause'

sur cette ligne
rs.Open ("select * from CarteAdmin where CodeID=""" & Text04 & """;")
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

voilà où j'en suis :
Dim CodeID As String
Dim NomCarte As String
Dim Valide As String
        
rs.Open "select * from CarteAdmin where CodeID ='" & Text04 & "' ", Con, adOpenDynamic, adLockOptimistic
Con.Execute "update [CarteAdmin] set [NomCarte]='" & Text01 & "' where [CodeID]= '" & Text04 & "' "
Con.Execute "update [CarteAdmin] set [Valide]='" & Text06 & "' where [CodeID]= '" & Text04 & "' "
rs.Close


Mais là je rencontre cette superbe erreur non réglé :
Erreur d'exécution '-2147217900 (80040e14)':
[MySQL][ODBC 5.1 Driver][mysqld-5.0.22]Unknown column 'CodeID' in 'where clause'


Je ne sais plus quoi faire :/
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
Bonjour,

Cela signifie simplement (c'est écrit noir sur blanc) que la colonne "CodeID" n'existe pas dans la table "CarteAdmin". Vérifie la structure de ta table.

De plus modifies tes requêtes dans ce sens:

rs.Open "select * from CarteAdmin where CodeID ='" & Text04.text & "' ", Con, adOpenDynamic, adLockOptimistic


N'utilises pas les propriétés par défaut, ce sont des pièges à plus ou moins long terme même pour les développeurs chevronnés.


Calade