ongke0711 > 21-07-17, 09:23 PM
thanhtruong > 21-07-17, 09:37 PM
ongke0711 > 21-07-17, 10:16 PM
thanhtruong > 22-07-17, 12:01 AM
ongke0711 > 22-07-17, 12:12 AM
ongke0711 > 22-07-17, 12:17 AM
(22-07-17, 12:01 AM)thanhtruong Đã viết: Đã chỉnh lại chạy rất ok,
Link demo 2
Chạy một lát thì phát hiện lỗi, lỗi ở chổ số ID khám gần nhất, nếu ngày 15/7/2017 nhập tên A với mã ID là 53
đến ngày 21/7/2017 nhập lại tên A với mã ID là 57, thì báo "đã khám cách đây 6 ngày, mã ID là 53" thì đúng
Nhưng cũng ngày đó nhập thêm tên A với số ID 58 thì báo "đã khám cách đây 0 ngày, mã ID là 53" ??????
đúng ra số ID ở đây là 57 mới đúng chứ?
thanhtruong > 27-07-17, 06:50 PM
(22-07-17, 12:17 AM)ongke0711 Đã viết: Còn đối với cái lỗi Dlookup sai số id là do bạn không đưa vào đủ điều kiện cho nó.
--------------------------------------------------
NgayKhamTruoc = DMax("Ngay", "Thongtin", "[hoten] = '" & Me.txthoten & "'")
masokham = DLookup("id", "thongtin", "[hoten] = '" & Me.txthoten & "' AND [Ngay] =#" & NgayKhamTruoc & "#")
---------------------------------------------------
ongke0711 > 28-07-17, 06:21 PM
(27-07-17, 06:50 PM)thanhtruong Đã viết:(22-07-17, 12:17 AM)ongke0711 Đã viết: Còn đối với cái lỗi Dlookup sai số id là do bạn không đưa vào đủ điều kiện cho nó.
--------------------------------------------------
NgayKhamTruoc = DMax("Ngay", "Thongtin", "[hoten] = '" & Me.txthoten & "'")
masokham = DLookup("id", "thongtin", "[hoten] = '" & Me.txthoten & "' AND [Ngay] =#" & NgayKhamTruoc & "#")
---------------------------------------------------
Khi đưa công thức này vào thì ok, nhưng khi thêm bệnh mới toanh, chưa khám lần nào thì báo lỗi ngay lập tức.
vì sao? vì ngày = ngày khám trước, mà ngày khám trước chưa có thì báo lỗi.
vậy khắc phục sao đây? xin Anh cho ý kiến. Cảm ơn ạh
NgayKhamTruoc = DMax("Ngay", "Thongtin", "[hoten] = '" & Me.txthoten & "'")
If Not IsNull(NgayKhamTruoc) Then
SoNgay = DateDiff("d", NgayKhamTruoc, Date)
masokham = Nz(DLookup("id", "thongtin", "[hoten] = '" & Me.txthoten & "' AND [Ngay] =#" & Format(NgayKhamTruoc, "mm/dd/yyyy") & "#"), "")
'MsgBox "Da kham cach day " & SoNgay & " ngay!", vbInformation, "Thông báo"'
MsgBoxUni TCVN3toUNICODE(" §· kh¸m c¸ch ®©y ") & SoNgay & " ngày !" & TCVN3toUNICODE(" S« ID BÖnh Nh©n tríc ®ã lµ: ") & masokham, vbInformation, "Thông báo"
Else
MsgBoxUni TCVN3toUNICODE("Kh¸m lÇn ®Çu")
End If
If Me.Dirty Then
If MsgBox("ban co muon luu hay khong?", _
vbYesNo + vbQuestion, "Save Changes") = vbNo Then
Me.Undo
End If
End If
If Len(Trim(Me.gio.Value) & “”) = 0 And Len(Trim(Me.ngay.Value) & “”) = 0 Then
Me.gio = Time
Me.ngay = Date
DoCmd.Save
Else
DoCmd.Save
Me.Refresh
End If
Me.phantramgiam = Me.txtphantram
'Chay doan code kiem tra benh nhan moi/cu?'
Sub KiemTraBenhNhanMoi()
Dim NgayKhamTruoc As Variant, SoNgay As Integer
Dim masokham As String
NgayKhamTruoc = DMax("Ngay", "Thongtin", "[hoten] = '" & Me.txthoten & "'")
If Not IsNull(NgayKhamTruoc) Then
SoNgay = DateDiff("d", NgayKhamTruoc, Date)
masokham = Nz(DLookup("id", "thongtin", "[hoten] = '" & Me.txthoten & "' AND [Ngay] =#" & Format(NgayKhamTruoc, "mm/dd/yyyy") & "#"), "")
'MsgBox "Da kham cach day " & SoNgay & " ngay!", vbInformation, "Thông báo"'
MsgBoxUni TCVN3toUNICODE(" §· kh¸m c¸ch ®©y ") & SoNgay & " ngày !" & TCVN3toUNICODE(" S« ID BÖnh Nh©n tríc ®ã lµ: ") & masokham, vbInformation, "Thông báo"
Else
MsgBoxUni TCVN3toUNICODE("Kh¸m lÇn ®Çu")
End If
End Sub
Private Sub cmdLuuKetHopKiemTra_Click()
If Me.Dirty Then
If MsgBox("ban co muon luu hay khong?", _
vbYesNo + vbQuestion, "Save Changes") = vbNo Then
Me.Undo
Exit Sub
End If
End If
KiemTraBenhNhanMoi
If Len(Trim(Me.gio.Value) & “”) = 0 And Len(Trim(Me.ngay.Value) & “”) = 0 Then
Me.gio = Time
Me.ngay = Date
DoCmd.RunCommand acCmdSaveRecord
Else
DoCmd.Save
DoCmd.RunCommand acCmdSaveRecord
Me.Refresh
End If
Me.phantramgiam = Me.txtphantram
End Sub
Private Sub cmdKiemTra_Click()
KiemTraBenhNhanMoi
End Sub
thanhtruong > 29-07-17, 08:29 AM
(22-07-17, 12:12 AM)ongke0711 Đã viết: Một góp ý khác cho bạn về việc tìm kiếm bệnh nhân có dữ liệu hay chưa.
Theo cách tôi làm thì sẽ thiết kế thêm một nút tìm kiếm trên form bên cạnh ô nhập [Họ Tên]. Sau khi nhập Tên -> bấm nút tìm kiếm -> sẽ hiện form Tìm kiếm liệt kê danh sách những người có trùng Tên vừa nhập. Trên form Tìm Kiếm này sẽ có nhưng textbox để nhập các điều kiện tìm kiếm như: Ngày sinh, số CMND, số BHYT v.v.. -> Nếu trùng Tên bạn sẽ nhập tiếp ngày sinh (hoặc trường khác) để lọc tiếp -> Nếu không có thì sẽ là “Nhập mới”, nếu có xuất hiện trong danh sách thì bạn chỉ cần click chọn (hoặc double-click) vào người này để tự động điền mã id bệnh nhân vào phiếu khám cho nhanh.
ongke0711 > 29-07-17, 09:34 AM
(29-07-17, 08:29 AM)thanhtruong Đã viết: Nhưng em chỉ làm đến được bước tìm được bệnh liệt kê ở danh sách bên dưới, còn nạp lại dữ liệu đó cho một lượt khám mới thì không làm được.
Nến mới mò tiếp phương pháp cũ, trước mắt em sẽ đọc tiếp bài trên, rồi nghiên cứu cách này.
Xin cảm ơn Anh nhiều.