当前位置:  开发笔记 > 后端 > 正文

如何编写从SQL数据库返回值的Excel函数?

如何解决《如何编写从SQL数据库返回值的Excel函数?》经验,为你挑选了1个好方法。

我想编写以下函数,该函数应该在Excel工作表中使用:

=GetRecField("Foo Record Key", "FooField1")

...将通过ODBC内部连接到SQL数据库,在那里执行

SELECT FooField1 FROM MyTable WHERE KEY_FIELD='Foo Record Key';

并将返回结果值作为函数GetRecField的结果.上述SQL被授予仅返回一条记录(IOW KEY_FIELD具有唯一约束).

当然,上述功能可以在工作表中多次调用,所以请尽量避免盲目 QueryTables.Add

TIA.



1> Andomar..:

您可以编写自定义函数来执行此操作

    打开VBA编辑器(ALT-F11)

    打开工具 - >引用,并确保选中"Microsoft ActiveX数据对象2.8库"和"Microsoft ActiveX数据对象记录集2.8库"

    右键单击VBAProject,然后选择"插入" - >"模块"

    打开模块.现在您可以创建自定义函数,例如:

    Public Function GetItem(field As String, id As Integer) As String
        Set oConnection = New ADODB.Connection
        Dim oRecordset As ADOR.Recordset
        oConnection.Open "provider=sqloledb;data source=yourserver;" & _
            "Trusted_Connection=yes;initial catalog=yourdatabase;"
        Set oRecordset = oConnection.Execute( & _
            "select " & field & " from table where id = " & id)
        If oRecordset.EOF Then
            GetItem = "n/a"
        Else
            GetItem = oRecordset(field)
        End If
    End Function

    您现在可以从单元格中调用该函数:

    =的GetItem( "字段名"; 2)

该模块是必需的,因为无法从spreadhseet内部调用非模块函数.

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有