Quiero hacer es ingresar un nuevo libro x proveedor con Visual Fox Pro

Saludos amigo; necesito tu ayuda en el siguiente problema: lo que yo quiero hacer es ingresar un nuevo libroxproveedor, los primeros campos a llenar son un campo llamado txtid_carrera(especificas a que carrera corresponde el libro que vas a introducir) y otro llamado txtNombre nuestro metodo para llenar estos dos campo es  el siguiente, si presionas enter y luego hay un "*" en el txtid_carrera abre una tabla llamada carreras y extrae el id_carrera(que es el codigo de la carrera), nombre(nombre de la carrera) y lo almaceno en un cursor llamado bcarr luego abro esta vista con browse y seleciono en la vista el registro que necesito, presiono escape y automaticamente agrego al txtid_carrera.controlsourse="bcarr.id_carrera" y luego a hago lo mismo con el txtnombre.controlsource="bcarr.nombre" asi extraigo el id de la carrera y su nombre, hasta ahi todo bien... Ahora cuando yo quiero insertar otro "*" en el txtid_carrera dicho control no me acepta * ni caracteres osea que me desabilita la posibilidad de introducir caracteres y en cambio me lo activa para valores numericos, cabe destacar que el controlsource de los dos text ya los he limpiado y solo almacenan el valor y mas no asi su fuente... Al querer hacer otra busqueda ya no la puedo hacer puesto que ya no puedo introducir el "*"... COMO PUEDO YO HABILITAR EL TEXT PARA HACER BUSQUEDAS ILIMINADAS PUESTO QUE ASI SOLO ME PERMITE HACER UNA....
He aqui el codigo del evento KeyPress del boton txtid_carreras
IF nKeyCode = 13 AND thisform.txtId_carrera.Value ="*" then
SELECT id_carrera, nombre FROM carreras INTO CURSOR bcarr
BROWSE
thisform.txtId_carrera.ControlSource="bcarr.id_carrera"
thisform.text1.ControlSource="bcarr.nombre"
thisform.Refresh
thisform.txtId_carrera.ControlSource=""
thisform.text1.ControlSource=""
thisform.txtCodigo_a.SetFocus
Thisform.Refresh
Endif
{"Lat":13.8370798602925,"Lng":-88.2730865478516}

1 respuesta

Respuesta
1
Lo que creo es que bcarr. Id_carrera es numérico, por eso tu text se convierte a numérico el tipo de datos, cuando incias el programa no tienes problemas por que siempre comienza con un tipo de datos string, pero a la primera asignación que le haces a text se convierte al tipo de datos que le das, si le das fecha se convierte a fecha y así sucesivamente, tendrás que cambiar el "*" por un dato numérico, por ejemplo la mayoría de las personas usan el 0 (cero) para indicarle al usuario que va buscar el dato como la que tu has hecho.
La mejor opción es cambiar a CERO, pero si quieres seguir así deberás usar str() para convertir el dato antes de cargarlo, pero no creo que sea muy conveniente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas