http://www.weistock.com/bbs/dispbbs.asp?boardid=5&Id=30622
参考下
客服,我看了你的帖子,给出的实例是操作access数据库的,而我用的是SQL Server ,是否sql server的插入新纪录操作命令是不同的? 参照你的帖子,我修改了下不符合的地方,还是报错,报错信息如下:
编译器错误 '3604'
Incorrect syntax near '000300'
而我修改后的代码是如下:
'定义一个函数,供vba 开始运行时调用
sub DataInsert()
'设置对象adoConn,进行连接
Set SqlConn=CreateObject("Adodb.Connection")
SvrIP=".\SQLExpress"
SqlConn.Open "Provider=SQLOLEDB;Server=.\SQLExpress;Database=StockIndex;UID=roy;PWD=9817"
set qtzq= marketdata.GetHistoryData("000300","SH",0,1000)
'调试数据调入是否成功
'call application.MsgOut(qtzq.close(qtzq.Count-1))
'取得HS300指数价格
for i=1 to qtzq.Count-1
strSqlins = "INSERT INTO 000300 (Date,O,H,L,C) VALUES ('"&qtzq.Date(i)&"','"&qtzq.Open(i)&"','"&qtzq.High(i)&"','"&qtzq.Low(i)&"','"&qtzq.Close(i)&"')"
sqlConn.Execute(strSqlins)
next
sqlConn.close
end sub
'数据库启动时调用
sub application_vbastart()
call DataInsert()
'调试
call application.MsgOut("11")
end sub
INSERT INTO 000300 (Date,O,H,L,C)
注意这类插入语句,检查字段是否存在,类型是否是日期和数字型的。
Sql Server提供了一些客户端工具,可以直接使用SQL语句进行操作,你先在这些工具上操作试试,调试完毕没问题后再放到金字塔里