Visual Basic - Problema con DataGrid enlazado con ADO

Life is soft - evento anual de software empresarial
 
Vista:

Problema con DataGrid enlazado con ADO

Publicado por fede (6 intervenciones) el 26/12/2005 18:54:37
En primer lugar felices fiestas para todos y después el problema.

Utilizando un DataGrid enlazado con un AdoControl en una aplicación Visual Basic, tengo el siguiente problema:

Cuando estoy en el último campo de la última línea del DataGrid y le doy TAB me debería añadir un nuevo registro, y la primera vez lo hace, pero si sigo dando datos hasta completar otro registro, en lugar de irse al registro añadido, me activa el penúltimo registro y tengo que dar 2 veces a la tecla Abajo para ir al registro recién añadido y poder rellenar todos los campos del mismo y así sucesivamente.

Curiosamente sólo me ocurre cuando el LockType del ControlAdo está a adLockBatchOptimistic, si utilizo cualquier otro tipo de bloqueo no me pasa. El problema es que tengo que utilizar este tipo de bloqueo ya que necesito actualizar por bloques.

Para probarlo sin código, me he creado un formulario donde he incluido un ADO con una conexión a una base de datos Access y un DBGrid enlazado al mismo y sin teclear una sola línea de código lo pruebo y me falla. He probado cambiando varias propiedades del ADO y del GRID pero no consigo que funcione con LockType=adLockBatchOptimistic.

¿Alguien sabe como solucionarlo?

Muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 7
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:Problema con DataGrid enlazado con ADO

Publicado por El Viejo Charles (262 intervenciones) el 27/12/2005 00:51:54
Mmm me llama mucho la atencion tu interrogante y me gustaria que me mostraras el codigo, solo por ver nunca he visto o escuchado de un error como ese posiblemente sea algo en tu base de datos o algun error tan pequeño que no has visto, eso suele sucedernos a todos, en fin, si lo deseas enviame la base de datos junto con el codigo fuente y miramos, con mucho gusto te ayudo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con DataGrid enlazado con ADO

Publicado por fede (6 intervenciones) el 27/12/2005 11:24:21
En primer lugar gracias por interesarte.

Y en cuanto al problema en cuestión, lo gracioso es que no escribo nada de código y me falla, me explico:

- Creo un nuevo proyecto exe estándar.
- Añado los componentes Microsoft ADO Data Control 6.0 (SP6) (OLEDB) y Microsoft DataGrid 6.0 (SP6) (OLEDB).
- Los coloco en el formulario (no les cambio el nombre).

- En las propiedades "especiales" del ADO le digo lo siguiente:
--- Usar cadena de conexión
--- Botón Generar
--- Elijo el proveedor Microsoft Jet 4.0 OLE DB Provider
--- Botón Siguiente
--- Busco la base de datos (puede ser cualquiera)
--- Pruebo conexión y me dice OK
--- Y sin cambiar nada mas Acepto

- En las propiedades "normales" del ADO le indico:
--- RecordSource = (Cualquier tabla de la base de datos)

- En las propiedades del DataGrid:
--- DataSource= Adodc1
--- AllowAddNew = True
--- AllowDelete= True
--- WrapCellPointer= True

Y sin cambiar nada más y sin poner una sola línea de código, pruebo a añadir nuevos registros y lo hace perfectamente.

Pero si cambio la propiedad del ADO LockType por adLockBatchOptimistic e intento añadir registros a la tabla, cuando en el último campo del registro añadido pulso flecha abajo para ir a un nuevo registro (que con el LockType anterior funcionaba), en lugar de ir hacia abajo se posiciona en el registro anterior al recién añadido, por lo que tengo que pulsar otras 2 veces hacia abajo para poder añadir datos.

En resumidas cuentas, no sé si me falta cambiar alguna propiedad especial (he probado con un montón y sigue fallando) o tengo que añadir algo de código, pero no sé donde, porque no se ejecuta ni el evento BeforeInsert ni el evento AfterInsert del DataGrid que serian los lugares más apropiados para controlar esto.

Por supuesto he probado en varios ordenadores y me pasa lo mismo.

O sea, que me estoy volviendo loco para solucionar este problema y no doy con la solución (que seguro que es una tontería), por lo que te agradecería mucho que me ayudaras a solucionarlo.

Gracias de antemano y felices fiestas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con DataGrid enlazado con ADO

Publicado por fede_orla (6 intervenciones) el 28/12/2005 13:04:39
¿Hay alguien que haya utilizado un control ADO con la propiedad LockType=adLockBatchOptimistic enlazado con un DBGRID, y que le funcione perfectamente?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:Problema con DataGrid enlazado con ADO

Publicado por El Viejo Charles (262 intervenciones) el 28/12/2005 21:52:26
Oiga viejo que pena te respondi y te ofreci mi ayuda y se me olvido volver a responder, menos mal localice nuevamente tu mensaje, bueno te acabo de enviar un ejemplillo donde enlazo un AdoDatControl con un DataGrid y hago lo que tu dices y me lo deja hacer sin problemas, agrego, cambio y elimino datos, espero y te funcione.
suerte colega
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con pasar de access una base de datos

Publicado por kim (1 intervención) el 19/01/2006 01:22:00
hola nose como pasar una base de datos de access a visual alguien sabe me puede rsesponder ahora
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar