Creacion dinamica en vb6

Me ayudaste a crear dinámicamente los optionbutton y va fenómeno. Los obtengo de una base de datos. Mi problema que al intentar poner la popiedad name, me dice que no se puede poner en forma solo lectura. ¿Abrí mal la base de datos?.
Mi otro problema, yo almaceno el nombre en una variable string, ejemplo pepe que almacena fuengirola por ejemplo.
Si pongo pepe.value=true me pondra fuengirola.value a true?? Si no como lo hago?
Te pongo el código que tengo, es un desastre pero estoy aprendiendo. Muchas gracias
'En esta linea abro la base de datos
Dim datos As Database
Dim tabla As Recordset
'datos abre la base de datos control stock
'tabla abrira la tabla que queramos
Set datos = OpenDatabase("c:\archivos de programa\stock\controlstock.mdb")
Set tabla = datos.OpenRecordset("tiendas", dbOpenTable)
'A partir de aqui creo las etiquetas
Dim r As OptionButton
Dim nombre, codigo, j As String
Dim contador As Integer
contador = 0
Dim a, b As Integer
a = 0
b = 0
Dim i As Integer
tabla.MoveFirst
i = 4
' cuento el numero de registros
'While i <> 0
' contador = contador + 1
' tabla.MoveNext
' If tabla.EOF Then i = 0
'Wend
While i <> 0
j = ""
j = "T"
Text1.Text = ""
Text1.Text = tabla.Fields("cod_tienda")
j = j + Text1.Text
nombre = " "
nombre = j
Set r = Me.Controls.Add("vb.optionbutton", nombre)
With r
.Caption = j
.Name = j
.Top = 1000 + a
.Left = 100 + b
.Visible = True
.Width = 1000
End With
a = a + 350
If a > 9700 Then
a = 0
b = b + 1000
End If
tabla.MoveNext
If tabla.EOF Then i = 0
Wend

1 Respuesta

Respuesta
1
El error lo tienes en la parte que dice:
.Name = j
Esto pasa porque el nombre del control ya se lo estarías dando en esta parte del código:
Set r = Me.Controls.Add("vb.optionbutton", nombre)  ' Este es el codigo que se encarga de darle el nombre al control.
Y tu código no esta mal si estas recién aprendiendo así que no te preocupes igualmente acá estamos para ayudar.
Cualquier duda me la haces saber.
Bye.
Estuendo, no me di cuenta que asignaba dos veces el nombre. Igualmente sigo teniendo el problema al llamarlo. Me hice en ese formulario un botón que cuando lo pulsara me pusiera algún opptionbutton con la propiedad value a true. Como el nombre que le he dado a los botones son T y un numero, por ejemplo T501 pues puse en el botón una variable que almacenaba el nombre. variable=T501 y luego quise poner variable. value=true. Pero no funciona. ¿Cómo puedo buscar el optionbutton y cambiarle una propiedad o comprobarla? Te dejo el código del botón para ver si así queda más claro lo que pregunto, y muchísimas gracias de nuevo ^^
Dim datos As Database
Dim tablaa, tablab, tablac As Recordset
Dim j, nombre As String
'datos abre la base de datos control stock
'tabla abrira la tabla que queramos
Set datos = OpenDatabase("c:\archivos de programa\stock\controlstock.mdb")
Set tablaa = datos.OpenRecordset("pedido", dbOpenTable)
Set tablab = datos.OpenRecordset("linea_pedido", dbOpenTable)
Set tablac = datos.OpenRecordset("tiendas", dbOpenTable)
tablac.MoveFirst
'busco el nombre
'While i <> 0
j = ""
j = "T"
Text1.Text = ""
Text1.Text = tablac.Fields("cod_tienda") ' aqui le asigno al texto el codigo de tienda que formara parte del nombre
j = j + Text1.Text
nombre = " "
nombre = j ' aqui el nombre ya empieza por T y le sigue un numerito
nombre.Value = True
'If tablac.EOF Then i = 0
'Wend
' esto ultimo lo hago para ver si puedo manipular los optionbutton pero no puedo
'if nombre.Value = True Then Text2.Text = "hola"
Else: Text2.Text = "adios"
Para poder utilizar sus propiedades debes colocar lo siguiente:
Por ejemplo:
Me.Controls(nombre).Value = True
Se suponde que le dimos el nombre del control del cual quieres utilizar su propiedad.
Espero te sirva
Cualquier duda me dices.
Bye.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas