Anda di halaman 1dari 14

Universidad Nacional del Este Facultad Politcnica Carrera de Anlisis de Sistemas Taller III Prof.

: Marcos Jara

Actualizacin de Tablas - ABM

Introduccin
En este documento se explica como realizar un programa completo de ABM (Altas-Bajas-Modificaciones) en Visual FoxPro para acceder a Bases de Datos externas tipo MS-Access, utilizando la clase [BD] de la librera para ejecucin de SQL . En este ejemplo se utilizar la base de datos de estudio [Biblioteca.mdb] de Microsoft Access y el ABM se realizar sobre la tabla Libros. Este ejemplo desarrolla el ABM de la forma ms bsica, de tal forma que el Alumno pueda comprender el funcionamiento y pueda aplicarlos a otros ejemplos con funcionalidades ms complejas y especficas. Los pasos para la creacin del ABM son los siguientes: 1. 2. 3. Crear una clase botonesABM: Esta clase contendr los botones comunmente utilizados en la mayora de los ABMs de cualquier sistema, estos botones son el Guardar, Incluir, Modificar, Eliminar, Cancelar y Cerrar. Crear una clase botonesNavegador: Esta clase tambin contendr botones, pero dichos botones sern tiles para la navegacin de registros, ej: primero, anterior, siguiente y ltimo. Crear el formulario para el ABM de Libro: Este es el formulario propiamente, donde se debern insertar todos los campos necesarios para insertar o actualizar datos en la Tabla. En este formulario tambin se insertarn la clase botonesABM y la clase botonesNavegador, creados en los pasos anteriores.

Paso 1: Crear la clase botonesABM


Para crear la nueva clase botonesABM utiliice el siguiente comando: CREATE CLASS botonesABM Basado en CONTAINER Almacenado dentro de la librera de clases mi_libreria.vcx

La clase debe tener los botones que se muestran en la siguiente figura:

Debe cambiar el nombre de cada uno de los botones a: bGuardar, bIncluir, bModificar, bEliminar, bCancelar y bCerrar respectivamente.

Propiedades a crear

Sin propiedades a crear.

Mtodos a crear
Crear las siguientes propiedades en la clase:

ModoEditar(), metodo que controla los 2 estados de la barra de botones, estado edicion y conculta. PostModoEditar(), mtodo que ser implementado posteriormente en el formulario.

Para ello, desde el diseador de clases acceda al men CLASSE/NUEVO MTODO.

Documento: BD - Ejemplo de ABM Autor:

Actualizacin: 12. oct. 2006 Pgina: 1 de 14

Universidad Nacional del Este Facultad Politcnica Carrera de Anlisis de Sistemas Taller III Prof.: Marcos Jara

Actualizacin de Tablas - ABM

Mtodos a implementar
Debe implementar en el mtodo CLIC de cada botn las acciones para llamar a mtodos del formulario, por ejemplo, en el mtodo CLIC del botn GUARDAR debe implementar lo siguiente: THISFORM.ACTIONGUARDAR() Esto har que cuando se presione sobre el botn Guardar se ejecute un mtodo del formulario llamado ACTIONGUARDAR(), mtodo que ser creado e implementado posteriormente en el formulario. A continuacin se especifican las dems acciones para cada uno de los botones:

botn GUARDAR boton INCLUIR botn MODIFICAR botn ELIMINAR botn CANCELAR botn CERRAR

===> ===> ===> ===> ===> ===>

THISFORM.ACTIONGUARDAR() THISFORM.ACTIONINCLUIR() THISFORM.ACTIONMODIFICAR() THISFORM.ACTIONELIMINAR() THISFORM.ACTIONCANCELAR() THISFORM.RELEASE()

A continuacin debe implementarse el mtodo creado a principios en la clase, llamado modoEditar(), para controlar el estado de la barra de botones, a continuacin se detalla las instrucciones que debe hacer en ste mtodo:

MTODO: BotonesABM.MODOEDITAR()
LPARAMETERS valorLogico

THIS.BGuardar.Enabled = valorLogico THIS.BIncluir.Enabled = !valorLogico THIS.BModificar.Enabled = !valorLogico THIS.BEliminar.Enabled = !valorLogico THIS.BCancelar.Enabled = valorLogico

THIS.POSTMODOEDITAR(valorLogico) Esto har posible que el conjunto de botones dentro de la clase botonesABM, est disponible en dos estados: el modo de edicin de registros y el modo de consulta de registros.

Modo de edicion de registros: cuando se llama al mtodo modoEditar(.T.) - pasando el parametro verdadero, en este momento se habilitan los botones Guardar y Cancelar y se deshabilitan los botones Incluir, Modificar y Eliminar. Modo de consulta de registros: cuando se llama al mtodo modoEditar(.F.) - pasando el parametro falso, en este momento se habilitan los botones Incluir, Modificar y Eliminar y se deshabilitan los botones Guardar y Cancelar .

Documento: BD - Ejemplo de ABM Autor:

Actualizacin: 12. oct. 2006 Pgina: 2 de 14

Universidad Nacional del Este Facultad Politcnica Carrera de Anlisis de Sistemas Taller III Prof.: Marcos Jara

Actualizacin de Tablas - ABM

Paso 2: Crear la clase botonesNavegador


El desarrollo de la clase botonesNavegador es similar a la clase desarrollada en el paso anterior (botonesABM). Esta clase tambien debe almacenarse en la librera de clases mi_libreria.vcx. Y ser utilizada para navegar por los registros de las tablas que se utilizarn en el sistema. Para crear la nueva clase botonesNavegador utiliice el siguiente comando: CREATE CLASS botonesNavegador Basado en CONTAINER Almacenado dentro de la librera de clases mi_libreria.vcx

En la siguiente figura se muestra la apariencia que debe tener esta clase:

Tambin se pueden ubicar los botones de forma horizontal, cambiar su tamao, tipo de letra o utilizar imgenes para representar las acciones de primero, anterior, siguiente y ltimo, esto depender del gusto de cada desarrollador.

Propiedades a crear

Sin propiedades a crear.

Mtodos a crear
Crear la siguiente propiedade en la clase:

enabled_assign(), evento de asignacin de la propiedad enabled.

Para ello, desde el diseador de clases acceda al men CLASSE/NUEVO MTODO. Visual FoxPro ejecutar este evento cada vez que se cambie el valor la propiedad enabled de la clase, haciendo posible la intercepcin de dicho valor y/la ejecucin de cualquier operacin. Para mayor informacin buscar en la Ayuda de Visual FoxPro: Mtodos ACCESS Y ASSIGN.

Mtodos a implementar
Debe implementar en el mtodo CLIC de cada botn las acciones del formulario, por ejemplo:

botn << boton < botn >

===> ===> ===>

THISFORM.ACTIONPRIMERO() THISFORM.ACTIONANTERIOR() THISFORM.ACTIONSIGUIENTE()

Documento: BD - Ejemplo de ABM Autor:

Actualizacin: 12. oct. 2006 Pgina: 3 de 14

Universidad Nacional del Este Facultad Politcnica Carrera de Anlisis de Sistemas Taller III Prof.: Marcos Jara

Actualizacin de Tablas - ABM

botn >>

===>

THISFORM.ACTIONULTIMO()

El mtodo enabled_assing debe ser implementado con las siguientes instrucciones:

MTODO: BotonesNavegador.ENABLED_ASSIGN()
LPARAMETERS vNewVal *To do: Modify this routine for the Assign method THIS.SetAll("Enabled", m.vNewVal)

THIS.Enabled = m.vNewVal

Paso 3: Crear el formulario AbmLibro


Crear el formulario para ABM de libro con el siguiente comando CREATE FORM AbmLibro En este formulario debe insertar todos los campos actualizables de la tabla libros (textbox) y tambin las librerias de clases que fueron creadas a principio botonesAbm y botonesNavegador. Los nombres de estas clases se especifican en color rojo.

Inserte tambien la clase BD de la librera de classes negocio_lib, proveida para el desarrollo del abm

Documento: BD - Ejemplo de ABM Autor:

Actualizacin: 12. oct. 2006 Pgina: 4 de 14

Universidad Nacional del Este Facultad Politcnica Carrera de Anlisis de Sistemas Taller III Prof.: Marcos Jara

Actualizacin de Tablas - ABM

Propiedades a crear

No hay propiedades a crear.

Mtodos a crear
Se deben crear los mtodos para todas las acciones que sern ejecutadas cuando los botones de la clases creadas anteriormente (botonesABM, botonesNavegador) sean presionados. Para crear los mtodos, desde el diseador de formularios acceda al men FORMULARIO/NUEVO MTODO, aplique tambin la descripcin en cada mtodo, a continuacin se presenta un listado de los mtodos que debern ser creados:

ActionGuardar()

tendr las instrucciones para guardar un registro. Ser ejecutado cuando se presiona el botn Guardar.

ActionIncluir()

tendr las instrucciones que habilitan los campos para digitar nuevos valores. Ser ejecutado cuando se presiona el botn Incluir.

ActionModificar()

tendr las instrucciones que habilitan los campos para editar el registro. Ser ejecutado cuando se presiona el botn Modificar.

ActionEliminar()

tendr las instrucciones para eliminar el registro actual. Ser ejecutado cuando se presiona el botn Eliminar.

ActionCancelar()

tendr las instrucciones para cancelar la operacin y volver al primer registro. Ser ejecutado cuando se presiona el botn Cancelar.

ActionPrimero()

tendr las instrucciones para buscar el primer registro y mostrar en el formulario. Ser ejecutado cuando se presiona el botn Primero.

ActionAnterior()

tendr las instrucciones para buscar el registro anterior al actual. Ser ejecutado cuando se presiona el botn Anterior.

ActionSiguiente()

tendr las instrucciones para buscar el siguiente registro al actual. Ser ejecutado cuando se presiona el botn Siguiente.

ActionUltimo()

tendr las instrucciones para buscar el ltimo registro. Ser ejecutado cuando se presiona el botn Ultimo.

BuscarPorCodigo() Inicializar_Objetos()

tendr las instrucciones para buscar un registro por cdigo. tendr las instrucciones para limpiar los campos del formulario. Ser ejecutado cada vez que se desee insertar un nuevo registro en la Entidad.

TablaAObjeto() ValidarDatos()

volca los campos de la tabla temporal a los campos del formulario. verifica si se digitaron los campos obligatorios del formulario. Ser ejecutado antes de Guardar un Registro.

Mtodos a implementar
METODO: THISFORM.VALIDARDATOS()
IF EMPTY(THISFORM.TNOMBRE.Value)

Documento: BD - Ejemplo de ABM Autor:

Actualizacin: 12. oct. 2006 Pgina: 5 de 14

Universidad Nacional del Este Facultad Politcnica Carrera de Anlisis de Sistemas Taller III Prof.: Marcos Jara

Actualizacin de Tablas - ABM

MESSAGEBOX("Debe introducir el campo NOMBRE", 48, "Advertencia") THISFORM.TNOMBRE.SetFocus() RETURN .F. ENDIF IF EMPTY(THISFORM.TAUTOR.VALUE) MESSAGEBOX("Debe introducir el campo AUTOR", 48, "Advertencia") THISFORM.TAUTOR.SetFocus() RETURN .F. ENDIF

RETURN .T. El mtodo validardatos() verifica si los campos obligatorios del formulario se ingresaron correctamente. Si uno de los campos verificados est vacio o no se complet correctamente emite el correspondiente mensaje con MESSAGEBOX y la funcin retorna FALSO (.F.)

METODO: THISFORM.ACTIONGUARDAR()
IF THISFORM.ValidarDatos() nCod = thisform.tcodigo.Value cNom = thisform.tnombre.Value nAut = thisform.tautor.Value nCan = thisform.tcantidad.Value nEdi = thisform.tedicion.Value cObs = thisform.tobservacion.Value

IF !this.buscarPorCodigo(nCod) comandoSQL = "INSERT INTO LIBROS (lib_nombre, lib_autor, lib_cantidad, lib_edicion,; lib_observacion) VALUES (?cNom, ?nAut, ?nCan, ?nEdi, ?cObs)" ELSE comandoSQL = "UPDATE LIBROS SET lib_nombre = ?cNom, lib_autor = ?nAut, ; lib_cantidad = ?nCan, lib_edicion = ?nEdi, lib_observacion = ?cObs WHERE lib_codigo = ?nCod" ENDIF

thisform.bd.addSql(comandoSQL) exito = thisform.bd.execute()

IF (exito) THISFORM.BotonesAbm1.MODOEDITAR(.F.) THISFORM.Refresh()

Documento: BD - Ejemplo de ABM Autor:

Actualizacin: 12. oct. 2006 Pgina: 6 de 14

Universidad Nacional del Este Facultad Politcnica Carrera de Anlisis de Sistemas Taller III Prof.: Marcos Jara

Actualizacin de Tablas - ABM

ELSE MESSAGEBOX(THISFORM.controlador.cError, 16, "Error de Base de Datos") ENDIF ENDIF El mtodo actionGuardar() es llamado cuando se presiona el boton guardar de la clase botonesABM, este mtodo se encarga de guardar un registro, ya sea insertando(INSERT) o actualizando(UPDATE), dependiendo de si el cdigo actualmente activo ya existe o no en la base de datos. Tambin es importante recalcar que en la primera lnea del mtodo se hace una verificacin de datos, llamada a validarDatos(), para verificar si todos los campos estn correctamente cargados, slo si se cumple dicha condicin se guarda el Registro.

MTODO: THISFORM.ACTIONINCLUIR()
THISFORM.INICIALIZAR_OBJETOS() *--THISFORM.BotonesAbm1.MODOEDITAR(.T.) THISFORM.TNOMBRE.SetFocus() THISFORM.Refresh() Permite la edicin de los campos para crear un nuevo registro, la habilitacin o deshabilitacin de cada campo en particular , ser centralizada en el mtodo modoEditar().

METODO: THISFORM.ACTIONMODIFICAR()
IF (THISFORM.TCODIGO.Value > 0) THISFORM.BotonesAbm1.MODOEDITAR(.T.) THISFORM.TNOMBRE.SetFocus() THISFORM.Refresh() ENDIF Permite la edicin de los campos para modificar el registro actual.

MTODO: THISFORM.ACTIONELIMINAR()
IF (THISFORM.TCODIGO.Value > 0) IF MESSAGEBOX("Desea Eliminar el libro", 292, "Confirmacin")=6

nCod = THISFORM.TCODIGO.VALUE comandoSQL = "DELETE FROM LIBROS WHERE LIB_CODIGO = ?nCod"

this.bd.addSql(comandoSQL) this.bd.execute()

THISFORM.Botonesabm1.MODOEDITAR(.F.) THISFORM.Refresh() ENDIF

Documento: BD - Ejemplo de ABM Autor:

Actualizacin: 12. oct. 2006 Pgina: 7 de 14

Universidad Nacional del Este Facultad Politcnica Facultad Politcnica Sede Caaguaz Carrera de Anlisis de Sistemas Taller III Base de Datos con Foxpro I Prof.: Marcos Jara

(ABM de tablas) Actualizacin de Tablas - ABM

ENDIF Elimina el registro actual.

MTODO: THISFORM.ACTIONCANCELAR()
THISFORM.ACTIONPRIMERO() THISFORM.BotonesAbm1.MODOEDITAR(.F.) THISFORM.Refresh() Cancela la operacin actual y vuelve al primer registro.

MTODO: THISFORM.INICIALIZAR_DATOS()
WITH THIS .TCODIGO.VALUE = .bd.ultimoCodigo("Libros", "Lib_codigo") + 1 .TNOMBRE.VALUE = "" .TAUTOR.VALUE = 0 .TCANTIDAD.VALUE = 0 .TEDICION.VALUE = 0 .TOBSERVACION.VALUE = "" ENDWITH Este mtodo inicializa todos los campos del formulario.

MTODO: THISFORM.ACTIONPRIMERO()
comandoSQL = "SELECT * FROM LIBROS WHERE LIB_CODIGO > 0 ORDER BY LIB_CODIGO"

this.bd.addSql(comandoSQL) this.bd.execute()

SELECT TmpResult GOTO TOP this.tablaAObjeto() Busca el primer registro de la tabla y muestra en el formulario.

MTODO: THISFORM.ACTIONANTERIOR()
nCod = THISFORM.TCODIGO.VALUE

comandoSQL = "SELECT * FROM LIBROS WHERE LIB_CODIGO < ?nCod ORDER BY LIB_CODIGO DESC"

this.bd.addSql(comandoSQL) this.bd.execute()

Documento: BD - Ejemplo de ABM Autor:

Actualizacin: 12. oct. 2006 Pgina: 8 de 14

Universidad Nacional del Este Facultad Politcnica Carrera de Anlisis de Sistemas Taller III Prof.: Marcos Jara

Actualizacin de Tablas - ABM

SELECT TmpResult GOTO TOP

this.tablaAObjeto()

IF (THISFORM.TCODIGO.VALUE = 0) thisform.actionPrimero() ENDIF Busca el registro anterior al actualmente activo, y muestra los campos en el formulario.

MTODO: THISFORM.ACTIONSIGUIENTE()
nCod = THISFORM.TCODIGO.VALUE comandoSQL = "SELECT * FROM LIBROS WHERE LIB_CODIGO > ?nCod ORDER BY LIB_CODIGO"

this.bd.addSql(comandoSQL) this.bd.execute()

SELECT TmpResult GOTO TOP this.tablaAObjeto()

IF (THISFORM.TCODIGO.VALUE = 0) thisform.actionUltimo() ENDIF Busca el siguiente registro al actualmente activo, y muestra los campos en el formulario.

MTODO: THISFORM.ACTIONULTIMO()
ultimoCodigo = thisform.bd.ultimoCodigo("Libros", "Lib_codigo") comandoSQL = "SELECT * FROM LIBROS WHERE LIB_CODIGO = ?ultimoCodigo ORDER BY LIB_CODIGO DESC"

this.bd.addSql(comandoSQL) this.bd.execute()

SELECT TmpResult GOTO TOP this.tablaAObjeto()

Documento: BD - Ejemplo de ABM Autor:

Actualizacin: 12. oct. 2006 Pgina: 9 de 14

Universidad Nacional del Este Facultad Politcnica Carrera de Anlisis de Sistemas Taller III Prof.: Marcos Jara

Actualizacin de Tablas - ABM

Busca el ltimo registro de la tabla y muestra los campos en el formulario.

MTODO: THISFORM.TABLAAOBJETO()
SELECT TmpResult THISFORM.TCODIGO.Value THISFORM.TNOMBRE.Value THISFORM.TAUTOR.Value THISFORM.TCANTIDAD.Value THISFORM.TEDICION.Value THISFORM.TOBSERVACION.Value = TmpResult.LIB_CODIGO = TmpResult.LIB_NOMBRE = TmpResult.LIB_AUTOR = TmpResult.LIB_CANTIDAD = TmpResult.LIB_EDICION = TmpResult.LIB_OBSERVACION

Volca los resultados de la tabla temporal a los campos del formulario.

MTODO: THISFORM.BUSCARPORCODIGO()
LPARAMETERS nCod comandoSQL = "SELECT * FROM LIBROS WHERE LIB_CODIGO = ?nCod"

this.bd.addSql(comandoSQL) this.bd.execute()

IF RECCOUNT("TmpResult") <= 0 RETURN .F. ENDIF RETURN .T. Busca un registro por cdigo principal, en la base de datos.

MTODO: THISFORM.INIT()
IF !EMPTY(THISFORM.BD.CError) MESSAGEBOX(THISFORM.BD.CError, 16, "Error de BD") RETURN .F. ENDIF Verifica si no hubo error de conexin, para ejecutar o no el formulario.

MTODO: THISFORM.BOTONESABM1.POSTMODOEDITAR()
LPARAMETERS valorLogico

THISFORM.TNOMBRE.Enabled = valorLogico THISFORM.TAUTOR.Enabled = valorLogico THISFORM.TCANTIDAD.Enabled = valorLogico

Documento: BD - Ejemplo de ABM Autor:

Actualizacin: 12. oct. 2006 Pgina: 10 de 14

Universidad Nacional del Este Facultad Politcnica Carrera de Anlisis de Sistemas Taller III Prof.: Marcos Jara

Actualizacin de Tablas - ABM

THISFORM.TEDICION.Enabled = valorLogico THISFORM.TOBSERVACION.Enabled = valorLogico THISFORM.Botonesnavegador1.Enabled = !valorLogico Habilita/Deshabilita los campos del formulario, de acuerdo a si los botones estn en modo edicion o consulta.

Extendiendo la funcionalidad. Mostrando el nombre del Autor


La primera funcionalidad extra que se puede incluir en el formulario de actualizacin de Libros es que cuando el usuario dijita el cdigo del autor, el sistema despliegue automticamente a la derecha el nombre del autor, proporcionando de esa forma mayor interactividad entre sistema-usuario. A continuacin se despliega un ejemplo de formulario para este caso:

Se debern realizar algunos cambios en el formulario y en la cdificacin, primeramente deber incluir un nuevo TEXTBOX al lado del campo cdigo del Autor, este TEXTBOX debe llamarse tNombreAutor.

Propiedades a modificar

Asignar .F. a THISFORM.TNOMBREAUTOR.ENABLED

MTODO: THISFORM.TAUTOR.VALID()
nAutor = THISFORM.TAUTOR.VALUE comandoSQL = "SELECT AUT_NOMBRE FROM AUTORES WHERE AUT_CODIGO = ?nAutor "

this.bd.addSql(comandoSQL)

Documento: BD - Ejemplo de ABM Autor:

Actualizacin: 12. oct. 2006 Pgina: 11 de 14

Universidad Nacional del Este Facultad Politcnica Carrera de Anlisis de Sistemas Taller III Prof.: Marcos Jara

Actualizacin de Tablas - ABM

this.bd.execute(TMP_NOMBRE_AUTOR)

THISFORM.TAUTOR.VALUE = TMP_NOMBRE_AUTOR.AUT_NOMBRE

El mtodo VALID se intenta ejecutar cuando el usuario intenta salir de dicho campo, ya sea con Enter, Tabulador o presionando el Click en otro campo. Al salir del campo se busca el nombre del autor cuyo cdigo fue dijitado.

Para que la busqueda funcione tanto en modo de diseo como ejecucin tambin deber ser modificado el mtodo TablaAObjeto del Formulario, agregando 1 lnea ms al final del mtodo:

MTODO: Modificacin en THISFORM.TABLAAOBJETO()


SELECT TmpResult THISFORM.TCODIGO.Value THISFORM.TNOMBRE.Value THISFORM.TAUTOR.Value THISFORM.TCANTIDAD.Value THISFORM.TEDICION.Value THISFORM.TOBSERVACION.Value = TmpResult.LIB_CODIGO = TmpResult.LIB_NOMBRE = TmpResult.LIB_AUTOR = TmpResult.LIB_CANTIDAD = TmpResult.LIB_EDICION = TmpResult.LIB_OBSERVACION

*Linea a Adicionar THISFORM.TAUTOR.VALID() && Llama al mtodo que busca el nombre del autor.

Extendiendo la funcionalidad. Buscando por Cdigo


Actualmente el formulario permite buscar los registros primero, anterior, siguiente y ltimo de manera secuancial, otra de las funcionalidades que se puede incluir consiste en implementar una busqueda de Lbro directamente por el cdigo. A continuacin se despliega un ejemplo de formulario para este caso:

Documento: BD - Ejemplo de ABM Autor:

Actualizacin: 12. oct. 2006 Pgina: 12 de 14

Universidad Nacional del Este Facultad Politcnica Carrera de Anlisis de Sistemas Taller III Prof.: Marcos Jara

Actualizacin de Tablas - ABM

Se deber incluir un nuevo COMMANDBUTTON al lado del campo cdigo del Libro, este COMMANDBUTTON debe llamarse bBuscar.

MTODO: THISFORM.BBUSCAR.CLICK()
nLibro = INPUTBOX(Ingrese el cdigo del Libro, Buscar, 0) comandoSQL = "SELECT * FROM LIBROS WHERE LIB_CODIGO = ?nLibro"

this.bd.addSql(comandoSQL) this.bd.execute(TmpResult)

THISFORM.TABLAAOBJETO()

MTODO: Modificacin en THISFORM.BOTONESABM1.POSTMODOEDITAR()


LPARAMETERS valorLogico

THISFORM.TNOMBRE.Enabled = valorLogico THISFORM.TAUTOR.Enabled = valorLogico THISFORM.TCANTIDAD.Enabled = valorLogico

Documento: BD - Ejemplo de ABM Autor:

Actualizacin: 12. oct. 2006 Pgina: 13 de 14

Universidad Nacional del Este Facultad Politcnica Carrera de Anlisis de Sistemas Taller III Prof.: Marcos Jara

Actualizacin de Tablas - ABM

THISFORM.TEDICION.Enabled = valorLogico THISFORM.TOBSERVACION.Enabled = valorLogico THISFORM.Botonesnavegador1.Enabled = !valorLogico

* Nueva instruccin a incluir. THISFORM.bBuscar.Enabled = !valorLogico

Habilita/Deshabilita el botn bBuscar en modo edicion y consulta.

Documento: BD - Ejemplo de ABM Autor:

Actualizacin: 12. oct. 2006 Pgina: 14 de 14