Access - busquedas

 
Vista:

busquedas

Publicado por Pedro (5 intervenciones) el 14/10/2001 06:01:41
Hola

Estoy realizando una base de datos la cual realize una busqueda por un rango de un campo ya sea numerico o cadena, esto lo habia hecho para un campo fecha sin problemas, alguien podria decirme como lo hago con un campo numerico o de cadena.

El codigo lo tego en visual basic, agradeceria mucho a quien me muestre como hacerlo, el codigo es el siguiente:

Private Sub cmdExecute_Click()

Dim strSQL As String
Dim db As Database
Dim dc As Recordset

Dim qrySales As QueryDef


Set db = DBEngine.Workspaces(0).OpenDatabase _
("C:\Sistemas\Proyecto de Vehiculos\Vehiculos.mdb")

Set qrySales = db.CreateQueryDef("", "PARAMETERS [Fecha de inicio] DateTime, " & _
"[Fecha de fin] DateTime; " & _
"SELECT DISTINCTROW Vehiculos.Numeco, " & _
"Vehiculos.Modelo, " & _
"Vehiculos.Kilometraje, " & _
"Orden.Fecha, Servicio.Tipo, Taller.Nombre " & _
"FROM Vehiculos INNER JOIN (Taller INNER JOIN " & _
"(Servicio INNER JOIN Orden ON Servicio.Numero = " & _
"Orden.Numero) ON Taller.Num = Orden.Num) ON " & _
"Vehiculos.Numeco = Orden.Numeco " & _
"WHERE (((Orden.Fecha) Between " & _
"[Fecha de inicio] And [Fecha de fin]))")

qrySales.Parameters("Fecha de inicio") = CDate(txtBegin)
qrySales.Parameters("Fecha de fin") = CDate(txtEnd)
Set dc = qrySales.OpenRecordset()
Set datSales.Recordset = dc

End Sub

Funciona para mostrar una busqueda en un rango de fechas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

busquedas

Publicado por Alejandro (4142 intervenciones) el 18/04/2023 23:52:06
Para buscar un rango de valores numéricos o de cadena en Access, puedes utilizar el operador BETWEEN junto con los valores mínimo y máximo del rango que deseas buscar. En el código que proporcionaste, tendrías que cambiar la cláusula WHERE de la consulta para que se ajuste a tu campo numérico o de cadena. Por ejemplo, si deseas buscar un rango de números en un campo llamado "Precio", podrías modificar el código de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Private Sub cmdExecute_Click()
 
Dim strSQL As String
Dim db As Database
Dim dc As Recordset
Dim qrySales As QueryDef
 
Set db = DBEngine.Workspaces(0).OpenDatabase _
("C:\Sistemas\Proyecto de Vehiculos\Vehiculos.mdb")
 
Set qrySales = db.CreateQueryDef("", "PARAMETERS [MinValor] Numeric, " & _
"[MaxValor] Numeric; " & _
"SELECT DISTINCTROW Vehiculos.Numeco, " & _
"Vehiculos.Modelo, " & _
"Vehiculos.Kilometraje, " & _
"Orden.Fecha, Servicio.Tipo, Taller.Nombre " & _
"FROM Vehiculos INNER JOIN (Taller INNER JOIN " & _
"(Servicio INNER JOIN Orden ON Servicio.Numero = " & _
"Orden.Numero) ON Taller.Num = Orden.Num) ON " & _
"Vehiculos.Numeco = Orden.Numeco " & _
"WHERE (((Vehiculos.Precio) Between " & _
"[MinValor] And [MaxValor]))")
 
qrySales.Parameters("MinValor") = CDec(txtMinValor)
qrySales.Parameters("MaxValor") = CDec(txtMaxValor)
Set dc = qrySales.OpenRecordset()
Set datSales.Recordset = dc
 
End Sub

En este ejemplo, se utilizó la función CDec para convertir los valores de los cuadros de texto en números decimales antes de asignarlos a los parámetros de la consulta. De manera similar, si deseas buscar un rango de valores de cadena en un campo llamado "Nombre", podrías modificar la cláusula WHERE de la consulta de la siguiente manera:

1
2
3
WHERE (((Vehiculos.Nombre) Between " & _
"'" & txtMinNombre & "'" & " And " & _
"'" & txtMaxNombre & "'" & "))")

En este caso, se utilizan comillas simples alrededor de los valores de los cuadros de texto para indicar que se trata de una cadena.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar