Ya hay algunas cosas colgadas en la web así que ya vuelve a estar disponible.
Function fSendKeys(strKey as String)
Dim ws As Object
Set ws = CreateObject("WScript.shell")
ws.SendKeys strKey
Set ws = Nothing
End Function

Cita de: Chea
En realidad las propiedades no se guardan en los formularios, sino en el objeto correspondiente de la colección AllForms. Se usa de la misma manera que haríamos para una propiedad personalizada de la base de datos, pero haciendo referencia a AllForms("miformulario"). Por ejemplo:
Para añadir la propiedad:
CurrentProject.AllForms("frmVisorFacturae").Properties.Add "InterfazFirma", True
Para cambiarle el valor:
CurrentProject.AllForms("frmVisorFacturae").Properties("InterfazFirma") = blnNewValue
Para leer el valor:
UsarInterfazFirma = CurrentProject.AllForms("frmVisorFacturae").Properties("InterfazFirma")
Yo lo que hago para que el manejo final me resulte más sencillo es crearme una pareja de procedimientos Property en el módulo del formulario para leer y escribir esa Propiedad.
Al meterlo en los procedimientos Property el resultado es como si usáramos una variable persistente entre sesiones. Le decimos dentro del formulario InterfazFirma = True y ahí se queda hasta que no lo cambiemos aunque cerremos la aplicación.
Horus pregunta: Tengo una duda. Si lo hacemos así, en realidad la propiedad es del formulario en el que la hayamos agregado, no es común para todos los formularios. ¿Es correcto?
Respuesta:En puridad no es una propiedad del formulario, porque no se encuentra en el propio formulario, sino en el AccessObject correspondiente a ese formulario en la colección AllForms. Sin embargo, como esos objetos contienen información de cada formulario, en cierto modo podríamos decir que es una propiedad del formulario. No podemos decir Forms!Miformulario.Mipropiedad, pero sí podemos decir CurrentProject.AllForms("Miformulario").Mipropiedad. Y, efectivamente, la propiedad es para un formulario concreto, no para todos.
' Asignamos el control
Set ctrl = Screen.ActiveControl
' Desactivamos momentáneamente el control de errores por si alguna propiedad fallara
On Error Resume Next
' Si el contador de controles del control es superior a 0
If ctrl.Controls.Count > 0 Then
' Tomamos el ítem 0 de la colección y accedemos a sus propiedades
Debug.Print "Nombre: " & ctrl.Controls(0).Name
Debug.Print "Caption: " & ctrl.Controls(0).Caption
End If
' Reactivamos el control de errores
On Error GoTo ErrorHandler
| Tabla de versiones | |
| 2007 | 12.0 |
| 2010 | 14.0 |
| 2013 | 15.0 |
| 2016 | 16.0 |