到奇狐勝券首頁 奇狐社區論壇 購買奇狐勝券 試用奇狐勝券
 
論壇首頁 你可以在這裡編輯你的資料,查看短訊,訂閱主題和論壇參數等等 免費會員註冊 會員列表 論壇幫助 論壇日曆 論壇搜索 加入我的最愛 登出論壇  
奇狐社區論壇 : Powered by vBulletin version 2.3.0 奇狐社區論壇 > 指標公式 > 問題交流 > [求救]可以幫我看一下嗎?
  上一主題   下一主題
作者
主題 發表新主題    回覆主題
pili
初級會員

註冊日期: May 2009
來  自:
文章數量: 5

[求救]可以幫我看一下嗎?

附件含Access檔和VBS讀取碼...
但公式讀取access資料表的內容一直無法顯示出來...
不知道是哪邊出錯....
麻煩哪位好心的幫我看看囉...


原碼如下:
fa:=close*0;
fb:=fa;
fc:=fa;
fd:=fa;
fe:=fa;
fy:=year;
fm:=month;
fd:=day;
<%
va=ffl.vardata("fa")
vb=ffl.vardata("fb")
vc=ffl.vardata("fc")
vd=ffl.vardata("fd")
ve=ffl.vardata("fe")
vy=ffl.vardata("fy")
vm=ffl.vardata("fm")
vd=ffl.vardata("fd")
n=ffl.vardata("n")

Const Jet3x = 4
Const Jet4x = 5
FileName="d:\chiefox\user\Test.mdb"
TableName="Test"
On Error Resume Next
ReadTable FileName,TableName

Sub ReadTable(FileName,TableName)
Dim Conn,RS
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
Rs.MoveFirst
Last=ubound(va)
if Rs.RecordCount=Last+1 then
for i=0 to Last
va(i)=Rs.Fields("買方前五大部位數")
vb(i)=Rs.Fields("買方前十大部位數")
vc(i)=Rs.Fields("賣方前五大部位數")
vd(i)=Rs.Fields("賣方前十大部位數")
ve(i)=Rs.Fields("全市場部位數")
Rs.MoveNext
next
End if
Set Rs=Nothing
Set Conn=Nothing
End Sub

ffl.vardata("fa")=va
ffl.vardata("fb")=vb
ffl.vardata("fc")=vc
ffl.vardata("fd")=vd
ffl.vardata("fe")=ve
%>
買方前五大:fa;
買方前十大:fb;
賣方前五大:fc;
賣方前十大:fd;
全市場部位數:fe;

附件: Test.rar
此文件已被下載 84 次。

最後由 pili 在 2009-05-21 14:00 編輯 向版主報告此篇 | 查IP位址
Old Post 2009-05-21 13:20
pili 現在離線 點選這裡查看 pili 的個人資料 點選這裡給 pili 傳送一條短訊 查找更多關於 pili 的文章 增加 pili 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18167

if Rs.RecordCount=Last+1 then
想一想這行的寫法的適當性及其造成的影響

向版主報告此篇 | 查IP位址
Old Post 2009-05-22 08:58
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
pili
初級會員

註冊日期: May 2009
來  自:
文章數量: 5

試了好久還是沒有辦法...
麻煩版主在幫忙看一下...
到底問題出在哪邊???
感謝...

fa:=close*0;
fb:=fa;
fc:=fa;
fd:=fa;
fe:=fa;
fyear:=year;
fmonth:=month;
fday:=day;
<%
va=ffl.vardata("fa")
vb=ffl.vardata("fb")
vc=ffl.vardata("fc")
vd=ffl.vardata("fd")
ve=ffl.vardata("fe")
vyear=ffl.vardata("fyear")
vmonth=ffl.vardata("fmonth")
vday=ffl.vardata("fday")
n=ffl.vardata("n")

Const Jet3x = 4
Const Jet4x = 5
FileName="d:\chiefox\user\Test.mdb"
TableName="Test"
On Error Resume Next
ReadTable FileName,TableName

Sub ReadTable(FileName,TableName)
Dim Conn,RS
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
Rs.MoveFirst
Last=ubound(va)
for i=0 to Last
vdate=DateSerial(vyear(i), vmonth(i), vday(i))
if vdate>Rs.Fields("日期") then
Rs.MoveNext
end if
if vdate=Rs.Fields("日期") then
va(i)=Rs.Fields("1")
vb(i)=Rs.Fields("2")
vc(i)=Rs.Fields("3")
vd(i)=Rs.Fields("4")
ve(i)=Rs.Fields("5")
Rs.MoveNext
else
va(i)=0
vb(i)=0
vc(i)=0
vd(i)=0
ve(i)=0
end if
next
Set Rs=Nothing
Set Conn=Nothing
End Sub

ffl.vardata("fa")=va
ffl.vardata("fb")=vb
ffl.vardata("fc")=vc
ffl.vardata("fd")=vd
ffl.vardata("fe")=ve
%>
Test1:fa;
Test2:fb;
Test3:fc;
Test4:fd;
Test5:fe;

附件: Test.rar
此文件已被下載 89 次。

向版主報告此篇 | 查IP位址
Old Post 2009-06-03 11:24
pili 現在離線 點選這裡查看 pili 的個人資料 點選這裡給 pili 傳送一條短訊 查找更多關於 pili 的文章 增加 pili 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18167

想想看

奇狐K棒數 和 您資料庫 Test.mdb 的資料長度和起止時間
是不太可能完全一致的

這段存取資料庫的程序, 也沒有檢查資料庫結尾的機制

這兩個關鍵沒處理好, 都是致命的錯誤

把 On Error Resume Next 這行先去掉吧
這行會讓錯誤隱蔽不顯示出來
無法得知程序處理過程中有無錯誤

可善用 msgbox 來顯示訊息偵錯

向版主報告此篇 | 查IP位址
Old Post 2009-06-03 11:46
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
全部時間均為台灣時間, 現在時間為02:15 發表新主題    回覆主題
  上一主題   下一主題
顯示可列印版本 | 訂閱此主題

論壇跳轉:
主題評分:

論壇規定:
你不可以發表新主題
你不可以回覆文章
你不可以上傳附件
你不可以編輯自己的文章
HTML語法禁止
vB 語法核准
表情符號核准
貼圖語法[IMG]核准
 

本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。

Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.  聯絡我們