久保田161机油多少升:在EXCEL中查询SQL数据库

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 22:45:28
我想在EXCEL中实现如下功能:
连接一个SQL2000数据库进行查询,使用EXCEL某个单元格内的内容作为查询条件的一部分,并将查询结果导出到另一张工作表中。请问我应该如何实现?
ODBC是配好了的,但是现在只能进行固定条件的查询,而不能使用EXCEL某个单元格内的内容作为查询条件。
比如我的查询语句如下:SELECT * FROM AAA WHERE A=123
我希望能够把'123'替换为某一个单元格内的内容,而我每修改一次内容,执行宏就可以得到新的查询结果。

你的查询语句可以在Excel里面实现,不过是要通过加一些VBA代码到Excel宏语句里面,下面是我做过的一个Excel查询Access数据库程序,希望对你有所帮助

*在Excel里面建立数据链接
Private Sub GetFirstQuery()
ThisWorkbook.Activate
Sheets("Data").Activate
Cells.Delete
Set C = ActiveSheet.QueryTables.Add(Connection:="ODBC;DSN=MS Access Database;DBQ=" & ThisWorkbook.Path & "\test.mdb;DefaultDir=;", Destination:=Range("A1"))
With C
.CommandText = Array("SELECT * FROM A Where ID <=1")
.Refresh BackgroundQuery:=False
End With
End Sub

根据参数进行查询
Private Sub GetData(Para1 As String, Para2 As String, Para3 As String)
Dim WhereText As String

ThisWorkbook.Sheets("Data").Activate

WhereText = IIf(Para1 <> "", " segment='" & Para1 & "' ", "")
WhereText = WhereText & IIf(Para2 <> "" And WhereText <> "", " And ", "") & IIf(Para2 <> "", " Channel='" & Para2 & "' ", "")
WhereText = WhereText & IIf(Para3 <> "" And WhereText <> "", " And ", "") & IIf(Para3 <> "", " Demo='" & Para3 & "' ", "")

With C
.CommandText = Array("SELECT * FROM A Where " & WhereText)
Debug.Print .CommandText
.Refresh BackgroundQuery:=False
End With

End Sub

实施查询的程序
Sub Test()
Call GetFirstQuery
Call GetData("18", "Mike", "2006")
End Sub

query查询是不用通过odbc 的,而excel需要,配置一下odbc数据源试试