Palabras clave: enumerar, recorrer, controles, bdd, externa
Autor: Búho
Extraído de: La web del Búho
Pregunta Emilio
Llevo un par de horas tratando de enumerar los controles de un formulario de una base de datos externa y no lo consigo, encuentro los formularios pero al llegar a los controles se produce el error 438: "El objeto no admite esta propiedad o Metodo" el caso es que no creo estar haciendo nada raro y la sintaxis parece correcta.
Esta es la rutina, ¿alguna idea?
Private Sub cmdEjecutar_Click()
Dim strArchivo As String, _
accessApp As Object, _
frmFormulario As Object, _
ctlControl As Object
On Error GoTo cmdEjecutar_Click_TratamientoErrores
Set accessApp = CreateObject("Access.Application")
strArchivo = "C:\bd1XP.mdb"
accessApp.OpenCurrentDatabase (strArchivo)
For Each frmFormulario In accessApp.CurrentProject.AllForms
Debug.Print frmFormulario.Name
For Each ctlControl In frmFormulario.Controls
Debug.Print ctlControl.Name
Next
Next
cmdEjecutar_Click_Salir:
On Error GoTo 0
accessApp.Quit
Set accessApp = Nothing
Set dbs = Nothing
Exit Sub
cmdEjecutar_Click_TratamientoErrores:
MsgBox "Error " & Err.Number & " en proc.: cmdEjecutar_Click de
Documento VBA: Form_Formulario1 (" & Err.Description & ")"
GoTo cmdEjecutar_Click_Salir
End Sub
Responde el Búho
For Each frmFormulario In accessApp.CurrentProject.AllForms
Debug.Print frmFormulario.Name
accessApp.DoCmd.OpenForm frmFormulario.Name, acDesign
For Each ctlControl In accessApp.Forms( _
frmFormulario.Name).Controls
Debug.Print ctlControl.Name
Next
accessApp.DoCmd.Close acForm, frmFormulario.Name
Next