El código es el siguiente:
SCAN
IF no_correlativo=numcorr then
replace cod_cel WITH codigocelula, nomb_anf WITH nombreanfi, ;
apell_anf WITH apellidoanfi, direcc_cel WITH direccion, ;
zona_cel WITH zona, dia_cel WITH diacelula, ;
hora_cel WITH hora, nomb_colider WITH nombrecoli, ;
apell_colider WITH apellidocoli, nomb_lidninios WITH nombrelidni, ;
apell_lidninios WITH apellidolidni, am_pm WITH ampm, ;
cod_coord WITH codigocoord, ;
no_distrit WITH numdistrit, cod_cel WITH codigocelula, ;
correlativo WITH var1, colonia WITH _colonia, calle_av_pje WITH CalleAvPje, ;
nomb_depto WITH depto, nomb_munic WITH munic, telefono WITH _telefono, ;
celular WITH _celular
**UPDATE celula SET cod_cel=codigocelula, nomb_anf=nombreanfi, ;
apell_anf=apellidoanfi, direcc_cel=direccion, ;
zona_cel=zona, dia_cel=diacelula, ;
hora_cel=hora, nomb_colider=nombrecoli, ;
apell_colider=apellidocoli, nomb_lidninios=nombrelidni, ;
apell_lidninios=apellidolidni, am_pm=ampm, ;
cod_coord=codigocoord, ;
no_distrit=numdistrit, cod_cel=codigocelula, ;
correlativo=var1, colonia=_colonia, calle_av_pje=CalleAvPje, ;
nomb_depto=depto, nomb_munic=munic, telefono=_telefono, ;
celular=_celular WHERE no_correlativo=numcorr
ENDIF
ENDSCAN
El error está en el "replace". Antes de ponerle el "SCAN" usaba el "update" y no me daba problema (claro, tampoco era necesario utilizar el "IF"). Utilicé el "replace" porque, como me parece que me lo planteaste unos mensajes atrás, debido al "SCAN", cuando se ejecuta el "update", se sale del "SCAN" y aplica lo mismo a todo.
una pregunta que tabla estas barriendo con el SCAN
?? por que se supone que es otra tabla distinta que la de de CELULAR verdad?
en el segmento de codigo que has puesto ahi no seleccionas en nungun momento la tabla selular por eso te da eeror por que puede ser uqe no este habierta o no no la has seleccionado entonces deberias de hacer lo siguiente
Scan
If no_correlativo=numcorr Then
IF !USED('celular')
USE 'celular'
ENDIF
Replace cod_cel With codigocelula, ;
nomb_anf With nombreanfi, ;
apell_anf With apellidoanfi, ;
direcc_cel With direccion, ;
zona_cel With zona, ;
dia_cel With diacelula, ;
hora_cel With hora, ;
nomb_colider With nombrecoli, ;
apell_colider With apellidocoli, ;
nomb_lidninios With nombrelidni, ;
apell_lidninios With apellidolidni, ;
am_pm With ampm, ;
cod_coord With codigocoord, ;
no_distrit With numdistrit, ;
cod_cel With codigocelula, ;
correlativo With var1, ;
colonia With _colonia, ;
calle_av_pje With CalleAvPje, ;
nomb_depto With depto, ;
nomb_munic With munic, ;
telefono With _telefono, ;
celular With _celular ;
FOR no_correlativo=numcorr
**UPDATE celula SET cod_cel=codigocelula, ;
nomb_anf=nombreanfi, ;
apell_anf=apellidoanfi, ;
direcc_cel=direccion, ;
zona_cel=zona, ;
dia_cel=diacelula, ;
hora_cel=hora, ;
nomb_colider=nombrecoli, ;
apell_colider=apellidocoli, ;
nomb_lidninios=nombrelidni, ;
apell_lidninios=apellidolidni, ;
am_pm=ampm, ;
cod_coord=codigocoord, ;
no_distrit=numdistrit, ;
cod_cel=codigocelula, ;
correlativo=var1, ;
colonia=_colonia, ;
calle_av_pje=CalleAvPje, ;
nomb_depto=depto, ;
nomb_munic=munic, ;
telefono=_telefono, ;
celular=_celular ;
WHERE no_correlativo=numcorr
Endif
SELECT <'tabla o anterior al SCAN'>
Endscan
si te fijas le incorpore una FOR a la sentencia REPLACE por que si no el cambio siempre se lo hara al primer registro de la tabla celular y tome como referencia lo que tenias en el WHERE de las sentencio UPDATE
lo unico que tiene que regresar el foco a la tablo o cursor que estas barriendo con el SCAN...