VBA操作数据库问题
在vba中将sql文件中的sql语句执行一遍
现有方法:
dim cnn as new ADODB.Connection
dim cmd as new ADODB.Command
sql = "create table a(int a);"
cmd.CommandText = sql
cmd.ActiveConnection = '数据库连接匹配串‘
cmd.excute
上方法只能执行一条语句,要想全部执行还要解析sql文件将单条语句拿出来再执行,比较麻烦。有没有直接执行sql文件的方法,或一次执行多条sql语句的方法,求高手们支招 vba 数据库 sql excel
[解决办法]
将SQL文件都读到sql变量中,每条SQL语句后加一个回车,再一起执行。
[解决办法]
sub exesql(sql as string)
dim cnn as new ADODB.Connection
dim cmd as new ADODB.Command
cmd.CommandText = sql
cmd.ActiveConnection = '数据库连接匹配串‘
cmd.excute
cmd.close
cnn.close
end sub
调用
dim sql as string
sql = "create table a(int a);insert into a...;update xxx...."
dim arr() as string
arr = split(sql, ";")
for i = 0 to ubound(arr)
call exesql arr(i)
next
[解决办法]
dim sql() as string
dim Data as string
.....'将全部sql数据读入到data中
sql=split(Data,vbcrlf)
set cnn=.....’请自己确保是一个已经打开的连接
for i=0 to ublund(sql)
if trim(sql(i))<>"" then
cnn.execute(sql(i))
end if
next