FoxPro/Visual FoxPro - El registro está fuera del intervalo

 
Vista:
sin imagen de perfil

El registro está fuera del intervalo

Publicado por Cristian (1 intervención) el 28/09/2023 18:29:14
Buenas, alguien con mucha...mucha paciencia porque soy muy novato en foxpro y necesito solucionar el error "El registro está fuera del intervalo", de un sistema que ya estaba funcionando, agradeceré sugerencias de solucion:

Tengo un formulario de ABM de personas, un boton para buscar y su codigo es este:


1) boton_buscar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
mdni	= space(10)
mnya	= space(50)
a = '1'
do form buscar09 to a		&& abre un formulario para buscar
 
if a = '1'
	sele beneficiarios
	mreg  = recno()		&& devuelve el numero de registro actual de la tabla actual
	set order to dni		&& ordena la tabla por dni
    seek mdni	            && busca la primera aparicion de un registro cuya clave coincida con una expresion, devuelve un valor logico segun el exito
	if eof()
		go mreg
		wait wind 'No Existente' time(3)
		return
	endif
endif
	scatter memvar memo	    && copia del datos de la tabla a memoria
	sele cabetemp
	gather memvar memo	            && copia el registro de memoria a la tabla o matriz
 
thisform.refresh


2) Ese boton, abre un formulario de búsqueda con 2 dos opciones de búsqueda (por dni y/o por apellido y nombre), luego tiene dos botones, 1ero hojea la tabla y se puede elegir el registro coincidente y 2do si no encuentra la persona, cierra el Form de busqueda (ES AQUI QUE DE ERROR al No encontrar el registro o la persona)

Error: "El registro está fuera del intervalo"


FORMULARIO-DE-BUSQUEDA

1er boton el codigo es éste:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
if !empty(mnya)
 
	sele beneficiarios
	set order to nya
	set filter to empty(debaja)
	set exact off
	set near on
 
	seek alltrim(mnya)
 
	set exact on
	set near off
 
	=hojearbase('beneficiarios')
 
	mnya 	= beneficiarios.nya
	mdni	= beneficiarios.dni
 
	keyb '{tab}'
 
	if last() = 27	&& presiona escape
		thisform.release
			mnya 	= space(50)
			mdni	= space(10)
		return
	endif
 
else
 
sele beneficiarios
set order to dni
seek mdni
 
 
	if last() = 27	&& presiona escape
		thisform.release
		*mnya 	= space(50)
		*mdni	= space(10)
	return
	endif
 
	if eof()
		wait wind 'No Existente' time(2)
		return
	endif
 
	mdni	= beneficiarios.dni
	mnya 	= beneficiarios.nya
 
	keyb '{tab}'
 
 
endif
 
thisform.refresh

2do boton el codigo es éste:

1
thisform.release


Cuando no encuentra la persona da el error y al dar click en SUSPENDER se detiene en.......



error

se detiene acá


detiene-programa


Alguna solución en pocas lineas ???

Gracias!!!

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder