-
Thông báo dữ liệu đã tồn tại
thanhtruong > 27-06-16, 08:00 PM
Chào mọi người!
Mình có from nhập liệu Họ tên và Số bảo hiểm y tế của người đó.
Mình muốn khi bấm nút "NEW" để thêm một lượt khám mới rồi bấm họ tên và số BHYT,
Tiếp tục bấm nút "LƯU" thì hiện một thông báo
" Bệnh nhân này đã khám cách đây 3 ngày, bạn có muốn cho khám để hưởng BHYT"
yes thì lưu bệnh này, còn No thì không lưu bệnh này.
* Lưu ý: "3 ngày hay 10 hay 15 hay 100 ngày" ở đây được tính từ lần khám gần nhất đến ngày hiện tại.
Xin hỏi có cách nào không ạ? -
RE: Thông báo dữ liệu đã tồn tại
ongke0711 > 27-06-16, 08:34 PM
Bạn dùng Dmax thử xem. Tìm ra ngày gần nhất sau đó dùng hàm DateDiff để tìm số ngày đến hiện tại.
VD:
NgayKhamTruoc=Dmax("NgayKham","Table phiếu khám","Mã bệnh nhân=" & Me.cboMaBenhNhan)
If NgayKhamTruoc >0 Then
SoNgay=DateDiff("d", NgayKhamTruoc, Date())
Else
Msgbox "Khám lần đầu"
End if -
RE: Thông báo dữ liệu đã tồn tại
thanhtruong > 27-06-16, 10:12 PM
(27-06-16, 08:34 PM)ongke0711 Đã viết: Bạn dùng Dmax thử xem. Tìm ra ngày gần nhất sau đó dùng hàm DateDiff để tìm số ngày đến hiện tại.
VD:
NgayKhamTruoc=Dmax("NgayKham","Table phiếu khám","Mã bệnh nhân=" & Me.cboMaBenhNhan)
If NgayKhamTruoc >0 Then
SoNgay=DateDiff("d", NgayKhamTruoc, Date())
Else
Msgbox "Khám lần đầu"
End if
Hiểu sơ sơ. nhưng chưa biết áp dụng.
Mình có
+ "table 1" chứa 3 trường Họ tên, số BHYT, ngày khám
+ "from 1" chứa nguồn là "table 1", có các nút lệnh THÊM/ XÓA/ LƯU/ KHÔNG
Hôm nay mình THÊM mới 1 bệnh số bảo hiểm là DN010121315623 thì báo là "khám lần đầu"
Ngày mai thêm lại và bấm LƯU thì nó báo "đã khám cách đây 1 ngày"
Lay hoay mãi không hiểu làm thế nào -
RE: Thông báo dữ liệu đã tồn tại
ongke0711 > 27-06-16, 11:35 PM
- Nếu bạn dựa vào mã thẻ BHYT thì tôi sợ nó cũng không phải là duy nhất để phân biệt bênh nhân vì nếu đổi cty thì mã thẻ BHYT cũng đổi, mua bảo hiểm tự nguyện hình như cũng thay đổi. Do vậy nếu gặp trường hợp mới đổi thẻ BHYT thì ứng dụng sẽ báo là "mới khám lần đầu" ngay.
- Nếu dùng mã thẻ BHYT thì hàm Dmax bạn đổi lại chút.
--------------------------
Private cmdLuu_Click()
Dim NgayKhamTruoc As Date, SoNgay As Integer
NgayKhamTruoc=Dmax("NgayKham","Table1","[MaBHYT] = '" & Me.txtMaBHYT & "'")
If Not IsNull(NgayKhamTruoc) Then
SoNgay=DateDiff("d", NgayKhamTruoc, Date())
Msgbox "Da kham cach day " & SoNgay & " ngay!", vbInformation, "Thong bao"
...
Else
Msgbox "Khám lần đầu"
...
End if
End Sub -
RE: Thông báo dữ liệu đã tồn tại
zinzin8x > 28-06-16, 07:02 PM
Ongke nói đúng rồi. số thẻ nó còn thay đổi theo năm nữa. tốt nhất là bạn quản lý theo số CMT như vậy thì không có lẫn thằng nào được. và áp dụng code của Ongke là hoàn toàn chính xác. -
RE: Thông báo dữ liệu đã tồn tại
thanhtruong > 02-07-16, 02:27 PM
(28-06-16, 07:02 PM)zinzin8x Đã viết: Ongke nói đúng rồi. số thẻ nó còn thay đổi theo năm nữa. tốt nhất là bạn quản lý theo số CMT như vậy thì không có lẫn thằng nào được. và áp dụng code của Ongke là hoàn toàn chính xác.
vậy thì mình áp dụng vào chứng minh thư vậy! để mình làm xong úp demon lên cho mọi người xem thử được chưa -
RE: Thông báo dữ liệu đã tồn tại
cpucloi > 03-07-16, 09:55 AM
Mai nó thay đổi thành số định danh rồi, chuyển từ 9 số thành 12 số bạn à. -
RE: Thông báo dữ liệu đã tồn tại
cpucloi > 03-07-16, 10:34 AM
Hj, ongke0711
Đấy là mình trả lời thanhtruong và zinzin8x mà
Với giải pháp kiểm tra và tránh trùng dữ liệu, bạn nên kiểm tra một số dữ liệu như Họ và tên, Ngày sinh, Giới tính ... (VD thế) xem có trùng không thì có thông báo. -
RE: Thông báo dữ liệu đã tồn tại
thanhtruong > 21-07-17, 08:11 PM
(27-06-16, 11:35 PM)ongke0711 Đã viết: - Nếu bạn dựa vào mã thẻ BHYT thì tôi sợ nó cũng không phải là duy nhất để phân biệt bênh nhân vì nếu đổi cty thì mã thẻ BHYT cũng đổi, mua bảo hiểm tự nguyện hình như cũng thay đổi. Do vậy nếu gặp trường hợp mới đổi thẻ BHYT thì ứng dụng sẽ báo là "mới khám lần đầu" ngay.
- Nếu dùng mã thẻ BHYT thì hàm Dmax bạn đổi lại chút.
--------------------------
Private cmdLuu_Click()
Dim NgayKhamTruoc As Date, SoNgay As Integer
NgayKhamTruoc=Dmax("NgayKham","Table1","[MaBHYT] = '" & Me.txtMaBHYT & "'")
If Not IsNull(NgayKhamTruoc) Then
SoNgay=DateDiff("d", NgayKhamTruoc, Date())
Msgbox "Da kham cach day " & SoNgay & " ngay!", vbInformation, "Thong bao"
...
Else
Msgbox "Khám lần đầu"
...
End if
End Sub
Mình đã áp dụng code này mà nó bị lỗi khi thêm mới một người rồi bấm nút "kiểm tra"
Và "khám lần đầu" cũng không thông báo lên được
Xem lại giùm mình với!
Link demo Luu&thongbaotrung
P/s: Hiện tại mình lấy "HọTên" làm điều kiện trùng lặp, Khi nào mình biết rỏ cái nào là đúng (CMND hay Số định danh tên thẻ căn cước hay Số BHYT) thì mình chỉnh hàm lại.