excel直接关联sql server 2008查询,可行吗?如何实现呢?求大牛告知

e_dian_yun 2018-02-03 01:46:17
如题:
本人在实践中,需要通过excel表格关联sql2008数据库查询数据,
但是不知道两者该如何建立连接?
Sub 查找1()
Set Cnn = CreateObject("ADODB.Connection")
Set Rs = CreateObject("ADODB.Recordset")
Cnn.ConnectionString = "Provider=SQLOLEDB;Persist Security Info=True;User ID=sa;Password=sa;Initial Catalog=test"
Cnn.Open
Sql = "select 序号,语文,数学,英语 from 成绩计算$ where 序号 in (1,2)"
Set Rs = Cnn.Execute(Sql)
With Sheet1
For i = 0 To Rs.Fields.Count - 1
.Cells(1, i + 11) = Rs.Fields(i).Name
Next i
.Range("k2").CopyFromRecordset Rs
End With
Set Cnn = Nothing
End Sub
上述代码能通过Excel向sql2008查询数据,
请问in里面的序号,如何用sql语句表达呢?
...全文
2198 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
e_dian_yun 2018-02-08
  • 打赏
  • 举报
回复
引用 9 楼 apollokk 的回复:
Sub test()
    n = Range("a65535").End(xlUp).Row
    If n = 2 Then Exit Sub
    Dim ids As String
    For i = 2 To n
        ids = ids & Range("a" & i).Value & ","
    Next
    ids = Left(ids, Len(ids) - 1)
    Sql = "select 序号,语文,数学,英语 from 成绩计算$ where 序号 in (" & ids & ")"
    MsgBox Sql
End Sub
十分感谢您的回复,这种迂回的方法考虑过! 寻求的是excel直接关联sql数据库查询, 网上查了一些资料,没有找到类似的案例, 不知道此路是否可行?
zjcxc 2018-02-05
  • 打赏
  • 举报
回复
请问in里面的序号,如何用sql语句表达呢? --------------------------------- 没看懂,你不是已经放在 sql 语句里面了么? 还怎么用 SQL 表达? select 序号,语文,数学,英语 from 成绩计算$ where 序号 in (1,2)
Hello World, 2018-02-05
  • 打赏
  • 举报
回复
拼出来就好了
Hello World, 2018-02-05
  • 打赏
  • 举报
回复
Sub test()
    n = Range("a65535").End(xlUp).Row
    If n = 2 Then Exit Sub
    Dim ids As String
    For i = 2 To n
        ids = ids & Range("a" & i).Value & ","
    Next
    ids = Left(ids, Len(ids) - 1)
    Sql = "select 序号,语文,数学,英语 from 成绩计算$ where 序号 in (" & ids & ")"
    MsgBox Sql
End Sub
e_dian_yun 2018-02-05
  • 打赏
  • 举报
回复
引用 7 楼 apollokk 的回复:
Sql = "select 序号,语文,数学,英语 from 成绩计算$ where 序号 in (" & "1,2,3" & ")"
谢谢您的回复! in里面序号我是想直接引用Excel表格的A列, 而不是手工输入!
Hello World, 2018-02-05
  • 打赏
  • 举报
回复
Sql = "select 序号,语文,数学,英语 from 成绩计算$ where 序号 in (" & "1,2,3" & ")"
e_dian_yun 2018-02-05
  • 打赏
  • 举报
回复
引用 2 楼 apollokk 的回复:
拼出来就好了
谢谢您的关注!能说详细一点吗?
e_dian_yun 2018-02-05
  • 打赏
  • 举报
回复
引用 1 楼 shoppo0505 的回复:
不中这么复杂,excel可以直接连接sql数据库的,填入查询语句,每次打开就会显示即时查询结果。
谢谢您的关注! 我想知道的是:excel如何直接关联sql数据库进行查询? 此处的查询条件在excel表格的A列!
e_dian_yun 2018-02-05
  • 打赏
  • 举报
回复
引用 3 楼 zjcxc 的回复:
请问in里面的序号,如何用sql语句表达呢? --------------------------------- 没看懂,你不是已经放在 sql 语句里面了么? 还怎么用 SQL 表达? select 序号,语文,数学,英语 from 成绩计算$ where 序号 in (1,2)
in里面的序号在Excel表格的A列, 这里只是举例说明,没有写全所有的条件, 换句话说,就是查询条件在Excel表格中, 而被查询的对象是sql数据库! 不知道说清楚了没有?谢谢您的关注!
shoppo0505 2018-02-04
  • 打赏
  • 举报
回复
不中这么复杂,excel可以直接连接sql数据库的,填入查询语句,每次打开就会显示即时查询结果。

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧