Dudas sobre consulta a base de datos Access utilizando Visual Basic y conexión data grilla dbgrid

Estoy realizando consultas, base de datos Access, lenguaje Visual Basic, conexión data, grilla dbgrid, cuando realizo la consulta en SQL los registros que me muestra en la grilla me los repite varias veces, ¿por qué sera? Muchas gracias por todo, me están ayudando mucho Saludos

1 Respuesta

Respuesta
1
Lo más probable es que sea por la consulta que estas realizando. Repasa la sintaxis de la query y si acaso ves quitándole cosas (condiciones, claves ajenas a otras tablas, etc.) para ver por donde se te están colando tantos registros.
Si quieres más ayuda tendrás que enviarme la consulta.
Gracias por todo, te cuento que solucione el problema que se me repiten los registros, pero tengo otra duda, necesito hacer una consulta de las ventas de productos por fecha, pero la fecha la se ingresa por un DTPicker, es fecha desde y hasta, como hago la consulta, acá te mando lo que escribo en el select.
Muchas gracias, espero que una vez más me puedas ayudar.
dim cadena as string
cadena = "SELECT Producto.[Pro-IdCliente], [Tipo Hardware].[Har-Descripcion], Marcas.[Mar-Descripcion], Modelos.[Mod-Descripcion], Producto.[Pro-IdProducto], Producto.[Pro-FacturaVenta], Producto.[Pro-FechaVenta], Producto.[Pro-PrecioVenta]FROM ((Producto LEFT JOIN[Tipo Hardware] ON Producto.[Pro-IdTipo] = [Tipo Hardware].[Har-IdHardware]) LEFT JOIN Marcas ON Producto.[Pro-IdMarca] = Marcas.[Mar-IdMarca]) LEFT JOIN Modelos ON Producto.[Pro-IdModelo] = Modelos.[Mod-IdModelo] WHERE Producto.[Pro-Activo] = '0' and Producto.[Pro-FechaVenta] BETWEEN dtpDesde.Value dtpDesde.Hasta"
datListado.RecordSource = cadena
datListado.Refresh
Primero, gracias por responderme, pero como hago para mandarte un archivo adjunto, así ves la consulta porque ya no se que hacer. Saludos.Jupiter1
No hace falta que me mandes todo (si quieres, hazlo a [email protected]), pero con la consulta que pones en el Recordsource del Data Control o Ado Control bastaría (es decir, las "select" que utilizas). Hazlo como quieras.
De nuevo yo, perdón, pero como hago lo de Fecha cuando el usuario ingresa la fecha, ¿lo guardo en una variable y después que hago? Entendés que pregunto, la consulta se realiza dependiendo de la fecha ingresada por el usuario.
Muchas gracias por todo. Saludos.
Prueba con esta consulta:
SELECT Producto.[Pro-IdCliente], [Tipo Hardware].[Har-Descripcion], Marcas.[Mar-Descripcion], Modelos.[Mod-Descripcion],
Producto.[Pro-IdProducto], Producto.[Pro-FacturaVenta], Producto.[Pro-FechaVenta], Producto.[Pro-PrecioVenta]
FROM [Producto], [Tipo Hardware], [Marcas], [Modelos] WHERE
([Producto].[Pro-IdTipo] = [Tipo Hardware].[Har-IdHardware]) AND
([Producto].[Pro-IdMarca] = [Marcas].[Mar-IdMarca]) AND
([Producto].[Pro-IdModelo] = [Modelos].[Mod-IdModelo]) AND
([Producto].[Pro-Activo] = '0') AND ([Producto].[Pro-FechaVenta] BETWEEN #01/12/2002# AND #01/02/2003#)
Lo de las fechas te lo dejo de ejemplo para lo del DTPicker.
Muchísimas gracias y la verdad muy buena onda. Saludos.
La fecha tienes que asegurarte de que este en el formato correcto (según la configuración regional que utilices en tu ordendador), para mi, es dd/mm/aaaa.
No he utilizado el DTPicker, pero al parecer tiene una propiedad value que contiene la fecha introducida por el usuario correctamente formateada.
De esta manera, la consulta la formaras como un String:
Dim cadena As String
Cadena = "SELECT Producto.[Pro-IdCliente], [Tipo Hardware].[Har-Descripcion], Marcas.[Mar-Descripcion], Modelos.[Mod-Descripcion],
Producto.[Pro-IdProducto], Producto.[Pro-FacturaVenta], Producto.[Pro-FechaVenta], Producto. [Pro-PrecioVenta]
FROM [Producto], [Tipo Hardware], [Marcas], [Modelos] WHERE
([Producto].[Pro-IdTipo] = [Tipo Hardware].[Har-IdHardware]) AND
([Producto].[Pro-IdMarca] = [Marcas].[Mar-IdMarca]) AND
([Producto].[Pro-IdModelo] = [Modelos].[Mod-IdModelo]) AND
([Producto].[Pro-Activo] = '0') AND ([Producto].[Pro-FechaVenta] BETWEEN #" & DTPicker1.Value & "# AND #" & DTPicker2.Value & "#)"
Creo que es esto lo que querías. Muchas de nada, je je.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas