a ver si he entendido, tienes varios combos, y los llenas con los datos de la base de datos.
pero resulta que el codigo para llenar los combos es el mismo (o parecido) y debes repetirlo cada vez que inicialices un combo.
Ese tambien era mi problema y lo solucione asi:
en un modulo creas una fncion publica:
'-------------------------------
Public Function BDIniCombo(Cmbx As ComboBox, reg As Recordset, _
posCampoCod As Integer, posCampoDescripcion As Integer)
If (reg.EOF = True And reg.BOF = True) Then
___Cmbx.Clear
Else
___reg.MoveFirst
___Cmbx.Clear
___For i = 0 To reg.RecordCount - 1
______Cmbx.List(i) = reg.Fields(posCampoDescripcion)
______Cmbx.ItemData(i) = reg.Fields(posCampoCod)
______If reg.EOF Then
_________reg.MoveLast
______Else
_________reg.MoveNext
______End If
___Next i
End If
reg.Close
End Function
'------------------------
donde:
posCampoCod = posicion del campo de tu tabla (empezando desde cero) que lleva el codigoID (o si solo son datos sin ID entonces obvias este parametro y la linea donde lo llamas)
posCampoDescripcion = posicion del campo de tu tabla (empezando desde cero) que aparecera en tu combobox
digamos que tu tabla es Articulo
con los campos Codigo, Unidad, Grupo, Descripcion
entonces quieres que en el combo te aparezca una lista de los articulos (es decir el campo descripcion) entonces llamas a la funcion de esta forma:
call BDIniCombo(Mi_ComboBox, Mi_Recordset_de_Articulo, 0, 3)
0, porque Codigo esta en la primera posicion en la tabla
3, porque Descripcion esta en esa poscion en la tabla
y asi cada vez que quieras iniciar o actualizar los datos de un combo solo llamas esa linea de codigo sin tener que escribir la funcion muchas veces.para iniciar los combos
espero sea a lo que te referias
Salud!