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

Obtener codigo al cargar el nombre en un combobox mediante un recordset

Estas en el tema de Obtener codigo al cargar el nombre en un combobox mediante un recordset en el foro de Visual Basic clásico en Foros del Web. En mi tabla tengo 2 campos codcat int(2) y nomcat varchar(250) En el combobox solo necesito mostrar el nomcat y al selecionar un nomcat del ...
  #1 (permalink)  
Antiguo 13/03/2009, 12:51
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Obtener codigo al cargar el nombre en un combobox mediante un recordset

En mi tabla tengo 2 campos codcat int(2) y nomcat varchar(250)
En el combobox solo necesito mostrar el nomcat y al selecionar un nomcat del combo debo obtener el codcat de dicha categoria en un text1

Como hago para recuperar el codigo?, lo que hize fue mostrar el codcat y nomcat en el mismo combo1 y recuperar el codcat mediante la funcion left(combo1.text,2) pero en mi combo siempre se mostrara el codcat que puedo hacer para solo mostrar el nombre en lugar de mostrar el codigo y nombre

Código:
'Cargo el combo
Private Sub Command1_Click()
SQL = "SELECT*FROM categoria ORDER BY nomcat"
Set rsCategoria = dbConex.Execute(SQL)

cbCategoria.Clear
Do Until rsCategoria.EOF
  cbCategoria.AddItem rsCategoria!codcat & " - " & rsCategoria!nomcat
  rsCategoria.MoveNext
Loop
End Sub

Private Sub cbCategoria_LostFocus()
  'Agui recupero el codcat al perder el foco
  Text1 = Left(cbCategoria.Text, 2)

End Sub
Espero me entiendan
  #2 (permalink)  
Antiguo 13/03/2009, 12:53
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: Obtener codigo al cargar el nombre en un combobox mediante un recordset

Si codcat es numérico, puedes usar el ItemData del ComboBox para guardarlo.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 13/03/2009, 13:06
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Obtener codigo al cargar el nombre en un combobox mediante un recordset

Puedes poner un peuqeño ejemplo.
Y si el tipode dato fuera codcat char(2) que se puede hacer
  #4 (permalink)  
Antiguo 13/03/2009, 13:08
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: Obtener codigo al cargar el nombre en un combobox mediante un recordset

Después del AddItem podrías poner esto:
Código vb:
Ver original
  1. cbCategoria.ItemData(cbCategoria.NewIndex) = rsCategoria!codcat
Si no fuera numérico el dato, lo puedes guardar en un Array, o en el Tag del control (separado por un carácter especial)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 13/03/2009, 14:35
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Obtener codigo al cargar el nombre en un combobox mediante un recordset

Gracias tio ya solucione con tu codigo
Para mostrar el contenido del itemdata encontre esto y corre 100%
Text1 = cbCategoria.ItemData(cbCategoria.ListIndex)

Pero hay un problema con el tipo char
Perdona mi ignorancia pero como se utiliza la propiedad tag, encontre un ejemplo para los array pero no logro que me tome el contenido como texto

saludos
  #6 (permalink)  
Antiguo 13/03/2009, 14:49
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: Obtener codigo al cargar el nombre en un combobox mediante un recordset

Con el Array es fácil, mira:
Código vb:
Ver original
  1. 'En las Declaraciones
  2. Private Codigos() As String
En el evento Load de la ventana:
Código vb:
Ver original
  1. ReDim Codigos(0)
Al agregar un elemento haz esto:
Código vb:
Ver original
  1. ReDim Preserve Codigos(UBound(Codigos) + 1)
  2. Codigos(UBound(Codigos)) = rsCategoria!codcat
  3. cbCategoria.ItemData(cbCategoria.NewIndex) = UBound(Codigos)
Luego, para recuperar el valor:
Código vb:
Ver original
  1. Text1 = Codigos(cbCategoria.ItemData(cbCategoria.ListIndex))
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 13/03/2009, 15:19
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Obtener codigo al cargar el nombre en un combobox mediante un recordset

muy bueno

saludos
  #8 (permalink)  
Antiguo 13/03/2009, 23:13
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: Obtener codigo al cargar el nombre en un combobox mediante un recordset

Hola, esto ya se hablo, podes usar el control DataCombo para almacenar el id...y este permite alfanumericos...

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
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 06:09.