【问题标题】:VBA return methods in Access [duplicate]Access中的VBA返回方法[重复]
【发布时间】:2020-05-12 22:18:27
【问题描述】:

我不确定如何实现在 vba 中返回字符串的方法。例如,在 c# 中,我可以调用类似的方法;

public string ReturnString()
{
    return "Hi";
}

但是,如果我想在 VBA 中调用同样返回字符串的代码,我该如何实现呢?例如,如果我希望我的 onclick 事件返回一串电子邮件;

Public Function EmailAll() As String
    Dim employeeSQL As String
    Dim employeeRS As DAO.Recordset

    'Define SQL to loop
    employeeSQL = "SELECT * FROM Employees"
    Set employeeRS = CurrentDb.OpenRecordset(employeeSQL)

    If Not employeeRS.BOF And Not employeeRS.EOF Then
        employeeRS.MoveFirst
        While (Not employeeRS.EOF)
            If Nz(employeeRS.Fields("email"), "") <> "" Then
                'Fields to return
                EmailAll = EmailAll & email & ";"
            End If
            employeeRS.MoveNext
        Wend
    End If

    employeeRS.Close
    Set employeeRS = Nothing
End Function

【问题讨论】:

  • 抛开事件不返回任何内容,您的代码有什么问题?它应该正确返回值。 VB(A) 函数使用函数名作为返回变量。
  • 阅读SK提供的链接;我需要添加的只是一个字符串变量到调用该函数的子程序。即“Dim i As String i = EmailAll()”
  • 我只是用来测试理论
  • 你所拥有的看起来不错。如前所述,在 VBA 中,您不能将 myStr 变暗为 string = "124",您必须使用两行代码 - 但您的方法应该可以正常工作,以及如何从用 VBA 编写的类返回或获取值,或者 c# 是一样的。在 c# 或 VBA 中从函数中获取值的方式也大致相同 - 您只需将函数名称分配给某个变量。

标签: vba ms-access


【解决方案1】:

在 VBA 中使用函数时,与函数同名的变量的值就是返回的值。

例如,下面的代码将返回“返回值”:

Public Function Testing() As String
    Testing = "Returned Value"
End Function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-18
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    相关资源
    最近更新 更多