hoàn chỉnh code lưu thông tin

Liên hệ QC

vanquangdy

Thành viên chính thức
Tham gia
29/10/08
Bài viết
65
Được thích
4
xin chào các bạn mình đã làm được form thu chi viện phí gần hoàn chỉnh rồi, nhưng mình chỉ vướng ở chỗ là khi mình nhập dữ liệu nếu chưa đầy đủ các thông tin theo yêu cầu thì nó sẽ báo Mgsbox của thông tin đó, khi mình bấm OK thì số phiếu sẽ mất và phải làm lại từ đầu. Nay mình muốn là khi lỡ chưa nhập đầy đủ thông tin nào thì chỉ báo thông tin đó và bắt buộc phải nhập đầy đủ xong mới cho lưu dữ liệu và số phiếu vẫn giữ nguyên, số phiếu chỉ thay đổi khi nhấn tạo phiếu mới thôi. Xin các bạn trên diễn đàn chỉ giúp mình với, mình rất cần để đưa vào sử dụng trong năm 2011. Cám ơn các bạn trước nha.
 

File đính kèm

  • File gui GPE.xls
    93.5 KB · Đọc: 22
Bạn nói là sắp hoàn chỉnh nhưng mình chưa thấy nó hoạt động ra sao cả. Nếu không lầm thì mình đã tham gia với bạn về vấn đề này rồi. Nhưng nay bạn hỏi và ý bạn muốn gọi trực tiếp từng đối tượng kiểm tra nên mình trả lời theo ý bạn
Bạn nên đối chiếu đoạn code sau với code của bạn
Mã:
Private Sub CmdLuu1_Click()
   On Error Resume Next
 
 If txtSoPhieu = "" Then
    MsgBox "Ban chua chon so phieu"
    txtSoPhieu.SetFocus
    Exit Sub
    
ElseIf TxtHoten = "" Then
    MsgBox "Ban chua dien Ho & ten benh nhan"
   TxtHoten.SetFocus
   Exit Sub
   
ElseIf Cbdiachi = "" Then
    MsgBox "Ban chua chon dia chi"
   Cbdiachi.SetFocus
   Exit Sub
ElseIf Cbkhoa = "" Then
    MsgBox "Ban chua chon khoa dieu tri"
    Cbkhoa.SetFocus
     Exit Sub
   
ElseIf Cbnoidung = "" Then
    MsgBox "Ban chua chon Noi dung thu - chi"
    Cbnoidung.SetFocus
     Exit Sub
    
ElseIf txtSoTien = "" Then
    MsgBox "Ban chua dien So tien"
    txtSoTien.SetFocus
     Exit Sub
Else
If oPT = True And Left(txtSoPhieu, 2) = "PT" Then
    Sheet3.[A65536].End(xlUp).Offset(1) = txtSoPhieu
Else
    Sheet3.[B65536].End(xlUp).Offset(1) = txtSoPhieu
End If
    'Them mot so cau lenh can thiet cua ban
CmdLuu1.Enabled = True: CmdTaoPhieu.Enabled = True: txtSoPhieu = ""
     End If

End Sub

Một lần nữa, nếu là mình sẽ không viết thế này.
 
Upvote 0
Còn đây là Code theo ý kiến của mình
Mã:
Private Sub CmdLuu1_Click()
   On Error Resume Next
   Dim tendt(), tb()
 tendt = Array("txtSoPhieu", "TxtHoten", "Cbdiachi", "Cbkhoa", "Cbnoidung", "txtSoTien")
 tb = Array(" chon so phieu", " dien ho ten benh nhan", " chon dia chi", _
 " chon khoa dieu tri", " noi dung thu - chi", " dien so tien")
 For i = 0 To 5
 If Trim(Me.Controls(tendt(i))) = "" Then
 MsgBox "Ban chua" & tb(i)
 Me.Controls(tendt(i)).SetFocus
 Exit Sub
 End If
 Next
If oPT = True And Left(txtSoPhieu, 2) = "PT" Then
    Sheet3.[A65536].End(xlUp).Offset(1) = txtSoPhieu
Else
    Sheet3.[B65536].End(xlUp).Offset(1) = txtSoPhieu
End If
    'Them mot so cau lenh can thiet cua ban
CmdLuu1.Enabled = True: CmdTaoPhieu.Enabled = True: txtSoPhieu = ""
End Sub
 
Upvote 0
Mình cảm ơn bạn sealand trước nha, công việc cuối năm nhiều quá nên mình chưa thử được có gì bạn giúp mình thêm nha
 
Upvote 0
Còn đây là Code theo ý kiến của mình
Mã:
Private Sub CmdLuu1_Click()
   On Error Resume Next
   Dim tendt(), tb()
 tendt = Array("txtSoPhieu", "TxtHoten", "Cbdiachi", "Cbkhoa", "Cbnoidung", "txtSoTien")
 tb = Array(" chon so phieu", " dien ho ten benh nhan", " chon dia chi", _
 " chon khoa dieu tri", " noi dung thu - chi", " dien so tien")
 For i = 0 To 5
 If Trim(Me.Controls(tendt(i))) = "" Then
 MsgBox "Ban chua" & tb(i)
 Me.Controls(tendt(i)).SetFocus
 Exit Sub
 End If
 Next
If oPT = True And Left(txtSoPhieu, 2) = "PT" Then
    Sheet3.[A65536].End(xlUp).Offset(1) = txtSoPhieu
Else
    Sheet3.[B65536].End(xlUp).Offset(1) = txtSoPhieu
End If
    'Them mot so cau lenh can thiet cua ban
CmdLuu1.Enabled = True: CmdTaoPhieu.Enabled = True: txtSoPhieu = ""
End Sub

Theo em thì dùng vòng lặp duyệt qua tất cả các control là Texbox hoặc Combobox nếu cái nào trống thì bắt lỗi, dừng lại.

Mã:
Dim ctr As Control
For Each ctr In Me.Controls
   If TypeName(ctr) = "TextBox" Or TypeName(ctr) = "ComboBox" Then
     If Len(ctr.Value) = 0 Then
        MsgBox "Vui long dien du lieu vao : " & ctr.Name
        ctr.SetFocus
        Exit Sub
     End If
   End If

Next
'........
 
Lần chỉnh sửa cuối:
Upvote 0
Theo em thì dùng vòng lặp duyệt qua tất cả các control là Texbox hoặc Combobox nếu cái nào trống thì bắt lỗi, dừng lại.

Mã:
Dim ctr As Control
For Each ctr In Me.Controls
   If TypeName(ctr) = "TextBox" Or TypeName(ctr) = "ComboBox" Then
     If Len(ctr.Value) = 0 Then
        MsgBox "Vui long dien du lieu vao : " & ctr.Name
        ctr.SetFocus
        Exit Sub
     End If
   End If

Next
'........
Nó chỉ phù hợp hiện thời thôi còn sau này thêm hàng loạt nữa mà không cần kiểm tra thì sao
 
Upvote 0
Web KT
Back
Top Bottom