Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 从access数据库检索数据的UDF_Excel_Vba_Ms Access_Bloomberg - Fatal编程技术网

Excel 从access数据库检索数据的UDF

Excel 从access数据库检索数据的UDF,excel,vba,ms-access,bloomberg,Excel,Vba,Ms Access,Bloomberg,如何创建UDF以从access数据库检索数据 我可以使用vba通过sql查询检索数据并单击按钮。数据将在记录集中。我只是将它粘贴到任何单元格 现在我的问题是:如何创建一个用户定义的函数来实现同样的功能。也就是说,当我在任何Excel单元格中输入类似于=bdh(定价日期、产品标签)的内容时,所有数据都将返回并粘贴到我输入自定义公式的单元格下方 如果您熟悉彭博API,我想构建一个类似于bdh函数的函数。也许您可以考虑一个更简单的想法?例如,下面的代码段取决于用户选择两个输入单元格来控制输出。您可以添

如何创建UDF以从access数据库检索数据

我可以使用vba通过sql查询检索数据并单击按钮。数据将在记录集中。我只是将它粘贴到任何单元格

现在我的问题是:如何创建一个用户定义的函数来实现同样的功能。也就是说,当我在任何Excel单元格中输入类似于
=bdh(定价日期、产品标签)
的内容时,所有数据都将返回并粘贴到我输入自定义公式的单元格下方


如果您熟悉彭博API,我想构建一个类似于
bdh
函数的函数。

也许您可以考虑一个更简单的想法?例如,下面的代码段取决于用户选择两个输入单元格来控制输出。您可以添加一个菜单项来运行代码

Sub GetMSAccess()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim selrange As Range

    Set selrange = Selection

    strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Z:\Docs\Test.accdb"

    cn.Open strCon

    sSQL = "SELECT var1, var2 FROM table2 " _
    & "WHERE var1='" & selrange.Cells(1, 1).Value _
    & "' AND var2=" & selrange.Cells(1, 2).Value
    rs.Open sSQL, cn

    ActiveCell.Offset(1, 0).CopyFromRecordset rs
End Sub
比如说


嗨,杰克,我相当肯定,通过UDF是不可能做到这一点的。函数不能更改选定单元格之外的任何单元格。最好将记录集作为数组函数返回。彭博社有一个监视Excel的数据服务,它是数据服务,而不是将额外数据放在下面单元格中的功能。据我了解,这是一个极难实施的过程。我想,通过实现一个聪明的单元格更改事件,您可能会产生某种黑客行为,但我怀疑这是否值得。顺便说一句,一些问题展示了如何编写返回记录集的数组函数的示例(来自SQL,但我认为您可以只更改连接字符串中的提供程序以获得访问权):或Hi。丹。非常感谢你的帮助。我老板说我可以通过某种数组函数来实现。这是真的吗?你是说如果没有像任何事件更改一样的黑客攻击,就无法将数据粘贴到我输入自己的BDH函数的单元格下面。谢谢。有人建议使用Ctrl+Shift+Enter。我仍在努力寻找解决方案。=)除非你想学习如何实现一个数据服务,否则你不能,但是因为数组公式对你来说是新的,我想说,这可能不是你的选择。