我想编写以下函数,该函数应该在Excel工作表中使用:
=GetRecField("Foo Record Key", "FooField1")
Run Code Online (Sandbox Code Playgroud)
...将通过ODBC内部连接到SQL数据库,在那里执行
SELECT FooField1 FROM MyTable WHERE KEY_FIELD='Foo Record Key';
Run Code Online (Sandbox Code Playgroud)
并将返回结果值作为函数GetRecField的结果.上述SQL被授予仅返回一条记录(IOW KEY_FIELD具有唯一约束).
当然,上述功能可以在工作表中多次调用,所以请尽量避免盲目 QueryTables.Add
TIA.
您可以编写自定义函数来执行此操作
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内部调用非模块函数.
| 归档时间: |
|
| 查看次数: |
9530 次 |
| 最近记录: |