gpt4 book ai didi

sql-server - 带有宏vba和sql server数据库的自定义excel函数

转载 作者:行者123 更新时间:2023-12-02 16:43:37 25 4
gpt4 key购买 nike

我有一个带有 Table=Data_table 的 Sql 数据库

<html>
<head>
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
</style>
</head>
<body>

<table style="width:100%">
<tr>
<th>ID</th>
<th>NAME</th>
<th>AGE</th>
</tr>
<tr>
<td>123AB</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>456CD</td>
<td>Jackson</td>
<td>94</td>
</tr>
<tr>
<td>789EF</td>
<td>Doe</td>
<td>80</td>
</tr>
</table>

</body>
</html>

我正在尝试制作一个 Excel 宏,它将在 Excel 中提供以下功能:允许我使用带有自定义函数 (=SQLSelect(A1)) 的 SQL 查询在 B1 上显示名称。

<html>
<head>
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
</style>
</head>
<body>

<table style="width:100%">
<tr>
<th> </th>
<th>A</th>
<th>B</th>
</tr>
<tr>
<td>1</td>
<td>123AB</td>
<td>=SQLSelect(A1)</td>
</tr>
<tr>
<td>2</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>3</td>
<td> </td>
<td> </td>
</tr>
</table>

</body>
</html>

这是我到目前为止所做的:

Function SqlSelect(n As String) As String
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim ConnectionString As String
Dim StrQuery As String

ConnectionString = "Provider=SQLOLEDB.1;Password=pass;Persist Security Info=True;User ID=sa;Data Source=IT\SQLEXPRESS;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=Database"

cnn.Open ConnectionString
cnn.CommandTimeout = 900

StrQuery = "SELECT NAME FROM data_table where ID='" + n + "'"

rst.Open StrQuery, cnn
n = rst.GetString
End Function

我希望这个问题不会太令人困惑,感谢您的帮助!

最佳答案

Function SqlSelect(n As String) As String

Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim ConnectionString As String
Dim StrQuery As String

ConnectionString = "Provider=SQLOLEDB.1;Password=pass;Persist Security Info=True;" & _
"User ID=sa;Data Source=IT\SQLEXPRESS;Use Procedure for Prepare=1;" & _
"Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;" & _
"Tag with column collation when possible=False;Initial Catalog=Database"

cnn.Open ConnectionString
cnn.CommandTimeout = 900

StrQuery = "SELECT NAME FROM data_table where ID='" + n + "'"

rst.Open StrQuery, cnn
If not rst.EOF Then
SqlSelect = rst.GetString
Else
SqlSelect = "???"
End If
End Function

关于sql-server - 带有宏vba和sql server数据库的自定义excel函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42474516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com