Llenar un txbox con un solo campo de un combobox

Hola a todos aquí voy de nuevo con una pequeña preguntita.
Tengo un combobox que me muestra dos campos de una tabla de la siguiente manera
Private Sub combo1_DropDown()
Set rs = New ADODB.Recordset
ssql = "Select CodCategoria, Categoria From Categorias"
rs.Open ssql, cn
Do Until rs.EOF
Combo1.AddItem rs("CodCategoria") & "- " & rs("Categoria")
rs.MoveNext
Loop
Y quiero lleno un texbox de la sigueinte manera
Private Sub Combo1_Click()
Text7 = Combo1.List(Combo1.ListIndex)
End Sub
El problema es que quiero que el texbox se llene solamente con el CodCategoria y se llena con los dos campos puede alguien ayudarme
De antemano muchísimas gracias.

1 respuesta

Respuesta
1
Lo primero que hay que hacer es encontrar la posición del separador (-), para eso se utiliza la función instr de la siguiente manera
''la posicion del separador
texto = combo1.list(combo1.listindex)
posicion = instr(texto,"-")
''la cadena que contiene el codigo
codigo = mid(texto,1,posicion-1)
de esta manera entonces ya se tiene solamente el codigo de la categoria.
En programación es altamente recomendable utilizar variables representativas de lo que contienen los datos, el programa mencionaba queda más legible si dijera:
Private Sub cmbCategorias_DropDown()
Set rsCategorias = New ADODB.Recordset
ssql = "Select CodCategoria, Categoria From Categorias"
rsCategorias.Open ssql, cn
Do Until rsCategorias.EOF
cmbCategorias.AddItem rsCategorias("CodCategoria") & "- " & rsCategorias("Categoria")
rsCategorias.MoveNext
Loop
Y quiero lleno un texbox de la sigueinte manera
Private Sub cmbCategorias_Click()
txtCodCategoria = cmbCategorias.List(cmbCategorias.ListIndex)
End Sub
Ademas, el proceso de llenar el combo box, no debería de estar en un evento del mismo combo box, porque entonces va a estar ejecutándose a cada rato, lo que está programado en el evento dropdown debiera de estar en el evento Load de la forma.
Julius
-Guatemala-

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas