• Thông báo dữ liệu đã tồn tại
  • 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

    ongke0711 > 03-07-16, 10:13 AM

    (03-07-16, 09:55 AM)cpucloi Đã viết: Mai nó thay đổi thành số định danh rồi, chuyển từ 9 số thành 12 số bạn à.

    Bạn có nhầm với số CMND không?
    Mã thẻ BHYT 2016 là 4 ô, 15 ký tự mà.
    Có thể có thông tư mới tôi chưa biết  007
  • 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.