Búsqueda
Saludos Master, mira tengo el sig. Problema Tengo varios OptionButton al seleccionar uno de ellos en un cuadro de texto escribo la búsqueda a realizar, el detalle es que en la tabla el campo a buscar esta escrito de manera diferente: ¿Me explico mejor?
En la tabla Base1 Campo Municipio, este esta capturado así: Concordia, La por sentido común el usuario al buscar este municipio teclea La Concordia presiona enter pero no localiza el Municipio en Cuestión... Por la forma en que esta capturado, como le puedo hacer en este caso te envío el código que utilizo:
Private Sub CmdBuscar_Click()
'EVALUA QUE SE HAYA ESPECIFICADO UN CRITERIO
If TxtBusqueda = "" Then
MsgBox "Eliga una Opción y teclee la busqueda correspondiente ", vbCritical, "ERROR"
TxtBusqueda.SetFocus
Exit Sub
End If
'COMO EL CAMPO CONTROL ES NUMERICO EN EL WHERE DE LA CONSULTA NO LLEVA
'APOSTROFE POR QUE NO ES UN CAMPO TIPO CADENA, POR LO QUE SE EVALUA DE
'FORMA PARTICULAR
If OP(0).Value = True Then
LblProceso.Caption = "Espere un momento... Procesando"
Timer3.Interval = 1
LblProceso.Visible = True
LblProceso.Refresh
'SE REALIZA LA CONSULTA Y SE ALMACENA EL RESULTADO EN EL RECORDSET SEGUN
'LA VARIABLE CAMPO QUE ES EL CRITERIO INDICADO
Set RSCONSULTA = FILTRAR("SELECT * FROM SQL_CCTFN WHERE " & CAMPO & "='" & TxtBusqueda.Text & "'")
If Err.Number Or RSCONSULTA.BOF Or RSCONSULTA.EOF Then
Err.Clear
MsgBox "NO EXISTE EL DATO BUSCADO Y NO HAY MAS DATOS QUE MOSTRAR", vbInformation, "Información"
End If
'SE ASIGNA EL CONTENIDO DEL RECORDSET AL DATAGRID
Set DataGrid1.DataSource = RSCONSULTA
' Exit Sub
End If
End Sub
Private Sub OP_Click(Index As Integer)
Dim CONDICION As String ' VARIABLE QUE GUARDA LA CADENA DE LA CONSULTA SEGUN LA OPCION ELEGIDA
' ALGO DE SQL: DISTINCT--> SIRVE PARA QUE NO SE OBTENGAN CAMPOS REPETIDOS
Select Case Index
Case 0
TxtBusqueda.Text = ""
CONDICION = "SELECT DISTINCT(Cve_esc) FROM SQL_CCTFN ORDER BY Cve_esc ASC"
CAMPO = "Cve_esc"
CmdExportar.Enabled = False
TxtBusqueda.SetFocus
Case 1
TxtBusqueda.Text = ""
' SQL: SELECCIONAME TODOS LOS REGISTROS DEL CAMPO NOMBRE QUE NO SE
' REPITAN Y ORDENALOS ASCENDENTEMENTE
CONDICION = "SELECT DISTINCT(Nom_esc) FROM SQL_CCTFN ORDER BY Nom_esc ASC"
CAMPO = "Nom_esc"
CmdExportar.Enabled = False
TxtBusqueda.SetFocus
Case 2
TxtBusqueda.Text = ""
CONDICION = "SELECT DISTINCT(Municipio) FROM SQL_CCTFN ORDER BY Municipio ASC"
CAMPO = "Municipio"
CmdExportar.Enabled = True
TxtBusqueda.SetFocus
Case 3
TxtBusqueda.Text = ""
CONDICION = "SELECT DISTINCT (Sector)FROM SQL_CCTFN ORDER BY Sector ASC"
CAMPO = "Sector"
CmdExportar.Enabled = True
TxtBusqueda.SetFocus
Case 4
TxtBusqueda.Text = ""
CONDICION = "SELECT DISTINCT(ZE) FROM SQL_CCTFN ORDER BY ZE ASC"
CAMPO = "ZE"
CmdExportar.Enabled = True
TxtBusqueda.SetFocus
End Select
' LA FUNCION FILTRAR REALIZA UN CONSULTA DE SELECCION SEGUN LA SENTENCIA SQL ESPECIFICADA
' Y DEVUELVE EL RESULTADO EN EL RECORDSET RSCONSULTA
' SE ENLAZA EL COMBO CBOCRITERIO CON LA PROPIEDAD DATASOURCE Y
' SE LE INDICA DATOS DE QUE CAMPO VA A ESEÑAR CON LA PROP. LISTFIELD
Set RSCONSULTA = FILTRAR(CONDICION)
CmdBuscar.Enabled = True
End Sub
Espero no sea mucha lata Gracias
En la tabla Base1 Campo Municipio, este esta capturado así: Concordia, La por sentido común el usuario al buscar este municipio teclea La Concordia presiona enter pero no localiza el Municipio en Cuestión... Por la forma en que esta capturado, como le puedo hacer en este caso te envío el código que utilizo:
Private Sub CmdBuscar_Click()
'EVALUA QUE SE HAYA ESPECIFICADO UN CRITERIO
If TxtBusqueda = "" Then
MsgBox "Eliga una Opción y teclee la busqueda correspondiente ", vbCritical, "ERROR"
TxtBusqueda.SetFocus
Exit Sub
End If
'COMO EL CAMPO CONTROL ES NUMERICO EN EL WHERE DE LA CONSULTA NO LLEVA
'APOSTROFE POR QUE NO ES UN CAMPO TIPO CADENA, POR LO QUE SE EVALUA DE
'FORMA PARTICULAR
If OP(0).Value = True Then
LblProceso.Caption = "Espere un momento... Procesando"
Timer3.Interval = 1
LblProceso.Visible = True
LblProceso.Refresh
'SE REALIZA LA CONSULTA Y SE ALMACENA EL RESULTADO EN EL RECORDSET SEGUN
'LA VARIABLE CAMPO QUE ES EL CRITERIO INDICADO
Set RSCONSULTA = FILTRAR("SELECT * FROM SQL_CCTFN WHERE " & CAMPO & "='" & TxtBusqueda.Text & "'")
If Err.Number Or RSCONSULTA.BOF Or RSCONSULTA.EOF Then
Err.Clear
MsgBox "NO EXISTE EL DATO BUSCADO Y NO HAY MAS DATOS QUE MOSTRAR", vbInformation, "Información"
End If
'SE ASIGNA EL CONTENIDO DEL RECORDSET AL DATAGRID
Set DataGrid1.DataSource = RSCONSULTA
' Exit Sub
End If
End Sub
Private Sub OP_Click(Index As Integer)
Dim CONDICION As String ' VARIABLE QUE GUARDA LA CADENA DE LA CONSULTA SEGUN LA OPCION ELEGIDA
' ALGO DE SQL: DISTINCT--> SIRVE PARA QUE NO SE OBTENGAN CAMPOS REPETIDOS
Select Case Index
Case 0
TxtBusqueda.Text = ""
CONDICION = "SELECT DISTINCT(Cve_esc) FROM SQL_CCTFN ORDER BY Cve_esc ASC"
CAMPO = "Cve_esc"
CmdExportar.Enabled = False
TxtBusqueda.SetFocus
Case 1
TxtBusqueda.Text = ""
' SQL: SELECCIONAME TODOS LOS REGISTROS DEL CAMPO NOMBRE QUE NO SE
' REPITAN Y ORDENALOS ASCENDENTEMENTE
CONDICION = "SELECT DISTINCT(Nom_esc) FROM SQL_CCTFN ORDER BY Nom_esc ASC"
CAMPO = "Nom_esc"
CmdExportar.Enabled = False
TxtBusqueda.SetFocus
Case 2
TxtBusqueda.Text = ""
CONDICION = "SELECT DISTINCT(Municipio) FROM SQL_CCTFN ORDER BY Municipio ASC"
CAMPO = "Municipio"
CmdExportar.Enabled = True
TxtBusqueda.SetFocus
Case 3
TxtBusqueda.Text = ""
CONDICION = "SELECT DISTINCT (Sector)FROM SQL_CCTFN ORDER BY Sector ASC"
CAMPO = "Sector"
CmdExportar.Enabled = True
TxtBusqueda.SetFocus
Case 4
TxtBusqueda.Text = ""
CONDICION = "SELECT DISTINCT(ZE) FROM SQL_CCTFN ORDER BY ZE ASC"
CAMPO = "ZE"
CmdExportar.Enabled = True
TxtBusqueda.SetFocus
End Select
' LA FUNCION FILTRAR REALIZA UN CONSULTA DE SELECCION SEGUN LA SENTENCIA SQL ESPECIFICADA
' Y DEVUELVE EL RESULTADO EN EL RECORDSET RSCONSULTA
' SE ENLAZA EL COMBO CBOCRITERIO CON LA PROPIEDAD DATASOURCE Y
' SE LE INDICA DATOS DE QUE CAMPO VA A ESEÑAR CON LA PROP. LISTFIELD
Set RSCONSULTA = FILTRAR(CONDICION)
CmdBuscar.Enabled = True
End Sub
Espero no sea mucha lata Gracias
1 Respuesta
Respuesta de denciso
1