Autor
|
Tema: ByRef a Objecto ListBox (Leído 5,136 veces)
|
Shell Root
|
Tengo este simple código sólo que ahora me la paso más en C# y no recuerdo bien como es en VB. Tengo una función donde realizo una petición a la base de datos en SQL Server, esta ahi excelente. Pero necesito que desde esa misma función lo cargue a un ListBox, tengo lo siguiente: Public Sub LoadHours(txtFecha As String, txtTarjeta As String, ByRef Lsb As ListBox) ' [SNIP] Do While Not Rs.EOF And Not Rs.BOF Lsb.AddItem Rs.Fields(0).Value ' Sí lo muestro en un MsgBox se ve correctamente los datos de la DB Rs.MoveNext Loop ' [SNIP] End Sub
Se supone que al pasarlo como ByRef me tomaría el objecto del formulario e ingresaría los valores de la función dentro del ListBox. Call LoadHours(Me.txtFecha.Text, Me.txtTarjeta.Text, Me.lsbHoras)
El caso es que me dice: No coinciden los tipos.
|
|
« Última modificación: 3 Junio 2015, 15:35 pm por Shell Root »
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
probablemente deberías pasar como cadena los valores que quieres agregar al listbox lsb.additem str(etc)
|
|
|
En línea
|
|
|
|
Shell Root
|
No creo ya que realizo la prueba basica y no me funciona, por ejemplo: Do While Not Rs.EOF And Not Rs.BOF 'Lsb.AddItem Rs.Fields(0).Value Lsb.AddItem "1" Rs.MoveNext Loop
A lo que me refiero es que funciona todo correctamente, menos cuando paso or ByRef el objecto ListBox.
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
y si en vez de byref los pasas como byval, aclaro que puedo estar re equivocado hace años que no uso vb
|
|
|
En línea
|
|
|
|
pkj
Desconectado
Mensajes: 59
|
Es muy raro. Seguro que es un ListBox? Yo acabo de probar esto: En el Form1 tengo este command Private Sub Command1_Click() Form2.PRUEBA Me.List1 End Sub
y en el Form2 tengo esto Public Sub PRUEBA(ByRef LSB As ListBox) LSB.AddItem 22332 LSB.AddItem "Prueba" End Sub
Y el listbox recibe las dos líneas sin problemas. Prueba a convertirlo en cadena: Lsb.AddItem cStr(Rs.Fields(0).Value)
Suerte y si en vez de byref los pasas como byval, aclaro que puedo estar re equivocado hace años que no uso vb
Si lo pasas ByVal los cambios no afectan al ListBox original. Saludos
|
|
« Última modificación: 3 Junio 2015, 17:39 pm por pkj »
|
En línea
|
|
|
|
Shell Root
|
Re-Seguro que si es un Listbox el objecto del formulario y tambien la variable del ByRef!
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
pkj
Desconectado
Mensajes: 59
|
Prueba con cStr() Prueba quitando el ByRef, ya que si no pones nada es ByRef (yo por eso siempre pongo byval a casi todo) Prueba cambiando la declaracion en lugar de declararlo como ListBox hazlo como Variant o como Object (como Variant no se si lo pillara) Si se me ocurre algo mas ya te aviso Suerte
|
|
|
En línea
|
|
|
|
Shell Root
|
Realmente es una M13RDA, ya funciona perfectamente. Así, Public Sub LoadHours(txtFecha As String, txtTarjeta As String, ByRef Lsb As Object)
Gracias!
|
|
« Última modificación: 3 Junio 2015, 18:11 pm por Shell Root »
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
pkj
Desconectado
Mensajes: 59
|
Hay que echarle imaginacion y no darse por vencido
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
Tengo este simple código sólo que ahora me la paso más en C# y no recuerdo bien como es en VB. Tengo una función donde realizo una petición a la base de datos en SQL Server, esta ahi excelente. Pero necesito que desde esa misma función lo cargue a un ListBox, tengo lo siguiente: Public Sub LoadHours(txtFecha As String, txtTarjeta As String, ByRef Lsb As ListBox) ' [SNIP] Do While Not Rs.EOF And Not Rs.BOF Lsb.AddItem Rs.Fields(0).Value ' Sí lo muestro en un MsgBox se ve correctamente los datos de la DB Rs.MoveNext Loop ' [SNIP] End Sub
Se supone que al pasarlo como ByRef me tomaría el objecto del formulario e ingresaría los valores de la función dentro del ListBox. Call LoadHours(Me.txtFecha.Text, Me.txtTarjeta.Text, Me.lsbHoras)
El caso es que me dice: No coinciden los tipos. Debes usar las interfaces en lugar de las clases asi puedes usar ByVal sin problemas... por ejemplo en JAVA (Que es el que me da de comer actualmente) yo uso List para cualquier clase que herede de esta y no tengo problemas... Si no mal recuerdo en .Net es List... Ducles Lunas!¡.
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
como meter un listbox en una tabla de listbox
.NET (C#, VB.NET, ASP)
|
CrÄsH
|
3
|
6,535
|
16 Enero 2009, 15:53 pm
por MANULOMM
|
|
|
ByVal y ByRef
Programación Visual Basic
|
NaK-32
|
5
|
4,323
|
27 Febrero 2011, 00:56 am
por NaK-32
|
|
|
problemas con byref!
Programación Visual Basic
|
x64core
|
2
|
1,650
|
3 Agosto 2011, 19:10 pm
por x64core
|
|
|
Pasar listbox a textbox al hacer click en un valor del listbox
.NET (C#, VB.NET, ASP)
|
BrokerJoker
|
3
|
23,973
|
13 Mayo 2012, 17:13 pm
por BrokerJoker
|
|
|
guardar objecto en fichero
« 1 2 »
Java
|
betikano
|
13
|
7,186
|
24 Mayo 2014, 18:48 pm
por betikano
|
|