Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

error (80040e4e) ADO

159 views
Skip to first unread message

MhBeyle

unread,
Sep 18, 2008, 4:36:23 AM9/18/08
to
Error -2147217842 (80040e4e) en tiempo de ejecución:
Operación cancelada.

No entiendo muy bien a qué se debe exactamente este error.

En el proyecto que estoy desarrollando, se abre un recordset para
lectura/ escritura sobre una base de datos de MS SQL Server 2000:

cnn_sql.Open "Provider=SQLOLEDB.1;" & _
"Data Source=" & Srv & ";" & _
"Initial Catalog=" & dB & ";" & _
"User Id=" & uID & ";" & _
"Password=" & pwd

rst.Open CadSQL, cnn_sql, adOpenStatic, adBatchOptimistic, adCmdText

Existe un formulario que lleva enlazados los cuadros de texto a dicho
recordset (DataSource) y existe, en ese mismo formulario, un ListBox
que actualiza los cuadros de texto según el código que se seleccione,
dentro de la lista. Para hacer la actualización de los cuadros de
texto, desplazo el cursor hasta el índice correspondiente con la
siguiente instrucción:

rst.MoveFirst
rst.Find "COD = " & CInt(LBContactos.ListIndex)

Y aquí falla, en el Find. Unas veces sí y otras no. Y no logro definir
un patrón coherente que reproduzca el fallo. Unas veces falla la
segunda vez que se selecciona un registro, otras falla a la décima.
Unas veces con un registro, otras con otro. He logrado reproducir una
cadena de selecciones que siempre termina en error, pero no tiene nada
que ver con ese registro en concreto ni con el número de veces que se
hace el Find.
He buscado en foros, en el MSDN, en Google. No sé por qué se produce
ese error ni qué significa.

La única forma de evitar este error es rellenando los cuadros de texto
en tiempo real mediante código, sin hacer uso de la propiedad
DataSource, pero preferiría utilizar esta última por una cuestión de
código en librerías ya escrito que no deseo reescribir.

A ver si alguien arroja un poco de luz al asunto, por favor.

MhBeyle __

Víctor Gómez

unread,
Sep 18, 2008, 12:09:07 PM9/18/08
to
Hola MhBeyle,

La verdad es que nunca he tenido este error, pero averiguando en la
página de soporte de microsoft encontré esto, ojala te sirva.

http://search.microsoft.com/results.aspx?q=Error+2147217842&qsc0=0&SearchBtn0=Buscar&FORM=QBME1&l=1&mkt=es-MX&PageType=99

Saludos!!!

MhBeyle

unread,
Sep 19, 2008, 5:53:06 PM9/19/08
to
Gracias, Víctor. Ya había leído todos esos casos de error (y muchos
más). Desesperado, hice algo más de caso al primero de ellos:

http://support.microsoft.com/default.aspx?scid=kb;en-us;257790

En él hablan de que cuando se hace un CancelUpdate después de un
AddNew, se puede generar ese error si el tipo de datos devuelto por el
TextBox no es correcto (DataFormat).
Yo no cambiaba datos ni añadía nada al recordset y por eso no me fijé
en el caso, pues no se aplicaba a nada de lo que yo estuviera
haciendo. Sin embargo, ya digo que, desesperado, decidí añadir al
DataFormat de un campo numérico la propiedad correspondiente... Y
empezó a funcionar todo como por arte de magia.
En toda mi aplicación, ningún TextBox lleva la propiedad DataFormat
habilitada. Hago cientos de consultas por todos los lados y no hay
problema de ningún tipo con la actualización de los datos. Sin
embargo, en este caso, el no tener la propiedad DataFormat de un
determinado TextBox igualada a un formato numérico genera ese error,
lo cual coincide, en parte, con el caso de la msdn de microsoft (al
revés y de refilón, pero coincide).

Dejo esto aquí escrito por si alguien se encuentra con este problema y
ya no sabe qué hacer. Que nadie pregunte por qué motivo sucede esto y
cuándo sucede porque la solución está más allá de mi conocimiento y,
creo, del de todo bicho viviente :)

MhBeyle ___

Víctor Gómez <victorg...@gmail.com> escribió lo siguiente ...

0 new messages