Visual Basic - Po favor. Cual es el problema?

Life is soft - evento anual de software empresarial
 
Vista:

Po favor. Cual es el problema?

Publicado por Jack (1 intervención) el 30/03/2007 21:34:28
Hola:

Hay y ojalá todos estén bien. Aorita se me presenta un problema con el manejo de los adocontrol. Lo que sucede es que tengo 2 combos, los cuales quiero relacionar a una tabla que está guardada en acces 2000.

La tabla se llama listas los campos de dicha tabla son ID (para codigos) y DES (para los artículos).

Estos códigos (ID) están clasificados entre los 101 y 199 artículos para el combo1 y los artículos 201 al 299 están reservados para el combo 2, todos dentro de una tabla llamada listas. Lo que necesito es que seleccione la información que se requiera en el momento de pinchar sobre cada uno de los combos al momento de jecución.

La forma de conexión que estoy realizando es a través de la carga del Form Load, pero nada me resulta. Acá les envío el código y a ver si pueden corregirlo, pero realmente no se que estoy haciendo mal.

Private Sub Form_Load()
Combo1.Clear
Combo2.Clear
While Not Adodc2.Recordset.EOF
With listas
Combo1.AddItem Adodc2.Recordset!Des
Combo2.AddItem Adodc2.Recordset!Des
Adodc2.Recordset.MoveNext
If !ID > 100 And !ID < 200 Then
Combo1.AddItem (!Des)
End If
Loop
Combo1.ListIndex = 0

If !ID > 200 And !ID < 300 Then
Combo2.AddItem (!Des)
End If
Loop
Combo2.ListIndex = 0
End With
End
End Sub

Gracias por la ayuda de nuevo, JACK VILLA
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:Po favor. Cual es el problema?

Publicado por Luis Prieto (166 intervenciones) el 30/03/2007 23:11:02
Hola, Jack!!

Lo que tienes que hacer es esto:

Private Sub Form_Load()
Do While Not Me.Adodc1.Recordset.EOF
If Me.Adodc1.Recordset!Des >= 101 And Me.Adodc1.Recordset!Des <= 199 Then
Me.Combo1.AddItem Me.Adodc1.Recordset!Des
End If
If Me.Adodc1.Recordset!Des >= 201 And Me.Adodc1.Recordset!Des <= 299 Then
Me.Combo2.AddItem Me.Adodc1.Recordset!Des
End If
Me.Adodc1.Recordset.MoveNext
Loop
End Sub

Espero te ayude.

Saludos!!!

Pdta: Tambien tengo la solucion a tu problema de los archivos de texto.
Cualquier duda escribeme
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

RE:Po favor. Cual es el problema?

Publicado por Jack (2 intervenciones) el 30/03/2007 23:44:24
Hola Luis Prieto !!!

Antes de cualquier otra cosa agradecer tu respuesta. Sabes copio el código identico al que tu me envías y me arroja el siguiente error:

Error 91 en tiempo de ejecución,
OBJETO O VARIABLE CON LA VARIABLE DEL BLOQUE NO FIJADA

Y la depuración apunta a la linea de código:

Do While Not Me.Adodc2.Recordset.EOF

¿Que podrá ser Luis? Nuevamente Muchas Gracias.
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

RE:Po favor. Cual es el problema?

Publicado por Luis Prieto (166 intervenciones) el 31/03/2007 00:41:56
Hola, Jack!!

Lo unico que debes hacer es agrega al form untext y en Propiedad Datasource de ese text selecciona adodc1.

Con eso todo listo.

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

RE:Po favor. Cual es el problema?

Publicado por Benjo (679 intervenciones) el 31/03/2007 03:46:42
Jack , en realidad no estás enlazando, sino recorriendo todo el recordset para cargar los ComboBox con diferentes valores de la Tabla.

En primer lugar, no es necesario que limites los ComboBox en el evento Load, en razón que si no están cargados en modo de DIseño, estarán vacios para que los llenes en tiempod e ejecución,
Para este ejemplo que vos mismo pusiste, necesitás en el Form dos ComboBox llamados Combo1 y Combo2, además de un objeto ADODC llamado Adodc2
Además tené en cuenta que el comendo With debe empezar y terminar dentro de un mismo bloque, de lo contrario te provocará errores en la referencia a objetos.

Private Sub Form_Load()
' Combo1.Clear
' Combo2.Clear
Do While Not Adodc2.Recordset.EOF
If Adodc2.Recordset!Des <=199 then
Combo1.AddItem Adodc2.Recordset!Des
else
Combo2.AddItem Adodc2.Recordset!Des
Endif
Adodc2.Recordset.MoveNext
Loop
Combo1.ListIndex = 0
Combo2.ListIndex = 0
End Sub
No es necesario que enlaces ningún objeto.
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