Se aplica a
Objeto Form |
Objeto Report |
Determina la expresión de cadena especificada por el argumento OpenArgs del método OpenForm que abrió un formulario. Valor Variant de lectura y escritura.
expresión.OpenArgs
expresión Requerido. Una expresión que devuelve uno de los objetos de la lista Se aplica a.
Observaciones
Esta propiedad está disponible únicamente mediante una macro o código de Visual Basic para Aplicaciones (VBA) con el método OpenForm del objeto DoCmd. El valor de esta propiedad es de solo lectura en todas las vistas.
Para usar la propiedad OpenArgs, abra un formulario mediante el método OpenForm del objeto DoCmd y establezca el argumento OpenArgs en la expresión de cadena que quiera. Después, se puede usar el valor de la propiedad OpenArgs en código para el formulario (por ejemplo, en un procedimiento de evento Open). También puede hacer referencia al valor de la propiedad en una macro (como una macro Open) o una expresión, como una expresión que establece la propiedad ControlSource para un control del formulario.
Por ejemplo, supongamos que el formulario abierto es una lista de formulario continuo de clientes. Si quiere que el foco se desplace a un registro específico de cliente cuando se abra el formulario, puede establecer la propiedad OpenArgs en el nombre del cliente y, después, usar la acción FindRecord en una macro Open para mover el foco al registro del cliente con el nombre especificado.
Ejemplo
En el siguiente ejemplo se usa la propiedad OpenArgs para abrir el formulario Empleados por un registro de empleado específico y se muestra cómo establece el método OpenForm la propiedad OpenArgs. Puede ejecutar este procedimiento según corresponda, por ejemplo, cuando se produce el evento AfterUpdate para un cuadro de diálogo personalizado que se usa para escribir información nueva sobre un empleado.
Sub OpenToCallahan()
DoCmd.OpenForm "Employees", acNormal, , , _ acReadOnly, , "Callahan" End Sub Sub Form_Open(Cancel As Integer) Dim strEmployeeName As String ' If OpenArgs property contains employee name, find ' corresponding employee record and display it on ' form. For example,if the OpenArgs property ' contains "Callahan", move to first "Callahan" ' record. strEmployeeName = Forms!Employees.OpenArgs If Len(strEmployeeName) > 0 Then DoCmd.GoToControl "LastName" DoCmd.FindRecord strEmployeeName, , True, , _ True, , True End If End Sub
En el ejemplo siguiente se usa el método FindFirst para localizar el empleado especificado en la propiedad OpenArgs.
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then Dim strEmployeeName As String strEmployeeName = Me.OpenArgs Dim RS As DAO.Recordset Set RS = Me.RecordsetClone RS.FindFirst "LastName = '" & _ strEmployeeName & "'" If Not RS.NoMatch Then Me.Bookmark = RS.Bookmark End If End If End Sub