Rs.update

Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015 - 17 mai 2010 à 14:23
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 - 18 mai 2010 à 08:28
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

Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
17 mai 2010 à 14:33
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
0
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
17 mai 2010 à 14:35
Oui c'est exactement cela, comment arriver à l'enregistrement souhaité est ma question...
as tu une solution stp ?
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
17 mai 2010 à 14:40
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
0
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
17 mai 2010 à 15:49
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...
0

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

Posez votre question
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
17 mai 2010 à 16:40
Déjà, donnes le libellé de l'erreur ET la ligne sur laquelle elle se produit.

Je suis sur que cela pourra aider.


Calade
0
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
17 mai 2010 à 17:38
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 & """;")
0
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
17 mai 2010 à 22:34
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 :/
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
18 mai 2010 à 08:28
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
0
Rejoignez-nous