Updatebatch provoquant une erreur

horko Messages postés 53 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 19 juillet 2005 - 28 juin 2004 à 13:30
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 - 28 juin 2004 à 14:36
Est ce une erreur windows ?
Mon problème est le suivant :
Dans une base access je veux mettre à jour un champ texte (255) d'une table quelconque.
Mon texte est composé de caractères arabe et latin, le tout fait 254 caractères. Le texte est d'abord saisi sous access sans problèmes. Mais lorsque j'essaye de changer la valeur de ce champ sous VB6 ca me plante tout le temps.

dim adoconnection as ADODB.Connection
dim adorecordset as ADODB.Recordset

set adoconnection = new ADODB.Connection
set adorecordset = new ADODB.Recordset

with adoconnection
  .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Base.mdb"
  .open
end with

with adorecordset
  .ActiveConnection = adoconnection
  .CursorLocation = adUseClient
  .LockType = adLockBatchOptimistic
  .open "select * from Table_1"
  .Fields("csTitre").Value = "baba"
  .Update
  if .LockType = adLockBatchOptimistic then .UpdateBatch
end with


voila un petit exemple qui me retourne l'erreur.
C est tout con je sais, ca devrais fonctionner à merveille mais arriver sur l'UpdateBatch j'ai l'erreur -2147217864 qui est renvoyée (La ligne n'a pas pu être trouvée pour la mise à jour).

3 réponses

cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
28 juin 2004 à 13:40
Deja tu peux tester le fait que des Enregistrement soit Selectionnée...ca se fait d'hab...on sait jamais

.open "select * from Table_1"
if .Recordcount<>0 then
.Edit
.Fields("csTitre").Value = "baba"
.Update
end if

et il me semble qu'il faut un .Edit !!
.AddNEw pour un nouvel Enregistrement

It@li@
0
horko Messages postés 53 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 19 juillet 2005
28 juin 2004 à 14:31
le problème est pas de savoir si il y a quelque chose dans ma table. Je sais qu il y a des données. Le problème c est que lors de l'UpdateBatch il me balance un message comme quoi la ligne n'est pas trouvée. Ca fait comme si la taille du champ était dépassée dans le recordset.
Autre petit detail, ma string en UTF8 fait un peu plus de 280 octets mais rentre parfaitement dans mon champ sous access.
Le problème vient du recordset mais la je bloque, je n ai aps trouvé l'erreur correspondante sur le site de windows, du moins pas pour un champ texte sous access lors d un update bête et con.
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
28 juin 2004 à 14:36
il me semble que t'as oublié le .Edit avant d'attribuer ta nouvelle valeur
It@li@
0