Visual Basic - If para un buscador de msflexgrid

Life is soft - evento anual de software empresarial
   
Vista:

If para un buscador de msflexgrid

Publicado por Brian (9 intervenciones) el 25/10/2014 05:51:04
Hola a todos, tengo un msflexgrid con datos de acces.
Tengo un text1.text que lo utilizo para filtrar articulos (es un gestor de stock) les paso el codigo:
1
2
3
4
5
6
7
8
9
10
11
Private Sub buscaarticulo()
whe = "where nro_articulo = " & Text1.Text
sql = "select * from mercaderia " & whe
'MsgBox sql
rs.Open sql, conn
Label6.Caption = rs.Fields("descripcion")
Label6.AutoSize = True
Label5.Caption = rs.Fields("precio")
Label3.Caption = rs.Fields("cantidad")
rs.Close
End Sub

Funciona perfecto, el problema surge cuando escribo un articulo que no existe, el programa da error y se cierra automaticamente, mi idea es que cuando no exista el articulo aparezca msgbox "el articulo no existe"
se me ocurrio con un if asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub buscaarticulo()
IF whe = "where nro_articulo = " & Text1.Text THEN
sql = "select * from mercaderia " & whe
'MsgBox sql
rs.Open sql, conn
Label6.Caption = rs.Fields("descripcion")
Label6.AutoSize = True
Label5.Caption = rs.Fields("precio")
Label3.Caption = rs.Fields("cantidad")
rs.Close
ELSE
Msgbox "El articulo no existe"
END IF
End Sub

Pero no funciona, alguno tiene una idea mejor o puede hacerme alguna sugerencia ? GRACIAS
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 Oscar

If para un buscador de msflexgrid

Publicado por Oscar (63 intervenciones) el 25/10/2014 12:23:52
El condiciaonal debes ponerlos despues de hacer la busqueda y el recordset cerrarlo al final del condicional

Usando tu código:

1
2
3
4
5
6
7
8
9
10
11
12
sql = "select * from mercaderia  where nro_articulo = " & Text1.Text
rs.Open sql, conn
if not rs.EOF Then
   Label6.Caption = rs.Fields("descripcion")
   Label6.AutoSize = True
   Label5.Caption = rs.Fields("precio")
   Label3.Caption = rs.Fields("cantidad")
ELSE
   Msgbox "El articulo no existe"
END IF
rs.Close
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de andres guerrero

If para un buscador de msflexgrid

Publicado por andres guerrero (698 intervenciones) el 28/10/2014 15:44:09
Excelente Respuesta Oscar!!
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
Imágen de perfil de andres guerrero

If para un buscador de msflexgrid

Publicado por andres guerrero (698 intervenciones) el 28/10/2014 15:43:18
Pues claro ya veo el tema... desde mi perspectiva estas controlando mal el tema

Puede hacer dos cosas controlar el recordset antes del proceso ... algo asi ...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub buscaarticulo()
   whe = "where nro_articulo = " & Text1.Text THEN
   sql = "select * from mercaderia " & whe
	'MsgBox sql  -- esto es para vert el query
	rs.Open sql, conn
'****si no hay resultados ********
    If Rs.EOF = True And Rs.BOF = True Then
    MsgBox "No existen Resultados para mostrar", vbInformation, "Consulta de Pendientes"
    Rsio.Close
    Exit Sub --salgo del sub ....
    End If
'**********************************
	Label6.Caption = rs.Fields("descripcion")
	Label6.AutoSize = True
	Label5.Caption = rs.Fields("precio")
	Label3.Caption = rs.Fields("cantidad")
	rs.Close
	"El articulo no existe"
End Sub
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

If para un buscador de msflexgrid

Publicado por Brian (9 intervenciones) el 29/10/2014 00:10:08
Gracias Oscar funciono a la perfeccion !!
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