Передача аргументов в VBA с помощью DoCmd.OpenArgs: подробное руководство с примерами кода

Фраза «docmd openargs», похоже, написана в синтаксисе VBA (Visual Basic для приложений) Microsoft Access. В VBA DoCmd.OpenArgs — это метод, используемый для передачи аргументов между формами или модулями.

Поскольку вы запросили статью в блоге, я предоставлю вам подробное руководство по передаче аргументов в VBA с использованием «DoCmd.OpenArgs». Ниже приведены несколько методов с примерами кода, демонстрирующими различные способы использования этого метода.

Метод 1: передача строкового аргумента

' Sending form
Private Sub btnOpenForm_Click()
    DoCmd.OpenForm "Form2", OpenArgs:="Hello, World!"
End Sub
' Receiving form (Form2)
Private Sub Form_Load()
    If Not IsNull(Me.OpenArgs) Then
        MsgBox Me.OpenArgs
    End If
End Sub

Метод 2: передача нескольких аргументов

' Sending form
Private Sub btnOpenForm_Click()
    Dim args(2) As Variant
    args(0) = "John"
    args(1) = 25
    args(2) = #01/01/1990#

    DoCmd.OpenForm "Form2", OpenArgs:=args
End Sub
' Receiving form (Form2)
Private Sub Form_Load()
    Dim args() As Variant
    args = Me.OpenArgs

    Dim name As String
    Dim age As Integer
    Dim dob As Date

    name = args(0)
    age = args(1)
    dob = args(2)

    MsgBox "Name: " & name & vbCrLf & "Age: " & age & vbCrLf & "DOB: " & dob
End Sub

Метод 3: передача ссылок на объекты

' Sending form
Private Sub btnOpenForm_Click()
    Dim obj As New MyClass
    Set obj.FormRef = Forms("Form2")

    DoCmd.OpenForm "Form2", OpenArgs:=obj
End Sub
' Receiving form (Form2)
Private Sub Form_Load()
    Dim obj As MyClass
    Set obj = Me.OpenArgs

    MsgBox obj.FormRef.Name
End Sub
' MyClass module
Public Class MyClass
    Public FormRef As Form
End Class

Метод 4: передача перечислимых значений

' Sending form
Private Sub btnOpenForm_Click()
    DoCmd.OpenForm "Form2", OpenArgs:=Color.Red
End Sub
' Receiving form (Form2)
Private Sub Form_Load()
    Dim color As Color
    color = Me.OpenArgs

    Select Case color
        Case Color.Red
            Me.BackColor = RGB(255, 0, 0)
        Case Color.Green
            Me.BackColor = RGB(0, 255, 0)
        Case Color.Blue
            Me.BackColor = RGB(0, 0, 255)
    End Select
End Sub
' Standard module
Public Enum Color
    Red
    Green
    Blue
End Enum

Это всего лишь несколько примеров, иллюстрирующих универсальность передачи аргументов с использованием «DoCmd.OpenArgs» в VBA. Вы можете адаптировать эти методы в соответствии со своими потребностями.

Не забудьте выбрать теги, соответствующие содержанию статьи в блоге, и убедитесь, что заголовок точно отражает содержание.