Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Agregar registros a combo

Estas en el tema de Agregar registros a combo en el foro de Visual Basic clásico en Foros del Web. que tal como estan, de nuevo aqui con una consulta, les comento mi problema es que tengo una tabla con un campo llamado codigo, aqui ...
  #1 (permalink)  
Antiguo 25/03/2009, 08:09
 
Fecha de Ingreso: abril-2008
Mensajes: 281
Antigüedad: 16 años, 1 mes
Puntos: 1
De acuerdo Agregar registros a combo

que tal como estan, de nuevo aqui con una consulta, les comento mi problema es que tengo una tabla con un campo llamado codigo, aqui el problema q tengo es q en ese campo tengo varios registros con el numero 1 o con el numero 300, etc, entonces al momento q agrego ese campo a mi combo pues me muetra los 10 codigos 1 o los 3 codigos 4 ya sea el caso, y lo q trato de hacer es q si encuentra 10 codigos 1 o 20 codigos 5 solo me muestre 1 es de cir solo me muestre q tengo codigo 1 o codigo 5 o codigo 10, etc etc......... espero habrme explicado optimamente, de antemano gracias por la ayuda

saludos
  #2 (permalink)  
Antiguo 25/03/2009, 08:14
 
Fecha de Ingreso: enero-2007
Ubicación: Tingo María - Perú
Mensajes: 399
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: Agregar registros a combo

probaste hacerle un distinct a tu consulta?
__________________
Vivir para ser buenos y ser buenos para servir mejor.
  #3 (permalink)  
Antiguo 25/03/2009, 08:28
 
Fecha de Ingreso: abril-2008
Mensajes: 281
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Agregar registros a combo

Cita:
Iniciado por boluart Ver Mensaje
probaste hacerle un distinct a tu consulta?
no la verdad no se como hacerlo ...........

este es el codigo q utilizo para agregar los campos al combo

Código:
Private Sub Agregar_Combo_Codigos()
    Call VisualizarPresupuestos
    If presupuestos.BOF = True Or presupuestos.EOF = True Then
    Exit Sub
    Else
        With presupuestos
            codigo.Clear
            .MoveFirst
        Do Until .EOF
            codigo.AddItem .Fields(3)
            codigo.ItemData(codigo.NewIndex) = .AbsolutePosition
            .MoveNext
        Loop
    End With
    End If
End Sub
Gracias
saludos
  #4 (permalink)  
Antiguo 25/03/2009, 10:02
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Agregar registros a combo

En la consulta SQL:
Código sql:
Ver original
  1. SELECT DISTINCT campo FROM Tabla
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 25/03/2009, 10:48
 
Fecha de Ingreso: abril-2008
Mensajes: 281
Antigüedad: 16 años, 1 mes
Puntos: 1
De acuerdo Respuesta: Agregar registros a combo

Cita:
Iniciado por David el Grande Ver Mensaje
En la consulta SQL:
Código sql:
Ver original
  1. SELECT DISTINCT campo FROM Tabla
gracias por la respuesta, mira ya modifique mi codihgo de esta manrea pero me marca error

3265- no se encontro el elemento en la coleccion que corresponde con el nombre o el ordinal pedido

Código:
Private Sub Agregar_Combo_Codigos()
    Call ConsultaCodigos
    If codigos.BOF = True Or codigos.EOF = True Then
    Exit Sub
    Else
        With codigos
            codigo.Clear
            .MoveFirst
        Do Until .EOF
            codigo.AddItem .Fields(3)----------------------------------> error
            codigo.ItemData(codigo.NewIndex) = .AbsolutePosition
            .MoveNext
        Loop
    End With
    End If
End Sub

Private Sub ConsultaCodigos()
    Dim sql As String, cadena As String, cadena1 As String
    Call VisualizarCodigos
        sql = "SELECT DISTINCT codigo FROM tblcodigo "
    Set codigos = New ADODB.Recordset
        codigos.Open sql, BD, adOpenKeyset, adLockOptimistic
End Sub
no se si haciendo la consulta de esta manera y llamandola en el combo tenga q agregar asi todos los datos o q este haciendo mal .......


saludos y gracias por la ayuda
  #6 (permalink)  
Antiguo 25/03/2009, 11:02
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Agregar registros a combo

Es que en ese caso hay un sólo Field. Por lo que el índice 3 no existe.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 25/03/2009, 11:17
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Agregar registros a combo

En ese caso es mejor usar GROUP BY.

Código sqL:
Ver original
  1. SELECT codigo FROM tblcodigo GROUP BY codigo
  #8 (permalink)  
Antiguo 25/03/2009, 11:22
 
Fecha de Ingreso: abril-2008
Mensajes: 281
Antigüedad: 16 años, 1 mes
Puntos: 1
De acuerdo Respuesta: Agregar registros a combo

Cita:
Iniciado por David el Grande Ver Mensaje
Es que en ese caso hay un sólo Field. Por lo que el índice 3 no existe.
Bueno tengo varios campos en esa tabla y el del codigo es el numero 3, es mas antes de realizar la consulta me funciona es decir no me marca ningun error a escepcion de q vuelvo a mi problema anterio q es q me pone todos los campos es decir todos los 1 o todos los 20 etc, etc



Cita:
Iniciado por Sergestux Ver Mensaje
En ese caso es mejor usar GROUP BY.

Código sqL:
Ver original
  1. SELECT codigo FROM tblcodigo GROUP BY codigo
ya agregue el GROUP BY codigo pero sigue marcandome el mismo error


saludos y gracias por la ayuda
  #9 (permalink)  
Antiguo 25/03/2009, 11:24
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Agregar registros a combo

Es que aunque tengas varios campos en la tabla, en la consulta SQL sólo recuperas un campo, por lo que el resto de campos no estará disponible y te marcará error.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 25/03/2009, 11:32
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Agregar registros a combo

Código sql:
Ver original
  1. SELECT Campo1, Campo2, codigo FROM tblcodigo GROUP BY Campo1, Campo2, codigo
O tambien puedes cambiar el codigo de visual basic a codigo.AddItem.Fields(1) en caso de que solo traigas un campo
  #11 (permalink)  
Antiguo 25/03/2009, 13:28
 
Fecha de Ingreso: febrero-2009
Mensajes: 10
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Agregar registros a combo

El error está en que quizás antes realizabas la consulta seleccionando todos los campos, por eso te aceptaba el field(3), que era la posiciñon de ese campo, pero al realizar la ocnsulta con un distinct campo, sólo abrá 1 campo de salida, por lo que el fields no será igual a 3.
Prueba poniendo el nombre del campo, en vez de la posición

codigo.AddItem codigos!codigo

Saludos
  #12 (permalink)  
Antiguo 25/03/2009, 18:11
 
Fecha de Ingreso: abril-2008
Mensajes: 281
Antigüedad: 16 años, 1 mes
Puntos: 1
De acuerdo Respuesta: Agregar registros a combo

Cita:
Iniciado por David el Grande Ver Mensaje
Es que aunque tengas varios campos en la tabla, en la consulta SQL sólo recuperas un campo, por lo que el resto de campos no estará disponible y te marcará error.

Cita:
Iniciado por the_k Ver Mensaje
El error está en que quizás antes realizabas la consulta seleccionando todos los campos, por eso te aceptaba el field(3), que era la posiciñon de ese campo, pero al realizar la ocnsulta con un distinct campo, sólo abrá 1 campo de salida, por lo que el fields no será igual a 3.
Prueba poniendo el nombre del campo, en vez de la posición

codigo.AddItem codigos!codigo

Saludos

Muchas gracias por la ayuda, bueno primero David gracias por orientarme q a tenia q hacer una consulta con el Distinct, y The_k gracias efectivamente lo q me faltaba era poner el nombre del campo y ya me fucniono perfectamente bien y solo me muestra 1 registro de cada uno............ problema resuleto

saludos y gracias de nuevo por la ayuda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:05.