Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: lucius en Octubre 12, 2011, 03:32:04 pm

Título: Como automatizar busquedas con rs.filter con mas de 10 campos
Publicado por: lucius en Octubre 12, 2011, 03:32:04 pm
Explico un poco lo que nose como hacer.

Tengo esta funcion para mostrar en un list los campos de una tabla
Código: [Seleccionar]
Public Sub CargarCampos2()
Dim n As Integer
Dim i As Integer
n = rs.Fields.Count

List1.Clear
 For i = 0 To n - 1
    List1.AddItem rs.Fields(i).Name
 Next
List1.ListIndex = 0

End Sub


Ahora desde un boton quiero hacer un filtro, si hay solo 2 campos lo hago asi
Código: [Seleccionar]
Public Sub Buscar2()
rs.Requery
Select Case List1.ListIndex
   Case 0
      rs.Filter = "" & List1 & "='" & Text1 & "'" 'campo numerico
   Case 1
      rs.Filter = "" & List1 & " like '" & Text1 + "%" & "'" 'campo texto
End Select

If rsCargo.RecordCount <= 0 Then
   MsgBox "No se encontro ningun registro", vbInformation, "Información"
End If
End Sub

El problema o mejor dicho nose como hacer cuando la tabla tiene 10 campos con diferentes tipos de datos numero o texto, se puede automatizar eso con un bucle FOR o tendria que utilizar si o si 10 CASES en mi funcion Buscar2, ojala y lo haya explicado bien.
Título: Re:Como automatizar busquedas con rs.filter con mas de 10 campos
Publicado por: seba123neo en Octubre 12, 2011, 04:39:12 pm
para saber de que tipo de datos es el campo , simplemente basta con hacer:

Código: [Seleccionar]
rs.Fields(i).Type
eso te devuelve un numero, por ejmeplo el 133 equivale a fecha

aca tenes una tabla con los valores de cada tipo de dato:

ADO Data Types (http://www.w3schools.com/ado/ado_datatypes.asp)

saludos.