• Câu lệnh kiểm tra các giá trị tại Form không được trống
  • Câu lệnh kiểm tra các giá trị tại Form không được trống

    Đình Phán > 10-06-22, 09:45 AM

    Chào các anh,

    Em có vấn đề này mong các anh giúp.

    1. Em muốn viết 1 đoạn VBA để kiểm tra các textbox trong form Header đã được nhập hay chưa. Nếu chưa nhập thì thoát Thủ tục
    2. Chạy 1 thủ tục khác, để nhập số liệu vào sub form , lấy giá trị đang có tại 1 textbox của form Header để gán vào sub form

    Em cảm ơn.

    Private Sub Command57_Click()
        If [Forms]![fmTraHeader]![Ma_Phieu_Tra].Value = "" Then
            MsgBox "Ban chua nhap Ma Phieu Tra", vbOKOnly, "Thong bao"
            Exit Sub
        Else
            DoCmd.OpenForm "fmTTPhieuMuon1", acViewNormal
        End If
    End Sub
  • RE: Câu lệnh kiểm tra các giá trị tại Form không được trống

    AnNguyen > 10-06-22, 11:37 AM

    (10-06-22, 09:45 AM)Đình Phán Đã viết: Chào các anh,

    Em có vấn đề này mong các anh giúp.

    1. Em muốn viết 1 đoạn VBA để kiểm tra các textbox trong form Header đã được nhập hay chưa. Nếu chưa nhập thì thoát Thủ tục
    2. Chạy 1 thủ tục khác, để nhập số liệu vào sub form , lấy giá trị đang có tại 1 textbox của form Header để gán vào sub form

    Em cảm ơn.

    Private Sub Command57_Click()
        If [Forms]![fmTraHeader]![Ma_Phieu_Tra].Value = "" Then
            MsgBox "Ban chua nhap Ma Phieu Tra", vbOKOnly, "Thong bao"
            Exit Sub
        Else
            DoCmd.OpenForm "fmTTPhieuMuon1", acViewNormal
        End If
    End Sub

    Mình thường làm theo cách là đặt tên Tag cho textbox để xác định giá trị có phải kiểm tra hay không. Và Controltooltip để làm tên hiển thị
    Sau đó sử dụng vòng lặp để check hết textbox trong form xem được nhập chưa.
    Mã:
    Function Check_Input(frm As Form, Tag_Name As String) As Boolean
        On Error Resume Next ' neu loi thi van chay va tra ve thong bao
        Dim t As Control
          For Each t In frm.Controls
              If t.ControlType = acTextBox Then
                  If (t.Tag = Tag_Name) Then ' gia tri truyen vao
                      If IsNull(t) Or t = "" Then
                          MsgBox t.ControlTipText & " ddang bor troosng"
                          t.SetFocus
                          Check_Input = True
                          Exit For
                      End If
                  End If
              End If
          Next t
    End Function
  • RE: Câu lệnh kiểm tra các giá trị tại Form không được trống

    Đình Phán > 10-06-22, 12:30 PM

    (10-06-22, 11:37 AM)AnNguyen Đã viết: Mình thường làm theo cách là đặt tên Tag cho textbox để xác định giá trị có phải kiểm tra hay không. Và Controltooltip để làm tên hiển thị
    Sau đó sử dụng vòng lặp để check hết textbox trong form xem được nhập chưa.
    Mã:
    Function Check_Input(frm As Form, Tag_Name As String) As Boolean
        On Error Resume Next ' neu loi thi van chay va tra ve thong bao
        Dim t As Control
          For Each t In frm.Controls
              If t.ControlType = acTextBox Then
                  If (t.Tag = Tag_Name) Then ' gia tri truyen vao
                      If IsNull(t) Or t = "" Then
                          MsgBox t.ControlTipText & " ddang bor troosng"
                          t.SetFocus
                          Check_Input = True
                          Exit For
                      End If
                  End If
              End If
          Next t
    End Function

    Cảm ơn anh AnNguyen,

    Trong trường hợp em không muốn duyệt qua tất cả các textbox của form, do một số textbox không phải là bắt buộc.
    Em có sửa lại như vậy

    Function Check_Input(frm As Form, Tag_Name As String) As Boolean

    On Error Resume Next ' neu loi thi van chay va tra ve thong bao
    Dim txt As Control
        If (txt.Tag = Tag_Name) Then ' gia tri truyen vao
            If IsNull(txt) Or txt = "" Then
                MsgBox txt.ControlTipText & "ban chua nhap du lieu", , "Thong bao"
                txt.SetFocus
                Check_Input = True
            End If
        End If
    End Function

    Đồng thời khi gọi Hàm ra thì bị báo lỗi

    Private Sub Command57_Click()
        If Check_Input(Me, Ma_Phieu_Tra) = True And Check_Input(Me, Ngay_Tra) = True And Check_Input(Me, Nguoi_Tra) = True And Check_Input(Me, Don_Vi) = True And Check_Input(Me, Thu_Kho) = True Then
            Exit Sub
        Else
            DoCmd.OpenForm "fmTTPhieuMuon1", acViewNormal
        End If
    End Sub

    Anh xem giúp em với