Consulta a Access desde vb

24/03/2011 - 09:09 por julix947 | Informe spam
¡ Holla
hola: estoy desarrolllando una aplicacion en vb.net pero para una parte del codigo necesito hacer una consulta a una base de datos en access. el tema es el siguiente: yo necesito algun tipo de consulta que me permita averiguar cual fue el medico que realizo la venta MAS ALTA de cierto producto y en cierto mes (enttonces yo selecciono el mes y el producto y tengo que obtener el medico y la cantidad...) las columnas de la base de datos están en este orden: Mes, Medico, Producto, Cantidad
había pensado en este código pero me devuelve un error que no entiendo.... (seria el codigo completo de la ejecución/ CN es la conexión a la bd y el 1 y 3 es por el orden de las columnas)
Dim CMD As New OleDb.OleDbCommand("SELECT all MAX(Cantidad) as variable from Ventas WHERE Producto='" & CbxProductoConsulta.Text & "' and Mes='" & CbxMesConsulta.Text & "'", CN)
Dim DR As OleDb.OleDbDataReader
CN.Open()
DR = CMD.ExecuteReader
If DR.Read Then
txtMedicoConsulta.Text = DR(1)
txtCantidadConsulta.Text = DR(3)
Else
MsgBox("ERROR")
End If
CN.Close()
ESTE ES EL ERROR:
No se controló System.IndexOutOfRangeException
Message=Índice fuera de los límites de la matriz.
Source=System.Data

AYUDAAA

si quieren aqui están los archivos: http://www.mediafire.com/?1szo7v3esozs33v , pero mi objetivo esque yo puede descurbir el problema con ayuda...

Preguntas similare

Leer las respuestas

#1 Leonardo Azpurua
24/03/2011 - 13:52 | Informe spam
"julix947" escribió en el mensaje
news:
¡ Holla
hola: estoy desarrolllando una aplicacion en vb.net pero para una
parte del
codigo necesito hacer una consulta a una base de datos en access. el
tema es
el
siguiente: yo necesito algun tipo de consulta que me permita
averiguar cual
fue
el medico que realizo la venta MAS ALTA de cierto producto y en
cierto mes
(enttonces yo selecciono el mes y el producto y tengo que obtener el
medico y
la
cantidad...) las columnas de la base de datos están en este orden:
Mes,
Medico, Producto, Cantidad
había pensado en este código pero me devuelve un error que no
entiendo (seria el codigo completo de la ejecución/ CN es la
conexión a la bd y el 1 y 3 es por el orden de las columnas)
Dim CMD As New OleDb.OleDbCommand("SELECT all MAX(Cantidad) as
variable
from Ventas WHERE Producto='" & CbxProductoConsulta.Text & "'
and Mes='" & CbxMesConsulta.Text & "'", CN)
Dim DR As OleDb.OleDbDataReader
CN.Open()
DR = CMD.ExecuteReader
If DR.Read Then
txtMedicoConsulta.Text = DR(1)
txtCantidadConsulta.Text = DR(3)
Else
MsgBox("ERROR")
End If
CN.Close()
ESTE ES EL ERROR:
No se controló System.IndexOutOfRangeException
Message=Índice fuera de los límites de la matriz.
Source=System.Data




Ese engendro al que te refieres como "vb.net" no es bien visto en este
foro. De todas maneras, no es totalmente tu culpa no haber sabido
enamorarte debidamente de VB6.

Si quieres obtener el médico que más Cantidad de un producto (P)
vendió durante un período (T) lo que necesitas es:

SELECT TOP 1 Medico, MAX(Cantidad)
FROM Ventas
WHERE Producto = P
AND Periodo = T
GROUP BY Medico
ORDER BY MAX(Cantidad) DESC

Tu ves como lo adaptas a los disparates del lenguaje que usas.


Salud!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida