![]() |
在這個頁面顯示本主題全部的 4 個文章 |
奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- [求救]可以幫我看一下嗎? (http://www.chiefox.com.tw/bbs/showthread.php?threadid=11567)
[求救]可以幫我看一下嗎?
附件含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;
if Rs.RecordCount=Last+1 then
想一想這行的寫法的適當性及其造成的影響
試了好久還是沒有辦法...
麻煩版主在幫忙看一下...
到底問題出在哪邊???
感謝...
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;
想想看
奇狐K棒數 和 您資料庫 Test.mdb 的資料長度和起止時間
是不太可能完全一致的
這段存取資料庫的程序, 也沒有檢查資料庫結尾的機制
這兩個關鍵沒處理好, 都是致命的錯誤
把 On Error Resume Next 這行先去掉吧
這行會讓錯誤隱蔽不顯示出來
無法得知程序處理過程中有無錯誤
可善用 msgbox 來顯示訊息偵錯
全部時間均為台灣時間, 現在時間為00:44 | 在這個頁面顯示本主題全部的 4 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.