Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/10/2011, 10:24
vilfrack
 
Fecha de Ingreso: junio-2009
Mensajes: 15
Antigüedad: 14 años, 11 meses
Puntos: 1
Pregunta Realizar busqueda habilitando 3 campos (vb2010)

Buenas tarde, el motivo por el que abro un nuevo tema es porque estoy tratando de realizar una busqueda habilitando/deshabilitando 3 campos de texto.

Para la realizacion de esta busqueda estoy utilizando 3 textbox (serial,ip e ip inalambrica); la idea es q el usuario pueda habilitar la busqueda de cada texbox dando click a un cheekbox; por eiemplo si desea buscar por el serial, al habilitar el cheekboox y al escribir el codigo este deberia realizar la busqueda; lo mismo pasa con ip e ip inalambrica.

¿Cual es el problema?
que al hacer la busqueda por serial no hace nada y al hacerla por la ip inalambrica me arroja un msj ya predefinido por mi si el codigo no existe, el unico valor q si me busca es con la direccion ip.

a continuacion el codigo
************************************************** ************************************************** ************
Dim QueryCode As String = "SELECT * FROM laptos WHERE codigo_lapto =" & TxtBserial.Text & ""
Dim QueryIp As String = "SELECT * FROM laptos WHERE ip ='" & TxtBIp.Text & "'"
Dim QueryIpIna As String = "SELECT * FROM laptos WHERE ip_inalambrica ='" & TxtBIpIna.Text & "'"


If TxtBIp.Text = "" And TxtBIpIna.Text = "" Then
Dim cmd As New OleDb.OleDbCommand(QueryCode, cn)
Dim dr As OleDb.OleDbDataReader
cn.Open()
dr = cmd.ExecuteReader
If dr.Read Then
TxtSerial.Text = dr("codigo_lapto")
TxtIp.Text = dr("ip")
TxtIpIna.Text = dr("ip_inalambrica")
TxtNomEqui.Text = dr("Nombre_del_equipo")
TxtDominio.Text = dr("Dominio")
TxtNomUsa.Text = dr("Nombre_del_usuario")
TxtUbicacion.Text = dr("ubicacion")
TxtDepar.Text = dr("departamento")

TxtSo.Text = dr("so")
TxtOffice.Text = dr("office")
TxtRam.Text = dr("memoria")
TxtDd.Text = dr("dd")
TxtDvd.Text = dr("dvd")
TxtProcesador.Text = dr("procesador")
TxtBits.Text = dr("bits")
Txtaccesorio.Text = dr("accesorios")

Else
MsgBox("EL REGISTRO NO EXISTE")
End If
cn.Close()
ElseIf TxtBserial.Text = "" And TxtBIpIna.Text = "" Then
Dim cmd As New OleDb.OleDbCommand(QueryIp, cn)
Dim dr As OleDb.OleDbDataReader
cn.Open()
dr = cmd.ExecuteReader
If dr.Read Then
TxtSerial.Text = dr("codigo_lapto")
TxtIp.Text = dr("ip")
TxtIpIna.Text = dr("ip_inalambrica")
TxtNomEqui.Text = dr("Nombre_del_equipo")
TxtDominio.Text = dr("Dominio")
TxtNomUsa.Text = dr("Nombre_del_usuario")
TxtUbicacion.Text = dr("ubicacion")
TxtDepar.Text = dr("departamento")

TxtSo.Text = dr("so")
TxtOffice.Text = dr("office")
TxtRam.Text = dr("memoria")
TxtDd.Text = dr("dd")
TxtDvd.Text = dr("dvd")
TxtProcesador.Text = dr("procesador")
TxtBits.Text = dr("bits")
Txtaccesorio.Text = dr("accesorios")

Else
MsgBox("EL REGISTRO NO EXISTE")
End If
cn.Close()

ElseIf TxtBserial.Text = "" And TxtBIp.Text = "" Then
Dim cmd As New OleDb.OleDbCommand(QueryIpIna, cn)
Dim dr As OleDb.OleDbDataReader
cn.Open()
dr = cmd.ExecuteReader
If dr.Read Then
TxtSerial.Text = dr("codigo_lapto")
TxtIp.Text = dr("ip")
TxtIpIna.Text = dr("ip_inalambrica")
TxtNomEqui.Text = dr("Nombre_del_equipo")
TxtDominio.Text = dr("Dominio")
TxtNomUsa.Text = dr("Nombre_del_usuario")
TxtUbicacion.Text = dr("ubicacion")
TxtDepar.Text = dr("departamento")

TxtSo.Text = dr("so")
TxtOffice.Text = dr("office")
TxtRam.Text = dr("memoria")
TxtDd.Text = dr("dd")
TxtDvd.Text = dr("dvd")
TxtProcesador.Text = dr("procesador")
TxtBits.Text = dr("bits")
Txtaccesorio.Text = dr("accesorios")

Else
MsgBox("EL REGISTRO NO EXISTE")
End If
cn.Close()


End If
************************************************** ************************************************** ************
como pueden ver me creo 3 variables tipo string que van a guardar la sentencia sql, luego si el campo de la ip esta vacio y el de la ip inalambrica este va a ejecutar la sentencia sql para el codigo.(al momento de tratar de hacer la busqueda por el codigo la pantalla de mi vb2010 no hace nada)

en el siguiente elseif valido si el codigo esta vacio y la ip inalambrica, en caso de estar vacio ejecuto la sentencia de busqueda por la ip (la unica que me sirve)

y al realizar la busqueda por la ip inalambrica esta salta hasta el MsgBox("EL REGISTRO NO EXISTE")
probe con cambiar los and por los or y nada =(

asi q se aceptan comentarios y sugerencias xD