Je suis en train de faire un ActiveX en VB sous SQL=20
Server, et dans celui-ci je cr=E9e un recordset sur une=20
table de SQL.
Ce recordset est donc cr=E9=E9 comme cela :
MonRst =3D CreateObject("ADODB.Recordset")=20
et instanci=E9 par un open avec ma connection =E0 la base.
Mon probl=E8me est que lorsque je parcours dans mon code mon=20
recordset par un "Do While not MonRst.EOF" j'aimerai en=20
plein milieu de ma boucle mettre =E0 jour ce recordset.=20
Si je fais un update sur ma table, il n'est bien sur pas=20
pris en compte dans mon recordset. Un MonRst.Edit est=20
refus=E9, puis-je d=E9clarer un recordset =E9ditable pour palier=20
ce probl=E8me ?
Je pourrai fermer et rouvrir mon recordset apr=E8s l'update,=20
mais cela m'embete car je ne voudrai pas perdre mon=20
positionnement sur celui-ci.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Zoury
Salut Gafish!
puis-je déclarer un recordset éditable pour palier ce problème ?
Yep! Je ne sais pas comment tu l'ouvres présentement, mais lit ce document il devrait t'aider à comprendre les différents type de curseur.. http://support.microsoft.com/directory/worldwide/fr/white/adocurs.doc
Merci de poster les réponses au groupe afin d'en faire profiter à tous
Salut Gafish!
puis-je déclarer un recordset éditable pour palier
ce problème ?
Yep! Je ne sais pas comment tu l'ouvres présentement, mais lit ce document
il devrait t'aider à comprendre les différents type de curseur..
http://support.microsoft.com/directory/worldwide/fr/white/adocurs.doc
puis-je déclarer un recordset éditable pour palier ce problème ?
Yep! Je ne sais pas comment tu l'ouvres présentement, mais lit ce document il devrait t'aider à comprendre les différents type de curseur.. http://support.microsoft.com/directory/worldwide/fr/white/adocurs.doc
Tu peux le faire ou tu veux sans necessairement avoir access a ton record set a part comme pointeur sur le bon record avec lautre type de update !
La formule est "Update (nom de la table) set (champ) = (donnee) where (Identificatieur dans la base) = (endroit que pointe ton record set)"
Jespere que cest claire , sinon esite pas ! =)
Fred
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news: #
Salut Gafish!
> puis-je déclarer un recordset éditable pour palier > ce problème ?
Yep! Je ne sais pas comment tu l'ouvres présentement, mais lit ce document il devrait t'aider à comprendre les différents type de curseur.. http://support.microsoft.com/directory/worldwide/fr/white/adocurs.doc
Tu peux le faire ou tu veux sans necessairement avoir access a ton record
set a part comme pointeur sur le bon record avec lautre type de update !
La formule est "Update (nom de la table) set (champ) = (donnee) where
(Identificatieur dans la base) = (endroit que pointe ton record set)"
Jespere que cest claire , sinon esite pas ! =)
Fred
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news: #Pyemuj9DHA.2432@TK2MSFTNGP09.phx.gbl...
Salut Gafish!
> puis-je déclarer un recordset éditable pour palier
> ce problème ?
Yep! Je ne sais pas comment tu l'ouvres présentement, mais lit ce document
il devrait t'aider à comprendre les différents type de curseur..
http://support.microsoft.com/directory/worldwide/fr/white/adocurs.doc
Tu peux le faire ou tu veux sans necessairement avoir access a ton record set a part comme pointeur sur le bon record avec lautre type de update !
La formule est "Update (nom de la table) set (champ) = (donnee) where (Identificatieur dans la base) = (endroit que pointe ton record set)"
Jespere que cest claire , sinon esite pas ! =)
Fred
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news: #
Salut Gafish!
> puis-je déclarer un recordset éditable pour palier > ce problème ?
Yep! Je ne sais pas comment tu l'ouvres présentement, mais lit ce document il devrait t'aider à comprendre les différents type de curseur.. http://support.microsoft.com/directory/worldwide/fr/white/adocurs.doc
Tu mélanges 2 techniques dans ton exemple... l'appel de la fonction Update et dans ce cas ci est inutile..
la première ligne de code fait la mise à jour des données par l'intermédiaire de l'objet Recordset et ne fonctionne par si le curseur du dit recordset n'est correctement initialisé.
Voici un exemple de la syntaxe à utiliser avec Update : http://msdn.microsoft.com/library/en-us/ado270/htm/mdmthupdatex.asp
la deuxième ligne de code n'est vraiment qu'une requête SQL exécuté sur une base de données, ce qui peut être exécuté de manière indépendamment du recordset. Suite à la requête Update, il faudra refaire une requête Select afin de récupérer les données mises à jour dans le Recordset...
Tu mélanges 2 techniques dans ton exemple... l'appel de la fonction Update
et dans ce cas ci est inutile..
la première ligne de code fait la mise à jour des données par
l'intermédiaire de l'objet Recordset et ne fonctionne par si le curseur du
dit recordset n'est correctement initialisé.
Voici un exemple de la syntaxe à utiliser avec Update :
http://msdn.microsoft.com/library/en-us/ado270/htm/mdmthupdatex.asp
la deuxième ligne de code n'est vraiment qu'une requête SQL exécuté sur une
base de données, ce qui peut être exécuté de manière indépendamment du
recordset. Suite à la requête Update, il faudra refaire une requête Select
afin de récupérer les données mises à jour dans le Recordset...
Tu mélanges 2 techniques dans ton exemple... l'appel de la fonction Update et dans ce cas ci est inutile..
la première ligne de code fait la mise à jour des données par l'intermédiaire de l'objet Recordset et ne fonctionne par si le curseur du dit recordset n'est correctement initialisé.
Voici un exemple de la syntaxe à utiliser avec Update : http://msdn.microsoft.com/library/en-us/ado270/htm/mdmthupdatex.asp
la deuxième ligne de code n'est vraiment qu'une requête SQL exécuté sur une base de données, ce qui peut être exécuté de manière indépendamment du recordset. Suite à la requête Update, il faudra refaire une requête Select afin de récupérer les données mises à jour dans le Recordset...
Merci de poster les réponses au groupe afin d'en faire profiter à tous
Himselff
Hehe , je crois que ta pas vraiment lu sont post, il loop deja dans son recordset et rendu a tel place (pointeur) il veut l'updater , donc je ne vois aucune autre facon de mettre a jour les donnner dans sa base !
My 2 cents =)
Fred
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news: #7$
Salut! :O)
> Tu peux toujours updater live ta base de donnee, il sagit juste au lieu
de
> faire :
si le recordset est ouvert en lecture seul, ce ne sera pas possible, une erreur sera levée..
Tu mélanges 2 techniques dans ton exemple... l'appel de la fonction Update et dans ce cas ci est inutile..
la première ligne de code fait la mise à jour des données par l'intermédiaire de l'objet Recordset et ne fonctionne par si le curseur du dit recordset n'est correctement initialisé.
Voici un exemple de la syntaxe à utiliser avec Update : http://msdn.microsoft.com/library/en-us/ado270/htm/mdmthupdatex.asp
la deuxième ligne de code n'est vraiment qu'une requête SQL exécuté sur
une
base de données, ce qui peut être exécuté de manière indépendamment du recordset. Suite à la requête Update, il faudra refaire une requête Select afin de récupérer les données mises à jour dans le Recordset...
Merci de poster les réponses au groupe afin d'en faire profiter à tous
Hehe , je crois que ta pas vraiment lu sont post, il loop deja dans son
recordset et rendu a tel place (pointeur) il veut l'updater , donc je ne
vois aucune autre facon de mettre a jour les donnner dans sa base !
My 2 cents =)
Fred
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news: #7$ALsk9DHA.2316@TK2MSFTNGP11.phx.gbl...
Salut! :O)
> Tu peux toujours updater live ta base de donnee, il sagit juste au lieu
de
> faire :
si le recordset est ouvert en lecture seul, ce ne sera pas possible, une
erreur sera levée..
Tu mélanges 2 techniques dans ton exemple... l'appel de la fonction Update
et dans ce cas ci est inutile..
la première ligne de code fait la mise à jour des données par
l'intermédiaire de l'objet Recordset et ne fonctionne par si le curseur du
dit recordset n'est correctement initialisé.
Voici un exemple de la syntaxe à utiliser avec Update :
http://msdn.microsoft.com/library/en-us/ado270/htm/mdmthupdatex.asp
la deuxième ligne de code n'est vraiment qu'une requête SQL exécuté sur
une
base de données, ce qui peut être exécuté de manière indépendamment du
recordset. Suite à la requête Update, il faudra refaire une requête Select
afin de récupérer les données mises à jour dans le Recordset...
Hehe , je crois que ta pas vraiment lu sont post, il loop deja dans son recordset et rendu a tel place (pointeur) il veut l'updater , donc je ne vois aucune autre facon de mettre a jour les donnner dans sa base !
My 2 cents =)
Fred
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news: #7$
Salut! :O)
> Tu peux toujours updater live ta base de donnee, il sagit juste au lieu
de
> faire :
si le recordset est ouvert en lecture seul, ce ne sera pas possible, une erreur sera levée..
Tu mélanges 2 techniques dans ton exemple... l'appel de la fonction Update et dans ce cas ci est inutile..
la première ligne de code fait la mise à jour des données par l'intermédiaire de l'objet Recordset et ne fonctionne par si le curseur du dit recordset n'est correctement initialisé.
Voici un exemple de la syntaxe à utiliser avec Update : http://msdn.microsoft.com/library/en-us/ado270/htm/mdmthupdatex.asp
la deuxième ligne de code n'est vraiment qu'une requête SQL exécuté sur
une
base de données, ce qui peut être exécuté de manière indépendamment du recordset. Suite à la requête Update, il faudra refaire une requête Select afin de récupérer les données mises à jour dans le Recordset...
Merci de poster les réponses au groupe afin d'en faire profiter à tous
Zoury
> Hehe , je crois que ta pas vraiment lu sont post, il loop deja dans son recordset et rendu a tel place (pointeur) il veut l'updater , donc je ne vois aucune autre facon de mettre a jour les donnner dans sa base !
hmm... je crois que t'as pas lu le mien.. ;O) je ne dit pas que d'utiliser l'une ou l'autre des méthodes est incorrecte ou inaproprié dans ce cas, je voulais seulement te faire remarquer que tu mélanges 2 façons de faire... Il faudrait en choisir une des 2...
exemple par Update (le rs est ouvert avec adOpenKeyset et adLockOptimistic) '*** ' Met à jour le champs Nom de chaque enregistrement du recordset Do Until rs.EOF
rs.Fields("Nom").Value = "" Call rs.Update
Call rs.MoveNext Loop '***
ainsi aucune requête n'est nécessaire et le recordset reste à jour...
Merci de poster les réponses au groupe afin d'en faire profiter à tous
> Hehe , je crois que ta pas vraiment lu sont post, il loop deja dans son
recordset et rendu a tel place (pointeur) il veut l'updater , donc je ne
vois aucune autre facon de mettre a jour les donnner dans sa base !
hmm... je crois que t'as pas lu le mien.. ;O)
je ne dit pas que d'utiliser l'une ou l'autre des méthodes est incorrecte ou
inaproprié dans ce cas, je voulais seulement te faire remarquer que tu
mélanges 2 façons de faire... Il faudrait en choisir une des 2...
exemple par Update (le rs est ouvert avec adOpenKeyset et adLockOptimistic)
'***
' Met à jour le champs Nom de chaque enregistrement du recordset
Do Until rs.EOF
rs.Fields("Nom").Value = ""
Call rs.Update
Call rs.MoveNext
Loop
'***
ainsi aucune requête n'est nécessaire et le recordset reste à jour...
> Hehe , je crois que ta pas vraiment lu sont post, il loop deja dans son recordset et rendu a tel place (pointeur) il veut l'updater , donc je ne vois aucune autre facon de mettre a jour les donnner dans sa base !
hmm... je crois que t'as pas lu le mien.. ;O) je ne dit pas que d'utiliser l'une ou l'autre des méthodes est incorrecte ou inaproprié dans ce cas, je voulais seulement te faire remarquer que tu mélanges 2 façons de faire... Il faudrait en choisir une des 2...
exemple par Update (le rs est ouvert avec adOpenKeyset et adLockOptimistic) '*** ' Met à jour le champs Nom de chaque enregistrement du recordset Do Until rs.EOF
rs.Fields("Nom").Value = "" Call rs.Update
Call rs.MoveNext Loop '***
ainsi aucune requête n'est nécessaire et le recordset reste à jour...