Problema Ccon VB y Access y COMBOBOX

soledad
12 de Enero del 2005
Hola, Estoy trabajando con VB6.0 usando una BD de acces y le e unido usando un ADOC (no se mucho de esto); quiero utilizar un comboBox cara rellenar cierta informacion que ya tengo introducida en otra tabla es decir que me de la posibilidad de escojer de los que ya tengo; Puedo hacer esto? por fa decirme como hacer ya que e estado intentado pero no lo consigo

krizall
12 de Enero del 2005
mira, parece que tu quieres llenar el combo con los datos de una columna de tu base de datos
bueno, y me parece que en el recordsource de tu adodc tienes el nombre de la tabla
si es asi
por ejemplo en un command
adodc1.recordset.movelast
adodc1.recordset.movefirst
for i=1 to adodc1.recordset.recordcount
combo1.additem adodc1.recordset.nombredel campo
adodc1.recordset.movenext
next i

ahora podrias hacer algo diferente para no utilizar el adodc(control) solo codigo asi:

primero
en el menu proyecto-referencias..
seleccionas
microsoft active x data objects 2.1(la version varia de acuerdo al service pack que tengas)
en un modulo
+++++++++++++++++++++
option explicit
dim Cn as adodb.connection
public Rs as adodb.recordset

public sub Conectar(byval Ruta as string)
set cn=new adodb.connection
cn.conectionstring="provider=microsoft.jet.oledb.4.0;datasource=" & ruta & ";persist security info=false"
cn.open
end sub

public sub Consultarrs(byval sql as string)
rs.?? no recuerdo que propiedad
rs.??
rs.open sql,cn,(modo de apertura),(modo de apertura)
''' modo de apertura=una constante que te muestra el codigo.. (autocompleta) en este momento no recuerdo los nombres...
end sub

public sub Cerrar()
if rs.state=1 then
rs.close
rs=nothing
end if
if cn.state=1 then
cn.close
cn=nothing
end if
end sub

en el formulario

dim s as string
s=app.path & "base.mdb" o donde se encuente tu bd
conectar(s)
consultarrs("select campo1 from tabla1")
while not rs.eof
combo1.additem rs!campo1
rs.movenext
wend
cerrar

y listo este procedimiento lo puedes utilizar desde cualquir formulario... discupla eso de ?? lo que para es que no recuerdo las propiedades..
espero te sirva

nicop
12 de Enero del 2005
lo que preguntaste vos

with adodc1.recordset
do while not .eof
combo1.additem adodc1.recordset.fields ("registro que quieras poner")
.move next
loop
end with
chaus saludos, cualquier duda al mail

Bartolom
12 de Enero del 2005
Mucho más simple que lo anterior. Utiliza un Datacombo (se obtiene del menú Proyecto, Componentes, Micorsoft DataList Controls 6.0). La gracia del DataCombo es que nos permite acceder a dos tablas distintas y vincular datos de la primera tabla a un campo de la segunda. Las propiedades que necesitas configurar (en tiempo de diseño o ejecución) son las siguientes:

Rowsource: Es el control de datos ADO a partir del cuál se rellenará la lista ( o sea el control ADO relacionado a la tabla de donde quieres obtener los datos)

ListField: Es el campo o columna de la tabla de la cuál quieres obtener datos para rellenar la lista.

Datasource: Es el control ADO del receptor de los datos, o sea donde se escribirán los datos que has elegido en las propiedades anteriores.

Datafield: Es el nombre del campo al que será enlazado el receptor de datos.

Boundcolumn: Es el nombre del campo de origen de un objeto recordset que será pasado a otro recordset destino de los datos. Llweva el mismo nombre que el campo DataField.

Sin necesidad de programación engorrosa este control te sirve exactamente para lo que necesitas. Además que siempre se actualizará automáticamente de acuerdo a los valores que existan en el campo usado en ListField.


Saludos!
Bartolom
Chile