Problema con formulario abierto en ejecución
Estoy intentando hacer un programa en Ms access y tengo un problema. Creo un formulario en tiempo de ejecución (set frm=CreateForm) y creo para el un control de lista (le llamo ctlText), pero cuando intento referirme a una propiedad de el no me deja. He hecho lo que pone en la Ayuda de Visual Basic Access (ctlText. Caption="hola", por ejemplo), pero me da el error 2467 en tiempo de ejecución. ¿Hay alguna manera de solucionar esto?. Te incluyo el código:
Private Sub cmdHelp_Click()
Dim frm As Form
Dim NOMBRE As Integer
Dim ctlLabel As Control, ctlText As Control
Dim intDataX As Integer, intDataY As Integer
Dim intLabelX As Integer, intLabelY As Integer
' Crea un formulario nuevo con la tabla Pedidos como origen de registros.
Set frm = CreateForm
With frm
.Caption = "suso"
.NavigationButtons = False
.RecordSelectors = False
.Width = 4360
.Visible = True
'.DefaultView = 0
.AllowDesignChanges = False
.AllowEdits = False
'.PopUp = True
.DividingLines = False
End With
' Establece los valores de posición para los nuevos controles.
intLabelX = 100
intLabelY = 100
intDataX = 1000
intDataY = 100
' Crea un cuadro de texto independiente de tamaño predeterminado en la sección de detalle.
Set ctlText = CreateControl(frm.Name, acListBox, , "", "CONSULTA A ELIMINAR", _
IntDataX, intDataY, 2500, 4000)
' Crea un control de etiqueta secundario para el cuadro de texto.
Set ctlLabel = CreateControl(frm.Name, acLabel, , _
CtlText. Name, "NuevaEtiqueta", intLabelX, intLabelY)
' Restaura el formulario.
DoCmd. OpenForm frm. Name
For NOMBRE = 1 To 7000
Next
ctlText.RowSourceType = "value list"
ctlText.RowSource = "nada"
DoCmd.Restore
End Sub
Private Sub cmdHelp_Click()
Dim frm As Form
Dim NOMBRE As Integer
Dim ctlLabel As Control, ctlText As Control
Dim intDataX As Integer, intDataY As Integer
Dim intLabelX As Integer, intLabelY As Integer
' Crea un formulario nuevo con la tabla Pedidos como origen de registros.
Set frm = CreateForm
With frm
.Caption = "suso"
.NavigationButtons = False
.RecordSelectors = False
.Width = 4360
.Visible = True
'.DefaultView = 0
.AllowDesignChanges = False
.AllowEdits = False
'.PopUp = True
.DividingLines = False
End With
' Establece los valores de posición para los nuevos controles.
intLabelX = 100
intLabelY = 100
intDataX = 1000
intDataY = 100
' Crea un cuadro de texto independiente de tamaño predeterminado en la sección de detalle.
Set ctlText = CreateControl(frm.Name, acListBox, , "", "CONSULTA A ELIMINAR", _
IntDataX, intDataY, 2500, 4000)
' Crea un control de etiqueta secundario para el cuadro de texto.
Set ctlLabel = CreateControl(frm.Name, acLabel, , _
CtlText. Name, "NuevaEtiqueta", intLabelX, intLabelY)
' Restaura el formulario.
DoCmd. OpenForm frm. Name
For NOMBRE = 1 To 7000
Next
ctlText.RowSourceType = "value list"
ctlText.RowSource = "nada"
DoCmd.Restore
End Sub
1 Respuesta
Respuesta de query
1