mysql - 如何在excel中创建自定义函数来抓取mysql数据?

标签 mysql visual-studio-2010 excel excel-formula vba

我们需要为用户创建自定义公式以从我们的 mysql 数据库中提取数据。用户通过身份验证后,他们将在 excel 中输入一个公式(类似于“=retrievemybirthday("Frank Dodge")”)。我们该怎么做呢?我们不是编程新手,只是编程新手 w/Excel。有这方面的任何教程吗?我们已经看过,但可以找到任何东西。

谢谢!

最佳答案

1) 您需要为您的 MySQL 数据库配置一个 ODBC 驱动程序。

2) 找出你需要这个函数的 SQL 代码,比如

select birthdate
from YourTable
Where membername=?

您将在您的函数中使用此代码

3) 在您的函数中,您将需要正确的连接字符串。检查像 http://www.connectionstrings.com/ 这样的网站

4) 这是一个使用 ActiveX 数据对象的函数示例(您需要在 VB 编辑器中的“工具”>“引用”中设置引用)

Function GetNomen(sPN As String) As String
'SkipVought/2006 Mar 7
'--------------------------------------------------
' Access: DWPROD.FRH_MRP.READ
'--------------------------------------------------
':this function returns nomenclature for a given part number
'--------------------------------------------------
'2011-9-26 Converted to Parameter Query
'--------------------------------------------------

    Dim sConn As String, sSQL As String, sServer As String
    Dim rst As ADODB.Recordset, cnn As ADODB.Connection, cmd As ADODB.Command

    Set rst = New ADODB.Recordset
    Set cnn = New ADODB.Connection
    Set cmd = New ADODB.Command

    sServer = "dwprod"
    cnn.Open "Driver={Microsoft ODBC for Oracle};" & _
               "Server=" & sServer & ";" & _
               "Uid=/;" & _
               "Pwd="

    sSQL = "SELECT PM.Nomen_201 "
    sSQL = sSQL & "FROM FRH_MRP.PSK02101 PM "
    sSQL = sSQL & "WHERE PM.PARTNO_201 =?"


    Debug.Print sSQL

   With cmd
        .CommandText = sSQL
        .CommandType = adCmdText
        .Prepared = True

        .Parameters.Append .CreateParameter( _
            Name:="PARTNO_201", _
            Type:=adChar, _
            Direction:=adParamInput, _
            Size:=16, _
            Value:=sPN)

        .ActiveConnection = cnn

        Set rst = .Execute
    End With

    rst.MoveFirst

    If Err.Number = 0 Then
        GetNomen = rst("NOMEN_201")
    Else
        GetNomen = ""
    End If

    rst.Close
    cnn.Close

    Set cmd = Nothing
    Set rst = Nothing
    Set cnn = Nothing
End Function

您可以根据要求在工作表上运行此功能。

关于mysql - 如何在excel中创建自定义函数来抓取mysql数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8232830/

相关文章:

vba - 带有事件的应用程序

mysql - Liferay 不适用于 MySQL

mysql - 用于存储来自外部网站的用户数据的数据库设计模式

c++ - Visual Studio 中的 wxWidgets 链接问题

visual-studio - Visual Studio 使用 XHTML 标签关闭 HTML5 标签

c# - .NET 错误处理 : try/catch VS event VS return-value/status-fields

Excel按列值突出显示整行

php - 显示数据库中的数据并将其链接到包含所有个人资料详细信息的新页面

mysql - 当我们不知道表中的确切数据时,如何设计数据库表?

vba - 检查字符串格式