Visual Basic - If para un buscador de msflexgrid

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

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
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

If para un buscador de msflexgrid

Publicado por andres guerrero (1798 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
sin imagen de perfil

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