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

Enlazar un Datacombo con un textBox

Estas en el tema de Enlazar un Datacombo con un textBox en el foro de Visual Basic clásico en Foros del Web. Hola a todo el mundo!!!! Simplemente quiero que al seleccionar un elemento (ej:producto) del datacombo, el cuadro de texto que hay más abajo me muestre ...
  #1 (permalink)  
Antiguo 04/03/2005, 11:33
 
Fecha de Ingreso: febrero-2005
Mensajes: 73
Antigüedad: 19 años, 2 meses
Puntos: 0
Enlazar un Datacombo con un textBox

Hola a todo el mundo!!!!

Simplemente quiero que al seleccionar un elemento (ej:producto) del datacombo, el cuadro de texto que hay más abajo me muestre su precio correspondiente en la tabla acces.

el combo lo he rellenado con un data que llama a la columna nombreProducto de la tabla Productos.

He intentado hacerlo con otro Data con el precio de la misma tabla Productos pero ahí es donde me pierdo pq me salen cosas raras cuando voy probando como que en el combo me aparecen los precios en lugar de los nombres, que a veces me aparece un numero mezclado con los nombres del combo, esto me pasa cuando intento enlazar la columna nombre con la columna precio de la tabla Productos.

No se, estoy perdia...

Gracias por adelantado!!!!!!!
  #2 (permalink)  
Antiguo 04/03/2005, 11:39
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
bueno yo lo tengo algo asi..

Código:
Private Sub Form_Load()
Set Cxn = New Connection
Cxn.CursorLocation = adUseClient
Cxn.Open CxnFac ' Aqui la definicion de la conexion que usas..
Cargar_Clientes
End Sub
Private Sub Cargar_Clientes() 
Dim AdoP As New Recordset
Set AdoP = New Recordset
AdoP.Open "SELECT   `clientes`.`nit_cliente`,  `clientes`.`nombre` FROM   `clientes` WHERE   (`clientes`.`cliente` <> 0)", Cxn, adOpenStatic, adLockOptimistic
Set CboCliente.DataSource = AdoP
Set CboCliente.RowSource = AdoP
CboCliente.BoundColumn = "nit_cliente"
CboCliente.ListField = "nombre"
End Sub

Private Sub CboCliente_Change()
If CboCliente.Text <> "" Then
CboFactura.Text = ""
Clean
Buscar_Facs (CboCliente.BoundText)
End If
End Sub

Function Buscar_Facs(Nit As String)
Dim AdoS As New Recordset
Set AdoS = New Recordset
AdoS.Open "SELECT   `cxc`.`no_factura`,  `cxc`.`nit_cliente`,  `cxc`.`no_ingreso`,  `cxc`.`fecha`,  `cxc`.`total`,  `cxc`.`descripcion`,  `cxc`.`observaciones`,  `cxc`.`cancelado` FROM   `cxc` WHERE   (`cxc`.`cancelado` = 0) AND   (`cxc`.`nit_cliente` = '" & Nit & "') ORDER BY   `cxc`.`fecha`", Cxn, adOpenStatic, adLockOptimistic
Set CboFactura.DataSource = AdoS
Set CboFactura.RowSource = AdoS
CboFactura.BoundColumn = "no_factura"
CboFactura.ListField = "no_factura"
If AdoS.RecordCount > 0 Then
CboFactura.Enabled = True
CmdIrFac.Enabled = True
Else
CboFactura.Enabled = False
CmdIrFac.Enabled = False
End If
End Function
espero te sirva el ejemplo..

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #3 (permalink)  
Antiguo 04/03/2005, 11:54
 
Fecha de Ingreso: febrero-2005
Mensajes: 73
Antigüedad: 19 años, 2 meses
Puntos: 0
Hola GeoAvila!

Te agradezco mucho tu ayuda pero... tengo que confesarte que hace como 2 semanas que empezé a descubris Visual Basic 6 y de código aún estoy muy verde. Habría alguna manera de hacerlo sin escribir código? Y... si no la hay, me podrías dar una pequeña guía del código que me has puesto en tu respuesta?


Te lo agradezco enormemente!
Saludos
  #4 (permalink)  
Antiguo 04/03/2005, 11:57
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
la verdad sin codigo no creo que se pueda hacer, pero estoy pensado seriamente en hacer un manual acerca del tema puesto que hay muchas personas que desean hacerlo.

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #5 (permalink)  
Antiguo 04/03/2005, 13:48
 
Fecha de Ingreso: octubre-2003
Ubicación: Chiclayo - Peru
Mensajes: 25
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola en realidad yo desarrollo con pudo código , te aconsejo que lo aprendas ya que te permite mas flexibilidad y menos consumo de RAM

Te lo voy a explicar mediante un ejemplo

Supongamos que tengo una base de datos llamada Biblioteca y tengo una tabla Autores

Con los siguiente campos
Cod_Autor (codigo del autor)
Nombre (nombre del autor)
Añonaci (Año de nacimiento)

Ahora vayamos a Visual Basic
- Creas un formulario
- Agregas un control ADODC
- agregas un DataCombo

Ahora configuremos en Control ADODC1
Creas la conexión a la base de datos de access con el contro ADODC y como origen de registros específicas que tabla vas a utilizar

Ahora configuremos el Datacombo1

RowSource ADODC1
ListField el campo con que quieres que se llene el combo(Ejm: nombre)
Boundcolumn el cambo que quieres que vote internamente en este caso el codigo del elemento seleccionado en lista (Ejm : Cod_Autor )

Ahora vayamos al codigo

Private Sub DataCombo1_Change()
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.Find "Au_ID='" & DataCombo1.BoundText & "'"
If Not (Adodc1.Recordset.EOF = True) Then
Text1.Text = Adodc1.Recordset("Author")
End If
End Sub

Ten encuenta que tiene que ser en el evento Change del datacombo


Si tienes alguna duda puede escribirme a mi correo
Email : [email protected]
__________________
:cool: J.C.Q.M
  #6 (permalink)  
Antiguo 07/03/2005, 05:31
 
Fecha de Ingreso: febrero-2005
Mensajes: 73
Antigüedad: 19 años, 2 meses
Puntos: 0
Gracias Alcon20 y GeoAvila, me parece una ideal genial lo del manual.
Y a ti Alcon, decirte que no se como crear la conexión a la bd access ni se donde especificar el origen de registros... :(

Lo he intentado pero me ha salido un churro!
Hasta luego!
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 07:03.