请问怎样用vba实现:内嵌SQL并从数据库查询到数据并放入指定的单元格内?请高手赐教或给个例子~ 小妹谢过
excel的格式编排好了,但是数据要从数据库来,连接数据库我可以用ODBC,但是如何能把SQL嵌入VBA并实现查询后自动导入指定单元格,就不太会了。有相关的VBA例子最好...
excel的格式编排好了,但是数据要从数据库来,连接数据库我可以用ODBC,但是如何能把SQL嵌入VBA并实现查询后自动导入指定单元格,就不太会了。有相关的VBA例子最好了,我可以自己学一下,多谢!(正在啃VBA语法,暂时还没碰到合适的例子)
展开
4个回答
2011-09-23
展开全部
你大概弄错了,数据库不存在什么最后空行,你指的多半是插入操作,如果是的话,执行sql语句(假定你的第三列字段名为name)
str="insert into wdgj21(name) values('" & Ar & "')"
(怎么执行不用偶说吧)当然如果你用addnew之类来替代上面这个也是可以的。
取出数据跟这个是差不多的,假定你的数据库中的name2列中包括这个ar的内容,你想取出那一行的name的值,
str="select top 1 name from wdgj21 where name2 like '%" & Ar & "%'"
用ADODB.Recordset打开就可以取到结果了。
str="insert into wdgj21(name) values('" & Ar & "')"
(怎么执行不用偶说吧)当然如果你用addnew之类来替代上面这个也是可以的。
取出数据跟这个是差不多的,假定你的数据库中的name2列中包括这个ar的内容,你想取出那一行的name的值,
str="select top 1 name from wdgj21 where name2 like '%" & Ar & "%'"
用ADODB.Recordset打开就可以取到结果了。
展开全部
Private Sub CommandButton1_Click()
Dim cn As New ADODB.Connection '定义数据链接对象 ,保存连接数据库信息;请先添加ADO引用
Dim rs As New ADODB.Recordset '定义记录集对象,保存数据表
Dim strCn As String, strSQL As String '字符串变量
Dim i As Integer, j As Integer, sht As Worksheet
strCn = "Provider=SQLOLEDB.1;Password=密码;Persist Security Info=True;User ID=sa;Initial Catalog=hrlink ;Data Source=IP地址"
strSQL = "select * from mytab"
cn.Open strCn
rs.Open strSQL, cn
xrow = 1
Do While (Not rs.EOF)
Sheet1.Cells(xrow, 1) = rs.Fields().Item(0)
Sheet1.Cells(xrow, 2) = rs.Fields().Item(1)
.....
xrow = xrow + 1
rs.MoveNext
Loop
End Sub
Dim cn As New ADODB.Connection '定义数据链接对象 ,保存连接数据库信息;请先添加ADO引用
Dim rs As New ADODB.Recordset '定义记录集对象,保存数据表
Dim strCn As String, strSQL As String '字符串变量
Dim i As Integer, j As Integer, sht As Worksheet
strCn = "Provider=SQLOLEDB.1;Password=密码;Persist Security Info=True;User ID=sa;Initial Catalog=hrlink ;Data Source=IP地址"
strSQL = "select * from mytab"
cn.Open strCn
rs.Open strSQL, cn
xrow = 1
Do While (Not rs.EOF)
Sheet1.Cells(xrow, 1) = rs.Fields().Item(0)
Sheet1.Cells(xrow, 2) = rs.Fields().Item(1)
.....
xrow = xrow + 1
rs.MoveNext
Loop
End Sub
追问
我试了这种写法,但是总说Dim cn As New ADODB.Connection 这句未定义之类的,估计是后面注释说的添加ADO引用没有做,但是不太明白这个怎么弄。现在已经用另一种写法连上了,但是还是继续请教这个ADO引用怎样添加,是不是可以解决我遇到的问题?再追加10分,多谢!
追答
在vba代码画面,工具--添加
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你大概弄错了,数据库不存在什么最后空行,你指的多半是插入操作,如果是的话,执行sql语句(假定你的第三列字段名为name)
str="insert
into
wdgj21(name)
values('"
&
Ar
&
"')"
(怎么执行不用偶说吧)当然如果你用addnew之类来替代上面这个也是可以的。
str="insert
into
wdgj21(name)
values('"
&
Ar
&
"')"
(怎么执行不用偶说吧)当然如果你用addnew之类来替代上面这个也是可以的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最好是引用 Microsoft ActiveX Data Object 2.6
点"工程"-"引用"-找到"Microsoft ActiveX Data Object 2.6
"
再用 Dim Conn As New ADODB.Connection
http://zhidao.baidu.com/question/53835208.html?fr=qrl&cid=1073&index=1&fr2=query
点"工程"-"引用"-找到"Microsoft ActiveX Data Object 2.6
"
再用 Dim Conn As New ADODB.Connection
http://zhidao.baidu.com/question/53835208.html?fr=qrl&cid=1073&index=1&fr2=query
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询