Visual Basic para Aplicaciones - relacionar Base de datos con dos listbox

Life is soft - evento anual de software empresarial
   
Vista:

relacionar Base de datos con dos listbox

Publicado por Pedro (1 intervención) el 21/01/2008 19:05:26
Estoy diseñando un sistema de pedidos
Hola buenas tardes mi problema es el siguiente: tengo una base de datos llamada BD1
Tengo dos tablas una llamada DatosP y otra ArteGene
DatosP tiene los campos nombrecliente y cedulacliente
ArteGene tiene los campos nombrepedido y cedulacliente
Y dos listas llamadas LstCliente y LstArtGene

Lo que quiero es que al darle clic a un nombre de la lista UNO me muestre los pedidos de ese cliente en la lista DOS

Yo tengo este código a ver si me ayudan

Private Sub Form_Load()

DatosP.MoveFirst
LstCliente.Clear
While Not DatosP.EOF
LstCliente.AddItem DatosP!nombrecliente
DatosP.MoveNext
Wend

End Sub

Private Sub LstCliente_Click()

ArteGene.MoveFirst
Do While Not ArteGene.EOF
If DatosP!cedulacliente <> ArteGene!cedulacliente Then
ArteGene.MoveNext
LstArtGene.Clear

Else
LstArtGene.AddItem = ArteGene!nombrepedido

Exit Do
End If
Loop

Exit Do

End Sub

yo tengo este codigo pero al darle clic a la primera persona me muestra es solo el primer pedido de cada cliente no el resto y si le quito el Exit Do se guinda el sistema la aplicacion de visual. GRACIAS AL QUIEN ME AYUDE.
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

RE:relacionar Base de datos con dos listbox

Publicado por maictor (1 intervención) el 16/02/2008 23:21:17
No se que entorno usas si visual 2005,2003,....
Pero empezando por que las estructuras de control se cierran al reves de como
se abren, es decir si abres primero el do, lo cierras el ultimo, para lo que te
aconsejo que tabules como se ve más abajo.
Segundo: escribas o no en el listbox debes hacer movenext para leer el siguiente.
Por eso lo situo fuera del if

No se si te resolverá el problema, pero espero te ayude

Private Sub LstCliente_Click()

ArteGene.MoveFirst
Do While Not ArteGene.EOF
If DatosP!cedulacliente <> ArteGene!cedulacliente Then
'ArteGene.MoveNext
Else
LstArtGene.AddItem = ArteGene!nombrepedido
'ArteGene.MoveNext
End If
ArteGene.MoveNext

Loop

End Sub

LstArtGene.Clear
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