Autor Tema: Enumerar los controles de un formulario situado en otra base de datos  (Leído 401 veces)

Desconectado xavi

  • Administrador
  • Habitual
  • *****
  • Mensajes: 184
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?

Código: [Seleccionar]
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

Código: [Seleccionar]
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