Excel 求助,如何使用VBA实现远程访问SQL数据库

Excel 求助,如何使用VBA实现远程访问SQL数据库,第1张

VBA

连接

SQL

SERVER

数据库

实例:

Dim

strConn

As

String,

strSQL

As

String

Dim

conn

As

ADODBConnection

Dim

ds

As

ADODBRecordset

Dim

col

As

Integer

'连接数据库的字符串

strConn

=

"Provider=SQLOLEDB1;Persist

Security

Info=True;User

ID=[user];Password=[password];Initial

Catalog=[database];Data

Source=[数据库IP地址或数据库服务器名称];Connect

Timeout=720;

"

'查询语句如果sql语句很长可以用strSQL=strSQL+来连接分成多段的语句,如果语句很短可以只写在一行上。

strSQL

=

"select

from

Hy_KPI_Shop_Dept_WeekRpt

"

strSQL

=

strSQL+"where

sdate='2014-01-01'

order

by

sdate,shopid

"

Set

conn

=

New

ADODBConnection

Set

ds

=

New

ADODBRecordset

'打开数据库连接

connOpen

strConn

'该句和数据库连接字符串处的Connect

Timeout=720,表示说如果语句运行时间很长,这两句可以延长vba的等待时间,没有这两句,vba往往会报查询超时。

connCommandTimeout

=

720

With

ds

'根据查询语句获得数据

Open

strSQL,

conn

'自动控制加入所有列标题

For

col

=

0

To

dsFieldsCount

-

1

'请注意Offset(0,

col)中的参数一定要正确,该句表示标题将会写在第一行,从A1单元格开始,如果不想写入标题行,可将下面这句注释掉。

Worksheets("门店各课KPI周报")Range("A1")Offset(0,

col)Value

=

dsFields(col)Name

Next

'加入所有行数据,该句表示查询结果将会写在第一行,从A1单元格开始,但是由于标题行写在第一行了,所以实际这一行从标题下的一行写入。

Worksheets("sheet1")Range("A1")Offset(1,

0)CopyFromRecordset

ds

End

With

'关闭数据库连接和清空资源

Set

ds

=

Nothing

connClose

Set

conn

=

Nothing

VBA是Visual Basic for Applications的缩写,是Microsoft Office系列软件以及其他应用程序的编程语言。使用VBA编写的程序可以自动化执行重复性的 *** 作,同时可以与其他应用程序进行交互。在使用VBA *** 作数据库时,如果对象被设置为只读,则无法更新该对象。这是因为只读属性限制了对该对象的更改 *** 作,如果需要更新数据库或对象,则需要取消只读属性。此外,在使用VBA *** 作数据库时,应注意使用对象的锁定机制,以防止出现意外的读/写冲突。

不知道你的数据库什么样子的。是access数据库,还是用另外的工作表或者工作簿作为数据库了。如果access的话,建议直接用access写代码,写完直接设置密码保护模式。如果用其他工作表的话,可以隐藏,设置需要权限才能取消隐藏,可以在代码上下功夫,完全可以做到。如果其他工作簿的话,直接设置好密码。先填写数据,保存的时候用VBA用密码打开那个工作簿,数据写完直接用代码保存关闭就可以了。

当然,VBA密码只能锁君子不能锁小人,只能锁不懂代码的,锁不了懂代码的。

如果还有问题可以继续追问。如果想交流,可以关注或者私信。

中间的应该是sheet1cells(1,3)copyfromrecordset rst

是不是应该写成data=rstfields("销售额")

回复:是的,这样就可以得到你想要的值。

以上就是关于Excel 求助,如何使用VBA实现远程访问SQL数据库全部的内容,包括:Excel 求助,如何使用VBA实现远程访问SQL数据库、vba不能更新数据库或对象为只读、利用VBA将数据写入数据库,但数据库不能被保护,问被保护的数据库如何写入不被限制等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9529346.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存