Visual Basic - Posicionar un datacombo en un valor

Life is soft - evento anual de software empresarial
 
Vista:

Posicionar un datacombo en un valor

Publicado por Cristian (1 intervención) el 16/10/2006 22:55:00
Hola, tengo un formulario con varios datacombo y necesito que al seleccionar un item en el primer datacombo, los otros se posicionenen el mismo item que el primero.
Los tres datacombo estan cargados con los mismo datos, esto es para rellenar un formulario que posee tres campos en donde pueden tener los mismos datos.
Les agradeceria mucho una respuesta, es que estoy realizando mi tesis para Analista de Sistemas"
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Posicionar un datacombo en un valor

Publicado por GATUNOS (3 intervenciones) el 25/10/2006 02:17:05
USA LO SIGUIENTE:
EN ELPRIMERO

valor="select * from tabla1"
Set rscombo = New ADODB.Recordset
Dim SQLC As String
SQLC = valor
rscombo.Open SQLC, conn, adOpenDynamic, adLockOptimistic

With cbo
Set .RowSource = rscombo
.BoundColumn = bcol
.ListField = lfila
.DataField = bcol
Set .DataSource = rscombo
End With

en el segundo

valor="select * from tabla2 where cod1=combo1.bountex"

Set rscombo = New ADODB.Recordset
Dim SQLC As String
SQLC = valor
rscombo.Open SQLC, conn, adOpenDynamic, adLockOptimistic

With cbo
Set .RowSource = rscombo
.BoundColumn = bcol
.ListField = lfila
.DataField = bcol
Set .DataSource = rscombo
End With
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Posicionar un datacombo en un valor

Publicado por Juan (1 intervención) el 02/11/2006 18:25:14
Bueno te cuento como lo he resuelto yo despues de mirar en el foro.
Aclarar que estoy utilizando VB6 y MySQL.

Lo hago como sigue;

Dim StrRst As String
' Crear los objetos Conexion a la Base de DATOS.
Set DBConex = New adodb.Connection
Set RstSeleccion = New adodb.Recordset

'Utilizo variables publicas para los parametros de la conexion .
'Abrimos la conexion a la base de datos.
DBConex.Open "DRIVER=" & PrmDBCon.Driver & ";" & _
"SERVER=" & PrmDBCon.Server & ";" & _
"DATABASE=" & PrmDBCon.DataBase & ";" & _
"UID=" & PrmValidacion.UsrName & ";" & _
"PWD=" & PrmValidacion.UsrPwd & ";" & _
"OPTION=" & PrmDBCon.Options

'Asignamos parametros al recordset de Seleccion.
RstSeleccion.CursorLocation = adUseClient
RstSeleccion.CursorType = adOpenDynamic
RstSeleccion.LockType = adLockOptimistic
StrRst = "SELECT IdOperario," & _
"concat(Nombre,' ' ,Apellido1,' ',Apellido2) as NombreCompleto," & _
"DNI " & _
"FROM TblOperario;"

'Abrimos el recordset de SELECCION.
RstSeleccion.Open StrRst, DBConex

'Cargamos los DataCombo de SELECCION con los parametros.
Set SelecOper(0).RowSource = RstSeleccion
SelecOper(0).ListField = "IdOperario"
SelecOper(0).BoundColumn = "IdOperario"
SelecOper(0) = RstSeleccion.Fields("Idoperario")

Set SelecOper(1).RowSource = RstSeleccion
SelecOper(1).ListField = "NombreCompleto"
SelecOper(1).BoundColumn = "IdOperario"
SelecOper(1) = RstSeleccion.Fields("NombreCompleto")

Set SelecOper(2).RowSource = RstSeleccion
SelecOper(2).ListField = "DNI"
SelecOper(2).BoundColumn = "IdOperario"
SelecOper(2) = RstSeleccion.Fields("DNI")

Como puedes observar los DataCombo los he creado en una matriz para simplificar codigo. Tambien puedes observar que la 'BoundColumn' es la misma para los tres de esta manera podremos posicionarlos correctamente.

Para que al seleccionar un valor cambien los otros al registro o valor del seleccionado lo he realizado en el evento 'click'

Private Sub SelecOper_Click(Index As Integer, Area As Integer)
Select Case Index
Case 0
SelecOper(1).BoundText = SelecOper(0).BoundText
SelecOper(2).BoundText = SelecOper(0).BoundText
Case 1
SelecOper(0).BoundText = SelecOper(1).BoundText
SelecOper(2).BoundText = SelecOper(1).BoundText
Case 2
SelecOper(0).BoundText = SelecOper(2).BoundText
SelecOper(1).BoundText = SelecOper(2).BoundText
End Select
End Sub

Como se trata de una matriz de DataCombo, el valor de 'Index' nos dice que DataCombo es el seleccionado, con lo que cambiamos solo los otros 2, asignandole el valor al 'BoundText'.

Espero ta haya servido de ayuda.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar