Board logo

標題: [發問] 輸入錯誤值,游標停在原欄位 [打印本頁]

作者: sammay    時間: 2012-1-11 11:37     標題: 輸入錯誤值,游標停在原欄位

請問各位前輩們:
如附件檔,在表單2的日期欄位若輸入不符設定的值時(例如:20110202後,設定值是2012-2018年),會出現錯誤訊息,但是游標會往下一個欄位跑。
請問當日期欄位輸入不符設定值時,如何讓游標停在日期欄位呢?
[attach]9179[/attach]
作者: GBKEE    時間: 2012-1-11 16:28

本帖最後由 GBKEE 於 2012-1-11 16:40 編輯

回復 1# sammay
  1. Option Explicit
  2. Private Sub CommandButton1_Click()
  3.     UserForm2.Show 1     '表單開啟模式為 1 (強制回應)時: Msgbox 提出訊息後, 才會強制回應到表單.
  4.     'UserForm2.Show      '表單開啟模式  (非強制回應)
  5. End Sub
複製代碼
  1. Option Explicit
  2. Dim MyClose As Boolean              '制訂表單私用變數 預設為 False
  3. Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  4.     MyClose = True                   '表單關閉: 變數=True
  5. End Sub
  6. Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean) ' ***表單關閉時也會觸動此程序
  7.     Dim Msg As String
  8.     If MyClose = True Then Exit Sub     '表單關閉後:MyClose=True
  9.     If IsDate(TextBox7) Then            '為日期
  10.         If Year(TextBox7) < 2012 Or Year(TextBox7) > 2018 Then
  11.             Msg = "日期須是 2012年-2018年"
  12.         Else
  13.             TextBox7 = Format(TextBox7, "YYYY/M/D")  '如 2013/2  ->2013/2/1
  14.         End If
  15.     Else                                '非為日期
  16.             Msg = "必須是日期  yyyy/m/d"
  17.     End If
  18.     If Msg <> "" Then
  19.         Cancel = True                    'Cancel = True 才會回到此控制項
  20.         MsgBox Msg
  21.         With TextBox7
  22.             .SelStart = 0                '從0 開始選擇
  23.             .SelLength = Len(.Text)      '選擇的字元數
  24.         End With
  25.     End If
  26. End Sub
複製代碼

作者: sammay    時間: 2012-1-16 08:44

回復 2# GBKEE
感謝大大回覆,萬分感謝!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)