problemilla con BD y Visual Basic

Iniciado por juanin21, 19 Mayo 2008, 04:08 AM

0 Miembros y 2 Visitantes están viendo este tema.

juanin21

Hola, tengo un problemilla con una aplicación que estoy haciendo...y queria saber si alguien me puede echar una mano...
Es un programa que accede a una BD de Access y permite leer, escribir..lo tipico..vamos..El 'problema' que tengo es que cuando le doy a Insertar nuevo registro el propio control DATA de VB me genera un número ( cosa logica porque en la base de datos este campo lo defini como autonumerico ) para el nuevo registro. Espero haberme explicado bien hasta este punto..ahora pondre codigo para que lo entiendan mejor.

Si yo quiero cancelar ese nuevo registro, es decir, no crearlo, VB ya lo escribe en la BD, entonces siempre me esta 'creando' registros vacios, y aunque no existan fisicamente, ya no dispongo de ese numero ID para cuando quiera crear uno de verdad.

Por ejemplo, voy por el registro 7 y digo de Añadir uno nuevo..VB me crea el 8 en la BD...pero digamos que no quiero escribir nada, pues lo cancelo pero la BD ya se ha actualizado con un nuevo registro mas que en realidad no existe y el numero de ID de registro crece sin control.... :-\ :-\

Codigo:

    'añadimos un registro..
    Data1.Recordset.AddNew

si lo quiero cancelar, escribo esto:
    'cancelamos la edicion/modificacion del registro..
    Data1.Recordset.CancelUpdate

pero ya es tarde, la BD ya ha sido modificada...y el ID de registro ya se ha perdido.


Hay alguna forma de cancelar este proceso y que no guarde en la BD ??????
Ya no se que hacer...he probado mil cosas y buscado por todas partes...ayudenme porfavor..Gracias :-(

SKL (orignal)

2 cosas...


1ro, ne vez de creear el registro al inicio del programa o cuando ingreses los datos, porqeu no lo haces al momento de apreguar GUARDAR?

entonces no estas creando nada hasta no saber si lo vas a guardar o no

2do, no uses el control data, es la peor basura que existe

usa el control adodc o sino hacelo por codigo, ya que solo toma db de access 97, usa el codigo y podes usar hasta acesss 2007...

saludos

cassiani

Exacto!! como dice skullsp, fíjate... el método AddNew crea un nuevo registro, lo que sucede es que lo has programado mal (eso es lo que parece), no lo uses en la opción agregar, sino en una como "Actualizar por ejemplo", es decir, imagina que tienes un menú con varias opciones, agregar, modificar, eliminar, etc. cuando presiones agregar, se desbloquea un frame que te permite introducir datos en un par de textbox, pero solo se creara el registro cuando presiones el botón "Actualizar", de esa manera no estarás creando registros a lo loco, sino cuando estes seguro de querer almacenar esos datos.



juanin21

Teneis razon en las 2 cosas..
Mejor me abro un formulario aparte o algo por el estilo para poder almacenar los datos antes de confirmacion el guardado.
Ya, se que es una basura pero queria empezar a meterme un poco en el mundillo este de las BD y queria empezar desde abajo, pero si probare otras cosas.

Muchas gracias skullsp y cAssiAni ;)