Actualizar un DBGrid en Visual Basic 6.0
Hola!!!
Necesito ayuda, no entiendo que es lo que estoy haciendo mal o ques lo que me falta hacer para que el programa ejeute lo que yo le digo... Explico: Tengo una Base de Datos en Access que contiene varias tablas y esta base es conectada con un Data en un formulario, a su vez este Data es conectado a un DBGrid para mostrar los resultados. Este formulario contiene tres botones principales Buscar, Guardar y Eliminar, en resumen es una administración de los registros de una B.D. El problema que tengo es que cuando elimino una cuenta y le doy nuevamente buscar me sigue apareciendo el registro, como que el Data no se actualiza, así mismo cuando Guardo una cuenta no la guarda en el primer clic al botón sino hasta el segundo clic.
El código que utilizo es el siguiente:
Tengo una función que obtiene la tabla y el productoa es una variable que ingresa el usuario, ya que obtengo la tabla hago lo siguiente:
Data1.connect = ";pwd=password de la base"
Data1.databasename = Ruta de la Base
Data1.Recordsource = "SELECT producto, precio, empresa FROM [ "& Tabla & "] WHERE producto = ' " & productoa & " ' and status = 'Alta';"
Data1.Refresh
if Data1.Recordset.EOF then
Msgbox"No hay resultados"
else
Muestra el DBGrid con los resultados
End if
Ese es el código para buscar un producto, es el código que ejecuta después de eliminar un producto o cuando solo deseo buscar un producto.
Para Guardar utilizo lo siguiente:
Obtengo tabla
Set GuardarReg = Base.OperRecordset ("SELECT * FROM [ " & Tabla & "] WHERE producto = ' " & productoa & " ' ;")
if Not GuardarReg.EOF then
Edita
GuardarReg.Update
else
Addnew
GuardarReg.Update
end if
GuardarReg.Close
Y ejecuta el mismo código que al principio para buscar el registro y conectarlo con el DBGrid, el problema que aquí tengo es que cuando aunque el registro se guardo en la Base cuando llega a la parte de Data.Recordset.EOF me dice que es TRUE es decir que no encuentra el registro.
Algo que noté es que en la parte del SELECT si le quito la parte de Status si me lo hace bien, pero también debería hacerlo con esa condición. No sé si me haga falta dar de alta alguna referencia. Para eliminar es lo mismo que para guardar solo que si lo encuentra no uso DELETE no que el Status se cambia a Baja.
Espero haberme explicado
Muchas Gracias por su ayuda y apoyo
Necesito ayuda, no entiendo que es lo que estoy haciendo mal o ques lo que me falta hacer para que el programa ejeute lo que yo le digo... Explico: Tengo una Base de Datos en Access que contiene varias tablas y esta base es conectada con un Data en un formulario, a su vez este Data es conectado a un DBGrid para mostrar los resultados. Este formulario contiene tres botones principales Buscar, Guardar y Eliminar, en resumen es una administración de los registros de una B.D. El problema que tengo es que cuando elimino una cuenta y le doy nuevamente buscar me sigue apareciendo el registro, como que el Data no se actualiza, así mismo cuando Guardo una cuenta no la guarda en el primer clic al botón sino hasta el segundo clic.
El código que utilizo es el siguiente:
Tengo una función que obtiene la tabla y el productoa es una variable que ingresa el usuario, ya que obtengo la tabla hago lo siguiente:
Data1.connect = ";pwd=password de la base"
Data1.databasename = Ruta de la Base
Data1.Recordsource = "SELECT producto, precio, empresa FROM [ "& Tabla & "] WHERE producto = ' " & productoa & " ' and status = 'Alta';"
Data1.Refresh
if Data1.Recordset.EOF then
Msgbox"No hay resultados"
else
Muestra el DBGrid con los resultados
End if
Ese es el código para buscar un producto, es el código que ejecuta después de eliminar un producto o cuando solo deseo buscar un producto.
Para Guardar utilizo lo siguiente:
Obtengo tabla
Set GuardarReg = Base.OperRecordset ("SELECT * FROM [ " & Tabla & "] WHERE producto = ' " & productoa & " ' ;")
if Not GuardarReg.EOF then
Edita
GuardarReg.Update
else
Addnew
GuardarReg.Update
end if
GuardarReg.Close
Y ejecuta el mismo código que al principio para buscar el registro y conectarlo con el DBGrid, el problema que aquí tengo es que cuando aunque el registro se guardo en la Base cuando llega a la parte de Data.Recordset.EOF me dice que es TRUE es decir que no encuentra el registro.
Algo que noté es que en la parte del SELECT si le quito la parte de Status si me lo hace bien, pero también debería hacerlo con esa condición. No sé si me haga falta dar de alta alguna referencia. Para eliminar es lo mismo que para guardar solo que si lo encuentra no uso DELETE no que el Status se cambia a Baja.
Espero haberme explicado
Muchas Gracias por su ayuda y apoyo