Procedimiento en Visual Basic 6

Tengo la siguiente base de datos en access. Una tabla llamada RECAUDACIÓN que contiene los siguientes campos NUM_CLIENTE, TARIFA_ASEO, PERIODO_FACT (fecha en que se le facturo al cliente) DÍA PAGO. Otra tabla llamada TARIFAS que contiene los siguientes campos TARIFA (contiene todas la tarifas desde 1991 hasta la actualidad) FECHA_INI (fecha periodo de inicio de la tarifa) FECHA_FIN (fecha final de tarifa) Existe un campo adicional llamado TIPO_TARIFA que a la vez está relacionado con una tabla del mismo nombre que contiene lo siguiente los siguientes datos RESIDENCIAL, COMERCIAL, INDUSTRIAL. Ejemplo: TARIFA FECHA_INI FECHA_FIN TIPO_TARIFA
2,65 20041101 20051001 RESIDENCIAL
4,33 20041101 20050131 COMERCIAL
2,78 20051002 20060131 RESIDENCIAL
Lo que quiero es diseñar en VB 6 el calculo de un 28% del incremento de una tarifa por periodo. Es decir, tengo 1,55 y aumento a 1,66 la diferencia es de 0,11 que equivale a un 10% del incremento. Ese 0,11 necesito sacar el 28% . Este incremento ocurre en periodos determinados, (fíjate en el ejemplo anterior de la tabla el caso de 2,65 a 2,78). Mi pregunta es como puedo hacer para hacer este procedimiento en VB6 utilizando la base de datos existente y que me arroje los resultados de ese calculo acompañado de los campos anteriores o otra manera que me puedas brindar ya que no tengo mucha experiencia y me ayudaría una luz que me puedas brindar al respecto. Si me puedes ejemplificar seria de gran utilidad.

1 respuesta

Respuesta
1
No me quedo muy claro lo que explicas, pero tus cálculos no están del todo bien.
Si tienes 1.55 y aumentas a 1.66, dif. 0.11, te da aprx. 7.096% no 10
El calculo para sacar ese porcentaje es el siguiente
|dif|*100/Valor_inicial. Los | | inica ques es el balor absoluto, osea sin signo.
Lo que no entendí si sobre el 0.11 tienes que sacar el 28%
Que seria 0.11*28/100
Si quieres quieres que te muestre con un formato del Tipo $0.40 que te ponga los ceros osea que siempre tengas los ceros para completar en ves de 0.4 ó .4
Format(Num,"$##0.00"), donde num es el numero a dar formato.
No se si hay una consulta sql para lo que necesitas, pero siempre puedes esxplorar registro a registro, cosa que no es muy eficiente.
Lo que se me ocurre ahora es generar una matriz con un valor desde un valor inicial y uno final y calcular el intervalo y después pasárselo a la consulta sql que devuelva los registros que coincidan con ese valor.
Pero como vi que tus fechas no están con el formato "fecha" ni el equivalente numérico, ya que no pusiste el equivalente numérico solo pusiste todo la fecha pegada sin caracteres.
Lo más fácil es ponerle formato fecha.
Para mostrar todos los datos puedes usar el control MSHFlexGrid, que por si no lo conoces es para mostrar los datos en tablas al estilo excel, por decirlo de una manera, osea por filas por n columnas.
1) Creas un origne a datos puedes utilizar el control ado
2) En el MSHFlexGrid, en la propiedad Datasource seleccionas el origen de datos (adodc1, en nuestro caso si usaste el control ado con el nombre por defecto).
2) Después haces click con el botón derecho del mouse en el control MSHFlexGrid y le das a obtener estructura, te va a aparecer los campos de tu BD.
3) Ahrora le agregas una columna para agregar tu valor. Para hacer esto haces botón derecho del mouse sobre MSHFlexGrid, vas a propiedades y donde dice columns le aumentas en 1 (por ejemplo si dice 5 lo pones en 6), y ya tienes tu columna nueva.
4) Para ponerle el valor
MSHFlexGrid1.TextMatrix(rowindex, colindex)="texto"
Donde rowindex es nuestra fila y colindex nuestra columna que es fija en el ejemplo de arriba 6, "texto" es texto que queremos incluir en la celda.
Entonces quedaría para por ejemplo las 2 primeras filas
MSHFlexGrid1.TextMatrix(1, 6)="texto"
MSHFlexGrid1.TextMatrix(2, 6)="texto"
Nota que las filas empiezan en 1 ya que la primera es para el encabezado, si es que quieres que tenga y es como esta por defecto.
Para poner el encabezado es = solo que se lo asignas a la fila 0
MSHFlexGrid1.TextMatrix(0, 6)="Mi encabezado"
Para hacer los cálculos simplemtente obtienes el valor de la celada, como te mostré antes ya que TextMatrix Devuelve o establece el contenido de texto de una celda.
Quedaría algo así, por ejemplo para sumarle 7 a la celda 1,1 y mostrar el resultado en la 1,6
MSHFlexGrid1.TextMatrix(1, 6)= MSHFlexGrid1.TextMatrix(1, 1) +7
Buen día experto. Muy interesante tu ayuda y de verdad veo una luz para poder resolverlo.
Me gustaría que me ayudaras un poco con los detalles respecto al control MSHFlexGrid ya que mi experiencia es reducida en lo que se refiere VB, y que manera puedo hacer para generar reportes por impresoras luego de la consulta. Si me puedes facilitar una explicación, un link o manual estaría agradecido.
Ok. Ahora miro en que habíamos quedado, disculpa es que en estos días no tuve internet, recién ahora solucione el problema.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas