Con esta respuesta tuya parece que no has entenbdido la propuesta de Miguel.
Claro que él se basó en USE...ALIAS... AGAIN dado que te expresaste inadecuadamente (<1>en tu código sólo hablas de un solo DBF, <2>no muestras otro código que es donde se genera el error, y <3>tampoco aclaras que "la primera vez muestra bien... pero la segunda aparece el error").
(el ver un código que genera variables públicas nos hace rascar la cabeza... al igual que rutas absolutas.... Mientras escribía esta propuesta me dí cuenta que yo tenía el mismo modo de pensar que Fidel)
(si el indexado de EMPLEADOS no es por TELEFONO y por eso te pierdes en el resto de código, la culpa es tuya)
** :: evento Init en el formulario
set deleted on
open database "PEPSICOLA.dbc"
use TELEFONOS in 0 shared
use EMPLEADOS in 0 shared
set order to TELEFONO in TELEFONOS
set order to TELEFONO in EMPLEADOS
AddProperty ( ThisForm, 'Accion' , '' )
AddProperty ( ThisForm, 'Encontro', .f. )
AddProperty ( ThisForm, 'Marcado' , .f. )
This.Inicio
** :: evento LostFocus del textbox txtTelefono
local M.cBusca, M.lcCed, M.lcNom as string
M.lcNom = ''
M.lcCed = ''
M.cBusca = padr ( alltrim(ThisForm.txtTelefono.Value), len(EMPLEADOS.TELEFONO) )
if seek ( M.cBusca, "EMPLEADOS", "xNroTel" ) && busca M.cBusca en EMPLEADOS
M.lcNom = EMPLEADO.NOMBRE && aquí captura el nombre
M.lcCed = EMPLEADO.CEDULA && aquí captura la cedula
else
MessageBox ( 'No se encontró el teléfono '+alltrim(M.cBusca) )
endif
ThisForm.txtNombres .Value = M.lcNom
ThisForm.txtCeduEmple.Value = M.lcCed
**
Cuéntame: ¿cómo aplicaste la propuesta de Fidel --con respecto al IF !USED()-- para que todavía no te diera?
Si el código te sirve, o no te da, o sí te resuelve, nos cuentas....