发新话题
打印

[高级] 运用 VBS 输出数据到 ACCESS 文件

本主题由 admin 于 2008-6-5 20:03 移动

运用 VBS 输出数据到 ACCESS 文件

HX817老师
对于指定板块,从飞狐中导出以下格式内容(每分钟一份或更短时间周期)如:

2008-5-15  代码           名称      昨收    今开    最高    最低    最新    成交额    成交量
01           1A0001      上证指数
02           1A0002      A股指数
03           1A0003      B股指数
04           1B0001      工业指数
05           1B0002      商业指数
06           1B0004      地产指数
07           1B0005      公用指数
08           1B0006      综合指数
09           1B0007      上证  180
10           1B0008      基金指数
11           399001      深证成指
12           399002      成份A指
13           399003      成份B指
14           399004      深证100R
15           399100      新  指  数
16           399101      中小板综
17           399106      深证综指
18           399107      深证A指
19           399108      深证B指
20           399110      农林指数
21           399120      采掘指数
22           399130      制造指数
23           399131      食品指数
24           399132      纺织指数
25           399133      木材指数
26           399134      造纸指数
27           399135      石化指数
28           399136      电子指数
29           399137      金属指数
30           399138      机械指数
31           399139      医药指数
32           399140      水电指数
33           399150      建筑指数
34           399160      运输指数
35           399170      IT    指数
36           399180      批零指数
37           399190      金融指数
38           399200      地产指数
39           399210      服务指数
40           399220      传播指数
41           399230      综企指数
42           399300      沪深  300

请老师能尽快实现上述要求,谢谢!

TOP

参考代码
使用公式,在查看股票时,会自动按照不同的数据周期,对应在飞狐目录下 user 目录下生成对应的 out(0,1,2,3,4,5) 的数据库文件
复制内容到剪贴板
代码:
dt:datatype;
gpdm:=stklabel; scdm:=marketlabel;
fc:=close; fo:=open; fl:=low; fh:=high; fv:=vol;
dy:=year; dm:=month; dd:=day;
ts:=intpart(time/10000);
tf:=intpart((time-ts*10000)/100);
tm:=time-ts*10000-tf*100;
//exit;
<%
vfo=ffl.vardata("fo")
vfh=ffl.vardata("fh")
vfl=ffl.vardata("fl")
vfc=ffl.vardata("fc")
vfv=ffl.vardata("fv")
gpdm=ffl.vardata("gpdm")
scdm=ffl.vardata("scdm")
dt=ffl.vardata("dt")
vdy=ffl.vardata("dy")
vdm=ffl.vardata("dm")
vdd=ffl.vardata("dd")
vts=ffl.vardata("ts")
vtf=ffl.vardata("tf")
vtm=ffl.vardata("tm")
n=ffl.vardata("n")

Const Jet3x = 4  'Access97数据库格式
Const Jet4x = 5  'Access2000数据库格式

'创建 Access2000 数据库,位于飞狐安装目录user子目录下,按照不同数据类型保存对应的OUT*.mdb数据文件
FileName = "e:\foxtrader\user\out" & dt & ".mdb" '这里根据自己飞狐所在的目录修改
TableName = scdm & gpdm
Set fso = CreateObject("Scripting.FileSystemObject")
If (Not fso.FileExists(FileName)) Then
  CreateNewMDB FileName, Jet4x
End If
  On Error Resume Next
  CreateNewTable TableName
  Dim Conn,RS
  WriteTable FileName, TableName
  last=ubound(vfc)
  if Rs.RecordCount<last+1 then
    if Rs.RecordCountstart=0 then start=0 else start=last
    for i=start to last
      vdate=DateSerial(vdy(i), vdm(i), vdd(i))
      vtime=TimeSerial(vts(i), vtf(i), vtm(i))
      Rs.AddNew
      Rs.Fields("日期")=vdate
      Rs.Fields("时间")=vtime
      Rs.Fields("开盘价")=Round(vfo(i),2)
      Rs.Fields("最高价")=Round(vfh(i),2)
      Rs.Fields("最低价")=Round(vfl(i),2)
      Rs.Fields("收盘价")=Round(vfc(i),2)
      Rs.Fields("成交量")=Round(vfv(i),2)
      'Rs.Update
    next
    Rs.UpdateBatch
  End if   
  Set Rs=Nothing
  Set Conn=Nothing

Sub WriteTable(FileName,TableName)
  Set Conn=CreateObject("ADODB.Connection")
  Conn.Provider="Microsoft.Jet.OLEDB.4.0"
  Conn.Open FileName
  Set Rs=CreateObject("ADODB.Recordset")
  Rs.CursorType = 3
  Rs.LockType = 3
  Rs.Open TableName, Conn
End Sub

Sub OpenTable(TableName) '打开表
  Set Conn=CreateObject("ADODB.Connection")
  Conn.Provider="Microsoft.Jet.OLEDB.4.0"
  Conn.Open FileName
  SQL="Select * From TableName"
  Set RS=conn.Execute(SQL)
End Sub

Sub CreateNewTable(TableName) '创建新表
  Dim conn,rs
  Set conn=CreateObject("ADODB.Connection")
  Conn.Provider="Microsoft.Jet.OLEDB.4.0"
  Conn.Open FileName
  SQL="Create Table " & TableName & "([日期]Text(10),[时间]Text(8),[开盘价]Single,[最高价]Single,[最低价]Single,[收盘价]Single,[成交量]Single)"
  Set RS=conn.Execute(SQL)
  Set Rs=Nothing
  Set Conn=Nothing
End Sub

Sub CreateNewMDB(FileName, Format) '创建Access2000数据库
Dim Catalog
  Set Catalog = CreateObject("ADOX.Catalog")
  Catalog.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Jet OLEDB:Engine Type=" & Format & _
    ";Data Source=" & FileName
  Set CataLog=Nothing
End Sub
%>

TOP

VBS 运行环境设置查看

http://bbs.fjfox.com/thread-33707-1-1.html

TOP

盘中实时输出数据的方法
1、在系统选项中设置好指标刷新的时间周期


2、切换到需要输出数据的板块,再找到相应的指标公式,用鼠标右键点击公式,使用“指标排序”功能


设置分析周期(在这个公式中就是对应的数据输出周期)


3、设置好,回到动态显示屏,可以看到刷新数据,及排序好的指标数据,这样系统就会自动 1 分钟输出一次数据
附件: 您所在的用户组无法下载或查看附件

TOP

谢谢指导

TOP

我顶下

要dll的话可以吗?
另外买四买五算不算分笔里的
还是分笔数据包是到买三的
有没有简单点儿的分笔导入办法呢....新更新了系统,所以一年多的分笔要重新导入才行

TOP

目前飞狐分笔数据只保存到买卖三

TOP

发新话题
报警岗亭