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 |