請問一下各位大大
我有一個VB的問題
例如:
達成A的條件執行下一步
若不符合條件便會回到上一步驟或是欄位自動清空
P。S。我在程式裡面用GO TO語法
VB就會當機
請問有辦法解決或是利用其他方法來執行嗎
2006-10-18 07:02:22 · 3 個解答 · 發問者 〃梅子〃 1 in 電腦與網際網路 ➔ 程式設計
我用GOTO的程式碼是
執行就進入無窮回圈
a1:
p_no = txtnumber.Text
datperson.Recordset.MoveFirst
datperson.Recordset.FindFirst "p_no='" + p_no + "'"
If datperson.Recordset.NoMatch Then
lblname.Caption = "無此員工"
txtnumber.SetFocus
GoTo a1
Else
.....
2006-10-18 07:36:08 · update #1
我想你應該是要若沒找到txtnumber這個TextBox裡面的值時程式要停下來等你輸入另外一個值後再跑,問題是你這種寫法使程式進入無窮迴圈,想動都不能動,可用兩種方式試試:1.在GoTo a1 前面加Doevents,讓程式檢查有何事件要做 txtnumber.SetFocus Doevents GoTo a1 2.用InputBox取代txtnumber: p_no = InputBox("...") If p_no = "" Then Exit Sub3.最好能避免使用到GoTo,造成程式上閱讀的不便,可改成Do p_no = txtnumber.Text datperson.Recordset.MoveFirst datperson.Recordset.FindFirst "p_no='" + p_no + "'" If datperson.Recordset.NoMatch Then lblname.Caption = "無此員工" txtnumber.SetFocus DoEvents Else ........ ........ Exit Do End IfLoop
2006-10-18 08:32:50 · answer #1 · answered by W.J.S. 7 · 0⤊ 0⤋
應該是你的程式寫得有問題造成無窮迴圈才會當掉,檢查一下下goto的語法
在程式中的位置,利用form來做,應該就很簡單,比如說,按下一步就切換
另一個form就好了,當不符合就回到上一個form,那這樣子資料被清掉了,
或是當不符合,則欄位="";,我也只是大概說一下,也許並不能完全解決你的
疑問。
2006-10-18 07:20:42 · answer #2 · answered by ? 2 · 0⤊ 0⤋
GO TO這個指令一般來說不建議使用
如果少量使用的話,問題還少
但是習慣使用GOTO的話,會有程式碼難以閱讀
及維護上的困難
建議在流程方面,使用IF等判斷式
加上FUNTION程式模組化
這樣你以後要維護、修改都會比較容易
2006-10-18 07:20:01 · answer #3 · answered by ERIC LIN 7 · 0⤊ 0⤋