Pasar dato especifico a un textbox de una tabla

Tengo una base de datos con información financiera, tiene indices por meses, años y numero de cuenta, y la información de una cuenta aun mes y año especifico la quiero cargar a un textbox en un formulario por medio de un botón de comando que haga la carga de la información, para con un segundo realizar cálculos financieros, la verdad soy muy nuevo en esto, apenas eh podido desarollar la segunda parte de esto que es la de los cálculos, pero la información debe de ser introducida manualmente, necesito poder jalarla directamente de las tablas, espero que alguien me pudiese ayudar diciéndome una manera factible de hacerlo.

1

1 Respuesta

2.225 pts.

Primero que todo me gustaría saber con que base de datos estas trabajando.

Trabajas con las dbf de fox o con otro motor de base de datos

Si usas las dbf es de la siguiente manera:

if !used("Mitabla") && con el fin de abrir la tabla solo si no esta abierta

Use mitabla in 0 shared && con el fin de abrir la tabla en modo compartido

Endif

select mitabla

set order to miindice

seek alltr(mivariable)

if found()

thisform.text1.value = mitabla.campo

thisform.text2.value = mitabla.campo1

else

Messagebox("no existen registros con que cumplan los cirterios de búsqueda", 64,"sin dados")

Endif

Ojala te sirva si tienes alguna duda no dudes en solicitar aclaración

Salu2

Hola, gracias por la respuesta, es bastante funcional, sin embargo, para cumplir con lo que me en comendaron necesito poder hacer una búsqueda dentro de tres variables en mi caso son las tablas (mes, anio, cuenta), y en base a un filtro de las tres obtener el saldo de la cuenta buscada en el año y mes buscado, intente de varias formas usar el seek, para poder tener este dato incluso trate con locate y flitter, pero no eh podido realizar este tipo de búsqueda, ademas de que siempre me da el primer valor de la tabla, espero me puedas ayudar a con esto también y efectivamente uso las bases de foxpro

Saludos y gracias

Ok, lo primero que debes hacer es buscar el campo relación entre las tres tablas y hacer o siguiente:

if !used("mes") && con el fin de abrir la tabla solo si no esta abierta
use mes in 0 shared && con el fin de abrir la tabla en modo compartido
endif

if !used("anio") && con el fin de abrir la tabla solo si no esta abierta
use anio in 0 shared && con el fin de abrir la tabla en modo compartido
endif

if !used("cuenta") && con el fin de abrir la tabla solo si no esta abierta
use cuenta in 0 shared && con el fin de abrir la tabla en modo compartido
endif

select (campos que desees) from cuenta

inner join anio on cuenta.camporelacionanio=anio.camporelacioncuenta

inner join mes on cuenta.camporelacionmes=mes.camporelacioncuenta

where cuenta.campoiddecliente=valorquedeseasbuscar into Resultado

select resultado

go top

if !eof()

thisform.text1.value = resultado.campo1

thisform.text2.value = resultado.campo2

else

Messagebox("no existen registros", 64,"Sin registros")

Endif

Con esto harías una sola consulta y el código es mucho mas optimo ya que relacionas las tres tablas y obtienes la información en un cursor temporal (Resultado) y luego solo debes asignar a la caja de texto el campo de la consulta que deseas.

Si quieres que te ayude mas explícitamente, necesitaría ver la estructura de las tablas y todo lo demás.

una disculpa grandísima las variables se enuentran en la tabla cuentas, y son indices en estas tablas, el código me ah servido para otras consultas, muchae es posibles gracias si te es posible espero me puedas volver a ayudar la cuestión es la misma, solo que mi error fue poner que eran tablas cuando son los indices de una tabla. y en base a esos tres indices, debo obtener el "saldo" de la cuenta. saludos y muchas gracias

Ok, si los campos son de la tabla cuentas solo es que utilices el select que te respondí anteriormente y selecciones el campo de saldo, lo que debes hacer es que en la condición osea en el where debes anexar los demás campos filtro que sean necesarios.

Salu2

el código me qdaria así;

if !used("cuentas")
use cuentas in 0 shared
endif

select saldo from cuentas
where cuentas.anio = thisform.vanio.value AND cuenta.mes = thisform.vmes.value AND cuenta.cuentas = "1.03.01" into Resultado
select resultado
go top
if !eof()
thisform.cv.value = resultado.campo1
else
Messagebox("no existen registros",64,"Sin registros")
endif

donde

cuentas es la tabla

saldo la columna de tabla donde se encuentra el valor buscado

anio, mes y cuenta, son las variables por las cuales pretendo encontrar el dato

vanio y vmes, son listbox para colocar el añio y mes buscado

"1.03.01" es el numero de cuenta que deseo localizar.

cv es el texbox donde el dato encontrado se vierte.

y disculpa las molestias, pero ahora tomando esto me sale el error en la linea where donde especifica "no se reconoce el verbo del comando". no se si e sun error por las ligas and, o que onda, espero me puedas ayudar, gracias.

Gracias por todo al final me quedo así y funcionando:

if !used("cuentas")
use cuentas in 0 shared
endif
select cuentas.saldo, cuentas.anio, cuentas.mes, cuentas.cuenta, cuentas.sucursal from cuentas;
where cuentas.sucursal = thisform.vsuc.value AND cuentas.anio = thisform.vanio.value AND cuentas.mes = thisform.vmes.value AND cuentas.cuenta = "1.3.01";
GROUP BY cuentas.saldo, cuentas.sucursal, cuentas.anio, cuentas.mes, cuentas.cuenta;
into CURSOR resultado
SET REFRESH TO 1
select resultado
go BOTTOM
if !eof()
thisform.cv.value = resultado.saldo
else
Messagebox("no existen registros",64,"Sin registros")
ENDIF

y de verdad gracias a penas el lunes empece a usar foxpro hehehe y ya pude terminar un formulario sencillo de calculo, muchas gracias u.u

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas