Visual Basic - PROBLEMAS CON EL DATAGRID

Life is soft - evento anual de software empresarial
 
Vista:

PROBLEMAS CON EL DATAGRID

Publicado por manuel 2013 (1 intervención) el 09/06/2013 23:59:39
HOLA AMIGOS, ESPERO ME AYUDEN ESTE PROBLEMITA QUE TENGO CON MI DATA GRID...
he buscado algun caso parecido por la web pero nada encontre...
LES COMENTO TENGO UN FORMULARIO EN DONDE tengo 01 combobox, 01 datagrid, 01 label en donde me muestra elcodigo de la zona, y 01 control adocliente y adozona los estoy conectando a mi base de datos en access directamente desde la ventana propiedades, mis tablas son clientes y zonas previamente relacionada de varios a uno osea en una zona puieden existir varios clientes...
el problema es que cada vez que seleciono desde el combo por ejemplo la zona "el acero" solo debe de mostrarme en el data grid aquellos clientes que pertenecen a esa zona, pero me esta arrojando todos los clientes de todas las zonas, y eso no quiero que pase mas que debe de arrojarme solo lo solicitado...ahi les grafico el problema...

y este es codigo:
Sub cargazona()
'carga todas las zonas de mi tabla zonas
adozonas.Refresh
Do While adozonas.Recordset.EOF = False
cmbzonas.AddItem adozonas.Recordset("zona")
adozonas.Recordset.MoveNext
Loop
End Sub
Private Sub cmbzonas_Click()
'aqui le digo que publique en el label el codigo de la zona seleccionada...
With adozonas.Recordset
adozonas.Refresh
If adozonas.Recordset.BOF And adozonas.Recordset.EOF Then Exit Sub
adozonas.Recordset.Find "zona='" & Trim(cmbzonas.Text) & "'"
lblcodzona.Caption = adozonas.Recordset("codzona")
End With

'inicio la busqueda de todos los clientes que pertenezcan a dicho distrito seleccionado
With adocliente.Recordset
adocliente.Refresh
adocliente.Recordset.MoveFirst
If adocliente.Recordset.BOF And adocliente.Recordset.EOF Then Exit Sub

adocliente.Recordset.Find "codzona='" & Trim(lblcodzona.Caption) & "'"
'aqui con setgrilla actualizo y le digo que adoclientes es igual al datagrid
Set grillacliente.DataSource = adocliente
End With

End Sub
Private Sub Form_Load()
'aqui llamo a cargar las zonas en el combo
Call cargazona
End Sub
ahora no me explico porque no me muestra lso que necesito, porfavor espero su ayuda pronto y si en algo estoy mal corrijanme pofavor gracias gente....
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 Emilio

PROBLEMAS CON EL DATAGRID

Publicado por Emilio (4 intervenciones) el 11/06/2013 03:52:27
Lo que estas haciendo es solo una busqueda, lo que tienes que hacer es un "filtrado", una manera sencilla de hacerlo seria la siguiente:

Private Sub cmbzonas_Click()


adocliente.RecordSource = "SELECT * FROM CLIENTES WHERE ZONA = '" & Trim(cmbzonas.Text) & "'"
adocliente.Refresh

Set grillacliente.DataSource = adocliente

End Sub

En caso que quisieras publicar de nuevo todos los clientes, en el combo puedes poner una opcion "TODAS" y en ese caso el procedimiento puede quedar asi:

Private Sub cmbzonas_Click()


IF Trim(cmbzonas.Text) = "TODAS" THEN
adocliente.RecordSource = "SELECT * FROM CLIENTES"
ELSE
adocliente.RecordSource = "SELECT * FROM CLIENTES WHERE ZONA = '" & Trim(cmbzonas.Text) & "'"

END IF

adocliente.Refresh

Set grillacliente.DataSource = adocliente

End Sub

Espero te sirva.

Saludos.
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