以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  求助 为何无法在access中插入数据  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=74319)

--  作者:chacterchen
--  发布时间:2015/1/12 14:01:35
--  求助 为何无法在access中插入数据
求助,下面代码中新建表的这部分没问题.
但是不知为何不能在access中插入数据.
而如果我建立成功表格后单独将下面红色的一行在access中执行的话,是执行成功的.
请求帮忙解决.



Sub APPLICATION_Start()
 \'设定access文件
\'AccessFilePath = "D:\\*******\\Asset.accdb"    
AccessFilePath = "D:\\艺的文件夹\\自编程序\\风控系列06 金字塔vbs文件\\Asset.accdb"    


\'开始在ACCESS数据库中新建表********************************************************************
application.MsgOut "新建Access表"
Set adoConn=CreateObject("Adodb.Connection")
\'连接数据库(数据指向是金字塔安装目录下的test.mdb,也可以自己更改想要的路径)
\'adoConn.Open"Provider=MicroSoft.Jet.OLEDB.4.0;Data Source=D:\\艺的文件夹\\自编程序\\风控系列06 金字塔vbs文件\\DailyAsset.mdb"
adoConn.Open"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & AccessFilePath \'可以连接access2007数据库格式

\'查找表是否存在
Dim Rs
Set Rs = adoConn.OpenSchema(20)
Do While Not Rs.EOF
     If Rs("Table_Name") = "TreadingRecord" Then
          \'找到表的操作。。
          strSqldro="drop table TreadingRecord"
          adoConn.Execute(strSqldro)
     End If
     Rs.MoveNext
Loop
Rs.Close
Set Rs = Nothing

\'创建表 各列代表的意义分别是 交易时间,交易品种,交易状态(买卖,买空,卖空,头寸模型,风险百分比)
     strSqlcre="create table TreadingRecord (TreadeDateTime DateTime NOT NULL, TreadMarket varchar(10) NOT NULL, TreadeStatus varchar(10) NOT NULL,PositionSizeModle varchar(10) NOT NULL, PercentRisk real)"
     adoConn.Execute(strSqlcre)
adoConn.Close
\'结束在ACCESS数据库中新建表********************************************************************  

\'开始在ACCESS数据库中插入数据********************************************************************

     \'打开数据库
    Set adoConn=CreateObject("Adodb.Connection")
    adoConn.Open"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & AccessFilePath \'可以连接access2007数据库格式 
    
\'在access数据库中写入记录
strSqlcre="INSERT INTO TreadingRecord VALUES (\'2009/1/4\',\'CU13\',\'Buy\',\'FixedPR\',.05) "
adoConn.Execute(strSqlcre)
application.MsgOut "SQL语句: "& strSqlcre 
    adoConn.close
    application.MsgOut "结束"
\'结束在ACCESS数据库中插入数据********************************************************************    
    
    
End Sub

--  作者:chacterchen
--  发布时间:2015/1/12 14:24:00
--  
解决了 应该将函数名改为Sub APPLICATION_VBAStart()