Para definir que vas a colocar en un botón insertar, deberíamos saber si las tablas están definidas con buffer o no. Si los controles del formulario (textbox y demás) están asociados a columnas en las dbf o no.
Suponiendo que no usas buffer y tus controles no están asociados.
Deberías pasar los values de cada control a variables de memoria y luego hacer un INSERT INTO la tabla destino.
Ejemplito:
código botón clic, guardar
WITH THISFORM
m.lnCliente = .txtnCliente.value
m.lcAyNCliente = .txtcAyNCliente.value
m.lcDirCliente = .txtcDirCliente.value
m.lcTelCliente = .txtcTelCliente.value
ENDWITH
NOTE aca irían rutinas de validación.
NOTE Asumiendo que tabla tiene un indice por número cliente llamado xNumero...
IF SEEK(m.lnCliente, "Clientes", "xNumero")
NOTE que si está lo actualiza
UPDATE Clientes;
SET cAyN = m.lcAyNCliente,;
cDir = m.lcDirCliente,;
cTel = m.lcTelCliente;
WHERE nCliente = m.lnCliente
ELSE && Si no lo esta, lo inserta
INSERT INTO Clientes (nCliente, cAyN, cDir, cTel);
VALUES (m.lnCliente, m.lcAyNCliente,;
m.lcDirCliente, m.lcTelCliente)
ENDIF && SEUO
Nunca recurras a usar APPEND BLANK más REPLACE, funciona pero es código obsoleto, implica más instrucciones, y en entornos multiusuarios, con muchas altas concurrentes, produce errores de clave duplicada.
Saludos: Miguel, La Pampa (RA)