VBA如何读取txt格式的SQL语句,并执行?
答案:2 悬赏:0 手机版
解决时间 2021-02-15 22:35
- 提问者网友:且恨且铭记
- 2021-02-14 23:28
例如:我用txt记事本,写下一段select查询代码,我要用VBA读取这段代码,并执行它。
最佳答案
- 五星知识达人网友:未来江山和你
- 2021-02-14 23:42
看你在什么环境下面用VBA, 一般来说,将文本内容读出来,传递给给VBA中设置SQL语句的变量即可.
比如EXCEL的例子:
Set rsRead = New ADODB.Recordset
sqlstr = 你所读到的文本文件内容
rsRead.Open sqlstr, cnn, adOpenKeyset, adLockOptimistic
rsRead.MoveFirst
比如EXCEL的例子:
Set rsRead = New ADODB.Recordset
sqlstr = 你所读到的文本文件内容
rsRead.Open sqlstr, cnn, adOpenKeyset, adLockOptimistic
rsRead.MoveFirst
全部回答
- 1楼网友:十年萤火照君眠
- 2021-02-15 00:22
sub 按钮1_click()
dim i as integer, j as integer, sht as worksheet 'i,j为整数变量;sht 为excel工作表对象变量,指向某一工作表
'dim cn as new adodb.connection '定义数据链接对象 ,保存连接数据库信息;请先添加ado引用
'dim rs as new adodb.recordset '定义记录集对象,保存数据表
‘工具 ---〉引用 ---〉microsoft activex data objects ....
'下面两句就不需要增加引用ado
set cn = createobject("adodb.connection")
set rs = createobject("adodb.recordset")
dim strcn as string, strsql as string '字符串变量
dim strcond as string
strcn = "provider=sqloledb;server=r9hdet7;database=dbname;uid=username;pwd=password" '定义数据库链接字符串
'下面的语句将读取数据表数据,并将它保存到excel工作表中:工作表为一张两维表,记录集也是一张两维表
strsql = "select customer_name from vsc_bi_customer " '定义sql查询命令字符串
cn.open strcn '与数据库建立连接,如果成功,返回连接对象cn
rs.open strsql, cn '执行strsql所含的sql命令,结果保存在rs记录集对象中
i = 2
set sht = thisworkbook.worksheets("test") '把sht指向当前工作簿的test工作表
do while not rs.eof '当数据指针未移到记录集末尾时,循环下列操作
sht.cells(i, 1) = rs("customer_name") '把当前记录的字段1的值保存到sheet1工作表的第i行第1列
rs.movenext '把指针移向下一条记录
i = i + 1 'i加1,准备把下一记录相关字段的值保存到工作表的下一行
loop '循环
rs.close '关闭记录集,至此,程序将把某数据表的字段1保存在excel工作表sheet1的第1列,行数等于数据表的记录数
cn.close '关闭数据库链接,释放资源
end sub
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯