Hola Pilar, como estas...
Primero debes hacer un form que se llame Altas de Productos, Necesitarás
2 combobox
6 textbox
8 labels
3 botones
Nombres de los objetos:
1.- combo 1 y su label es: Area
2.- combo2 --- Label : Subarea
3.- Text1 --- Label: Codigo
4.- Text2 --- Label: Unidad
5.- Text3 --- Label: Marca
6.- Text4 --- Label: Descripcion
7.- Text5 --- Label: Precio
8.- Text6 --- Label: Observaciones
9.- Boton1 --- Nombre: cmdAceptar --- Caption: Aceptar
10.- Boton2 --- Nombre: cmdCancelar --- Caption: Cancelar
11.- Boton3 --- Nombre: cmdSalir --- Caption: Salir
Nota los Label son los titulos, el diseño te lo dejo a tu criterio, no cambies el nombre de los objetos (Excepto a los botones).
Pulsas Click derecho sobre el formulario y presiona en Codigo.
En tipo de Evento Load del form escribe lo siguiente:
OPEN DATABASE bd.dbc
SELECT 1
USE productos.dbf
SELECT 2
USE subarea.dbf
*** Fin del Codigo del Evento Load del Form ***
Codigo para el Boton Aceptar
*** Pulsa Click derecho del boton Aceptar y elige Codigo selecciona Evento Click:
if empty (thisform.text1.value)
falta=messagebox("Existe espacios vacios, desea cancelar?",4+32+256,"Error")
do case
case falta=6
Thisform.combo1.Enabled=.f.
Thisform.combo2.Enabled=.f.
Thisform.text1.Enabled=.f.
Thisform.text2.Enabled=.f.
Thisform.text3.Enabled=.f.
Thisform.text4.Enabled=.f.
Thisform.text5.Enabled=.f.
Thisform.text8.Enabled=.f.
Thisform.cmdaceptar.Enabled=.f.
Thisform.cmdcancelar.Enabled=.f.
Thisform.cmdsalir.Enabled=.t.
Thisform.cmdsalir.setfocus
case falta=7
thisform.combo1.setfocus
ENDCASE
else
select 1
LOCATE FOR productos.codigo = THISFORM.TEXT1.VALUE
IF FOUND() THEN
replace area WITH thisform.combo1.value
replace subarea WITH thisform.combo2.value
replace codigo WITH thisform.text1.value
replace unidad WITH thisform.text2.value
replace descripcion WITH thisform.text3.value
replace marca WITH thisform.text4.value
replace precio with thisform.text5.value
replace observaciones WITH Thisform.text8.value
Thisform.combo1.Enabled=.f.
Thisform.combo2.Enabled=.f.
Thisform.text1.Enabled=.f.
Thisform.text2.Enabled=.f.
Thisform.text3.Enabled=.f.
Thisform.text4.Enabled=.f.
Thisform.text5.Enabled=.f.
Thisform.text8.Enabled=.f.
Thisform.cmdaceptar.Enabled=.f.
Thisform.cmdcancelar.Enabled=.f.
Thisform.cmdsalir.Enabled=.t.
thisform.combo1.setfocus
thisform.refresh
else
go bottom
APPEND BLANK
replace area WITH thisform.combo1.value
replace subarea WITH thisform.combo2.value
replace codigo WITH thisform.text1.value
replace unidad WITH thisform.text2.value
replace descripcion WITH thisform.text3.value
replace marca WITH thisform.text4.value
replace precio with thisform.text5.value
replace observaciones WITH Thisform.text8.value
Thisform.combo1.Enabled=.f.
Thisform.combo2.Enabled=.f.
Thisform.text1.Enabled=.f.
Thisform.text2.Enabled=.f.
Thisform.text3.Enabled=.f.
Thisform.text4.Enabled=.f.
Thisform.text5.Enabled=.f.
Thisform.text8.Enabled=.f.
Thisform.cmdaceptar.Enabled=.f.
Thisform.cmdcancelar.Enabled=.f.
Thisform.cmdsalir.Enabled=.t.
thisform.combo1.setfocus
thisform.refresh
ENDIF
ENDIF
Thisform.Refresh
***Fin de codigo boton Aceptar ***
Haz lo mismo selecciona el boton Cancelar y en el evento Click escribe esto:
*** Codigo boton Cancelar ***
Thisform.combo1.Enabled=.f.
Thisform.combo2.Enabled=.f.
Thisform.text1.Enabled=.f.
Thisform.text2.Enabled=.f.
Thisform.text3.Enabled=.f.
Thisform.text4.Enabled=.f.
Thisform.text5.Enabled=.f.
Thisform.text8.Enabled=.f.
Thisform.cmdaceptar.Enabled=.f.
Thisform.cmdcancelar.Enabled=.f.
Thisform.cmdsalir.Enabled=.t.
Thisform.Refresh
*** Fin del Boton Cancelar ***
Haz lo mismo selecciona el boton Salir y en el evento Click escribe esto:
*** Codigo boton Salir ***
Thisform.Release
Ok, has esto y mañana me dices como te fue...
Hasta Pronto