Noticias:

Ya hay algunas cosas colgadas en la web así que ya vuelve a estar disponible.

Menú Principal

Enumerar los controles de un formulario situado en otra base de datos

Iniciado por xavi, Abril 20, 2012, 08:04:32 PM

Tema anterior - Siguiente tema

xavi

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