Office中国论坛/Access中国论坛

标题: 煩指教一段程式碼錯誤在何處 [打印本页]

作者: john7297    时间: 2006-2-27 23:01
标题: 煩指教一段程式碼錯誤在何處
煩指教下面一段程式碼錯誤在何處,應該如何改正?

在下不勝感激!

部門數據庫共享,有三部電腦負責數據錄入編輯.

工作思路:

1.啟動數據庫後檢查指定三部電腦中特定文件夾中是否存在x.y.z.w中任何一個文件,,若無任何一個文件則退出系統.

2.如有文件y,則打開表單未核銷情況(壹部),如有文件z,則打開表單未核銷情況(貳部),

_____________________________________
Private Sub Form_Load()
x = Dir("c:\fox_sys\dept.txt")
y = Dir("c:\fox_sys\dept1.txt")
z = Dir("c:\fox_sys\dept2.txt")
w = Dir("C:\foy_sys\dept3.txt")

End Sub

_____________________________
Private Sub O_1_Click()

If x <> "c:\fox_sys\dept.txt" And z <> "c:\fox_sys\dept2.txt" Then
DoCmd.OpenForm "未核銷情況(壹部)"
ElseIf x <> "c:\fox_sys\dept.txt" And y <> "c:\fox_sys\dept1.txt" Then
DoCmd.OpenForm "未核銷情況(貳部)"
Else
If x <> "c:\fox_sys\dept.txt" And y <> "c:\fox_sys\dept1.txt" And z <> "c:\fox_sys\dept2.txt" Then
MsgBox "系統退出!", "16", "系統"
DoCmd.Quit
End If

End Sub

__________________________

可是我在演算中發現 c:\fox_sys\文件夾中不論是dept1.txt還是dept2.txt,也只能打開"未核銷情況(壹部)"表單,達不到操作要求.

在下三板斧用完了,沒什麼招了,祈求高手喂招!

[em06]
作者: sgrshh29    时间: 2006-2-28 00:22
x,y,z,w是模块级变量吗?
作者: john7297    时间: 2006-2-28 01:14
和此有關系嗎?我只是設定 x,y,z.w對應是不是某個文件.
作者: tmtony    时间: 2006-2-28 02:19
当然有关系啦,如果不是窗体变量,在load中取到的值在O_1_Click()中读不到
作者: john7297    时间: 2006-2-28 02:46
在演算中發現 c:\fox_sys\文件夾中不論是dept1.txt還是dept2.txt,也只能打開"未核銷情況(壹部)"表單

能打開"未核銷情況(壹部)"表單,那表明在o_1_cilk()中是可以讀到的.

那我究竟應該怎樣改編呢?




作者: sgrshh29    时间: 2006-2-28 03:10
你知道x = Dir("c:\fox_sys\dept.txt")这个表达式中,x返回什么吗?用立即窗口查看一下,你就明白是什么道理了.

作者: john7297    时间: 2006-2-28 03:42
首先謝謝您的回覆!

怎麼用立即窗口?

我打開了立即窗口,輸入x = Dir("c:\fox_sys\dept.txt")沒有結果?

步驟是怎樣的?
作者: sgrshh29    时间: 2006-2-28 03:59
叫人如何跟你解释清楚呢?这样好了,你试试吧,如果不是你预想的顺序,就调整等号二边的参数.



Private Sub O_1_Click()

x = Dir("c:\fox_sys\dept.txt")
y = Dir("c:\fox_sys\dept1.txt")
z = Dir("c:\fox_sys\dept2.txt")
w = Dir("C:\foy_sys\dept3.txt")



If x = "dept.txt" And z = "dept2.txt" Then
DoCmd.OpenForm "未核銷情況(壹部)"
ElseIf x = "dept.txt" And y = "dept1.txt" Then
DoCmd.OpenForm "未核銷情況(貳部)"
Elseif x <> "dept.txt" And y <> "dept1.txt" And z <> "dept2.txt" Then
MsgBox "系統退出!", "16", "系統"
DoCmd.Quit

end if
End sub

[此贴子已经被作者于2006-2-27 20:05:14编辑过]


作者: john7297    时间: 2006-2-28 04:14
再次向您致謝!

我把程式碼改成您的設計,按下按鍵後沒有任何反應
作者: john7297    时间: 2006-2-28 04:19
下面的可不可以這樣? (也不行.直接就退出了)

If  z = "dept1.txt" Then
DoCmd.OpenForm "未核銷情況(壹部)"
ElseIf y = "dept2.txt" Then
DoCmd.OpenForm "未核銷情況(貳部)"
Elseif x <> "dept.txt" or y <> "dept1.txt" or z <> "dept2.txt" Then
MsgBox "系統退出!", "16", "系統"
DoCmd.Quit





[此贴子已经被作者于2006-2-27 20:29:39编辑过]


作者: sgrshh29    时间: 2006-2-28 15:09
以下是引用john7297在2006-2-27 15:01:00的发言:


1.啟動數據庫後檢查指定三部電腦中特定文件夾中是否存在x.y.z.w中任何一個文件,,若無任何一個文件則退出系統.

2.如有文件y,則打開表單未核銷情況(壹部),如有文件z,則打開表單未核銷情況(貳部)

你要仔细再看看你的要求,下面的一段就是符合你的要求的

x = Dir("c:\fox_sys\dept.txt")
y = Dir("c:\fox_sys\dept1.txt")
z = Dir("c:\fox_sys\dept2.txt")
w = Dir("C:\fox_sys\dept3.txt")
If y = "dept1.txt" Then
DoCmd.OpenForm "未核銷情況(壹部)"
ElseIf z = "dept2.txt" Then
DoCmd.OpenForm "未核銷情況(貳部)"
ElseIf x <> "dept.txt" And y <> "dept1.txt" And z <> "dept2.txt" And w <> "dept3.txt" Then
MsgBox "系統退出!", "16", "系統"
DoCmd.Quit
End If


[此贴子已经被作者于2006-2-28 7:10:38编辑过]


作者: zm_027    时间: 2006-2-28 19:25
学习中
作者: john7297    时间: 2006-3-3 10:12
非常感謝sgrshh29的回覆

我也另外建立了

Dim keys As String

keys = InputBox("在下面輸入部門", "進入部門", "指定代號")
    If keys = "dept1" Then....

語句從另一方面解決了問題




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3