USO DE CONSULTAS EN VB6

Thearkhangel
18 de Octubre del 2005
Intento hacer una consulta a una base de datos ODBC de Transtools,
La tabla articulos contiene los campos Codigo, proveedor, denominacion, impuesto, familia, costo y esta en un formulario junto a un txtbox llamado pvp
La tabla Precios tiene todos los posibles numeros de precios existentes es decir
codigo denominacion margencal margenmin dto
1 PRECIO GENERAL 45 35 0
La tabla marg_prec_art contiene
numero de precio, articulo, pvp, margencal margenmin dto

Lo que trato de hacer es poder crear una consulta que tenga en cuenta el numero de precio que selecciono en el formulario y segun me vaya moviendo por los registros que compruebe si el articulo con el numero de precio seleccionado esta en dicha tabla, de ser así y si el pvp de la tabla en cuestion no esta vacio, lo ponen en el form como pvp y si no lo calcula en base a el costo del producto por el margencal - dto.
Si el articulo no está en dicha tabla entonces tendrá que buscarlo en la siguiente tabla que es marg_prov_fam que contiene el numero de precio, la familia y el proveedor.
Y así con otra tabla mas que es margenes_prov
y por último tendría en cuenta la tabal precios si no la ha localizado en las anteriores.

He intentado hacerlo de muchas maneras pero no lo he logrado y no puedo moverme por las tablas teniendo en cuenta el .EOF de cada una ya que así la compración hace muy lento ver los precios.

Creo que hay que usar una consulta o un cursor pero no se como manejarlos y por mas que he buscado no logro encontrar como.

Lamento ser tan extenso pero he querido daros el maximo de información haber si alguno puede darme una posible solución a este dilema que me trae de cabeza.

Un saludo a todos por adelantado y gracias

mvallejos
18 de Octubre del 2005
la consulta se puede resolver joineando o relacionando ambas tablas, la de producto y proveedor, usando además, un par de condicionales dentro de la consulta.
Mi duda es sobre ODBC de Transtools, no lo conozco, que es Transtools? .. un motor de base de datos?
Si no es así.. que motor de base de datos estás usando?

Espero la repuesta

Raziel
18 de Octubre del 2005
no, no se pueden enlazar, transtools en una herramienta de programacion para bases de datos. Yo estoy usando Visual Basic 6 y conecto con las tablas de esa base de datos con el driver odbc mediante DNS configurado en mi sistema. Lo que necesito es un ejemplo con los datos que te he dado sobre como hacer una consulta como te he especificado y como se ejecuta cada vez que pasamos de un registro a otro con el codigo dataenvironment1.rsarticulos.movenext y similares

Por favor, explicame con mis datos como realizar las consultas, como hacer que se ejecute la consulta teniendo en cuenta los valores que hay en el formulario activo en ese momento, codigo, proveedor, numero precio y familia.

No logro hacerlo y ya no se me ocurre nada mas


Gracias por la amabilidad de contestar.

mvallejos
18 de Octubre del 2005
No uso DataEnvirnonment y Datas ni dada de eso, trabajo solo con conexiones y Recordsets y me valgo de sentencias Sql para resolver todo.
Transtools maneja ANSI SQL (sql estandar) ?
Si es así, que sentencias adicionales usa? algún condicional es posible dentro de uan SQL?
Si no es así, no te puedo ayudar mucho.

Saludos

Raziel
18 de Octubre del 2005
estas son mis tablas, uso el dsn=MBGESTI que contiene la conecsion por ODBC con la base de datos

mis tablas son:

articulos
articulos_proveed
marg_prec_art
marg_prov_fam
margenes_prov
precios

Como harias tu la conexión sin el dataenvironment ni el data y crearias la consulta para comprobar si el articulo actual del form coincide su codigo y su numero de precio con la tabla marg_prec_art, si coincide poner el valor del campo pvp de la tabla marg_prec_art en el txtboxpvp y si no llamar entonces a la siguiente consulta para la siguiente tabla.

Espero que esto te ayude a comprender lo que necesito, realmente lo que necesito saber es como crear la conecsion como tu la haces, como crear una consulta y ejecutarla automáticamente segun voy moviendome por los registros del form.

Un saludo