Te voy a dar dos ejemplos hechos en DAO pero aplican en las otras tecnologias de acceso a datos..
General
Option Explicit
Dim StrCod_Articulo as String 'Si el codigo es string
Cargar el combo:
Private Sub Form_Load()
CargarCombo
end sub
Sub CargarCombo
Dim StrDesc_Articulo as String
SqlSELECTQry = "SELECT Cod_Articulo, Descripcion_Articulo FROM Articulos"
Set Rst = db.OpenRecordset(SqlSELECTQry)
With Rst
While Not .EOF
if isNull(!desc_Articulo)
StrDesc_Articulo = ""
else
StrDesc_Articulo = !Descripcion_Articulo
end if
Cmb_Articulo.AddItem !Cod_Articulo & " " & StrDesc_Articulo
.MoveNext
Wend
Rst.Close 'Nunca olvide cerrar Los Rst, Pueden traer problemas
'no interceptables
End With
CmbNombA.Text = CmArticulo.List(0) 'elemento 0 de las lista.
End Sub
Public Sub CmArticulo_Click() 'evento click del combo
S_SelectCod_Uo
end sub
Public Sub CmArticulo_Click() 'evento Changue del combo
S_SelectCod_Uo
end sub
Sub S_SelectCod_Uo()
StrCod_articulo = CmbArticulo.text
StrCod_articulo = (Trim(Mid(StrCod_articulo, 1, 7))) 'aqui supongo que el tamaño
'campo en la base de datos es 7 y como solo te interesa el codigo entoces lee los 7 caracteres y eliminas los espacios restantes con trim. Sigo:
CmbArticulo.Clear 'borras el contenido del combo
CmArticulo.AddItem = StrCod_articulo 'le agregas al combo solo el dato
'que selecciona el usuario..
end sub
Private Sub Cualquier_Proceso() 'al final de procesar el dato:
Cmb_Articulo.Clear 'borras el contenido del combo
CargarCombo 'y lo vuelves a cargar
end sub
Saludos y discupa los si encuentras errores, esta hecho al vuelo...
Carlos Rey