Access中的VBA返回方法[重复]

Posted

技术标签:

【中文标题】Access中的VBA返回方法[重复]【英文标题】:VBA return methods in Access [duplicate] 【发布时间】: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

【问题讨论】:

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

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

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

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

【讨论】:

以上是关于Access中的VBA返回方法[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Access VBA:关闭表单会导致表中的重复条目

如何在 VBA 代码中的 ms-access 中执行查询?

我可以从 Microsoft Access VBA 中的当前事件堆栈返回吗?

如何删除 Access 表中的重复项(不使用查询)?

Access VBA 添加引用重复

Access VBA 中的 Right() 函数