int li_flag
If dw_1.ModifiedCount() <> 0 or dw_1.DeletedCount() <> 0 Then
Beep(2)
li_flag = MessageBox("確認","數據已經修改,是否保存",Question!,YesNoCancel!,1)
Choose Case li_flag
Case 1//用戶要求保存
If dw_1.Update() = 1 Then//如果保存成功
commit;//提交數據
return 0//關閉窗口
Else//保存不成功
rollback;//回退事務
Beep(2)//響鈴兩聲
//讓用戶確認是否關閉窗口
If MessageBox("錯誤","數據保存不成功,是否還要關閉窗口?",&
Question!,YesNo!,2) = 1 Then
return 0//關閉窗口
Else
return 1//不關閉窗口
End If
End If
Case 2//不保存數據
rollback;//回退事務
return 0//關閉窗口
Case 3//用戶選擇了Cancel
return 1//不允許關閉窗口
End Choose
Else//數據窗口中的數據沒有修改過
return 0//直接關閉窗口
End If
上面的腳本也可以簡化成以下語句:
If dw_1.ModifiedCount() <> 0 or dw_1.DeletedCount() <> 0 Then
Beep(2)
MessageBox("提示", "數據已經修改,請先保存數據再退出! ")
Return 1
Else
Close(parent)
End If
這樣的語句修改後很簡潔,但用戶必須首先使用“保存”按鈕保存數據,然後才能單擊“退出”按鈕關閉窗口,也就是說程序硬性規定了用戶的執行流程。