• Hướng dẫn tạo form chỉ cho phép mở một số lần cố định
  • Hướng dẫn tạo form chỉ cho phép mở một số lần cố định

    Noname > 08-10-10, 07:42 PM

    Hướng dẫn này cho phép chúng ta tạo 1 form chỉ cho phép người dùng mở 5 lần.
    Có thể dùng ràng buộc người dùng phải đăng ký để dùng tiếp.

    ----------------------------------------------------------
    Tác giả và demo: Cafe Via He
    Site: http://thuthuataccess.com/forum
    Vui lòng giữ tên tác giả và site nếu bạn dùng hoặc chia sẻ code này.
    ------------------------------------------------
    Tạo 1 table tên là FormInfo(FormName,times)
    Formname: Text
    Times: number

    1 Form tên là demo
    Trong đó, vẽ 1 textbox tên là txtT để thể hiện số lần mở form. Các yếu tố màu mè khác. Form sẽ có dung nhan như sau
    [Hình: solanmoform.png]
    Trong sự kiện Openform, bạn dùng code sau:
    Mã:
    Private Sub Form_Open(Cancel As Integer)
    DoCmd.SetWarnings False
    Dim frm As String
    Dim t As Integer

        frm = DCount("formname", "Forminfo", "formname='" & Me.Name & "'")
        t = Nz(DLookup("times", "Forminfo", "formname='" & Me.Name & "'"), 0)
        
    If frm = 0 Then 'Neu form chua mo lan nao
        t = t + 1
        DoCmd.RunSQL "Insert into Forminfo(formname,times) values('" & Me.Name & "'," & t & ")"
        txtT = t    
    ElseIf frm > 0 And t < 5 Then 'Cong don so lan mo form
        t = t + 1
        DoCmd.RunSQL "Update FormInfo set Times =" & t
        txtT = t
    ElseIf frm > 0 And t = 5 Then ' Neu da mo form duoc 5lan
        MsgBox "This form was opened 5 times" & vbCrLf & vbCrLf & "Expired!!!"
        Cancel = True
    End If

    End Sub

    Và nếu form này mở quá 5 lần thì chương trình sẽ không cho mở form nữa!
    [Hình: exspire5lan.png]


    Demo Download

    Nếu bạn muốn mở form quá 5 lần thì chương trình tự thoát ra, bạn thay dòng
    Cancel=true
    Bằng dòng
    Docmd.quit
    Chúc thành công!

    Để thảo luận thêm về chủ đề này, mời vào topic:
    http://thuthuataccess.co.cc/forum/thread-273.html
  • RE: Hướng dẫn tạo form chỉ cho phép mở một số lần cố định

    haquocquan > 08-10-10, 11:08 PM

    Bài này rất hay.
    Mình sẽ vận dụng vào form LOGIN để chỉ cho sử dụng (dùng thử) một số lần nếu chưa được cấp phép. Cám ơn Noname và Cafe
  • RE: Hướng dẫn tạo form chỉ cho phép mở một số lần cố định

    no1blue > 10-12-10, 12:24 AM

    sao down file demo.rar về ko thấy j hết vậy
    đề nghị mấy huynh fix nha
  • RE: Hướng dẫn tạo form chỉ cho phép mở một số lần cố định

    Noname > 10-12-10, 12:27 AM

    Bạn đọc hướng dẫn khắc phục trên phần chú ý á! happy
  • RE: Hướng dẫn tạo form chỉ cho phép mở một số lần cố định

    hieuvn > 15-03-11, 05:18 PM

    Bạn viết code cho dùng thử 30 ngày như các phần mềm của Microsoft có được không? sorry mình hay hỏi cắc cớ ):
  • RE: Hướng dẫn tạo form chỉ cho phép mở một số lần cố định

    Noname > 15-03-11, 10:05 PM

    Mình sẽ trình bày trong một dịp khác! Việc đó cũng khá đơn giản!
    gợi ý trong khi chờ đợi. Bạn lưu kết quả đăng nhập vào registry (trong này có đó) hoặc 1 table. Lưu ngày đăng nhập.
    Sau đó lấy ngày hiện hành trừ đi, <30 thì tiếp, <30 thì tính tới license...
    Cái này đơn giản về lý thuyết, nhưng làm thì dài dòng nên mình lười! gom các thủ thuật trong này đủ để bạn làm điều đó!
  • RE: Hướng dẫn tạo form chỉ cho phép mở một số lần cố định

    huydungit19 > 22-04-11, 12:23 PM

    Chào bạn Noname
    cảm ơn bạn đã có gợi ý rất hay nên mình đã làm được rồi, nhưng mình hỏi bây giờ thay vì mình giới hạn bằng số lần mở form bằng đến ngày nào đó thì hết không được sử dụng nữa thì làm thế nào bạn hướng dẫn cho mình với, bạn cho mình code luôn nhé.
    Cảm own Noname Nhiều
    Chúc bạn luôn vui vẻ và hạnh phúc
  • RE: Hướng dẫn tạo form chỉ cho phép mở một số lần cố định

    vulhu06 > 17-04-14, 08:31 AM

    (22-04-11, 12:23 PM)huydungit19 Đã viết: Chào bạn Noname
    cảm ơn bạn đã có gợi ý rất hay nên mình đã làm được rồi, nhưng mình hỏi bây giờ thay vì mình giới hạn bằng số lần mở form bằng đến ngày nào đó thì hết không được sử dụng nữa thì làm thế nào bạn hướng dẫn cho mình với, bạn cho mình code luôn nhé.
    Cảm own Noname Nhiều
    Chúc bạn luôn vui vẻ và hạnh phúc

    Làm theo dạng định trước số lần mở thì mình nghĩ sẽ hay hơn là định đến ngày nào. Nếu người dùng chỉnh sửa ngày tháng trong hệ thống thì xem như vô hiệu
  • RE: Hướng dẫn tạo form chỉ cho phép mở một số lần cố định

    trunghieu > 17-04-14, 04:28 PM

    Nếu hẹn bằng ngày thì khi người khác chỉnh ngày hệ thống hoặc chỉnh thông tin ở table forminfo thì xem như vô hiệu rồi.
    Nếu hẹn bằng số lần mở thì mờ table forminfo chỉnh lại số lần mở về 0 hoặc thậm chí về -1000 thì mở thoải mái luôn.hihi
    Theo tôi lại có cách khác nữa, giả sử bạn có table chính để lưu dữ liệu cần thiết, bạn dùng hàm Dcount để đếm cái record của table này, và chỉ giới hạn cho người dùng lưu vào 1 số lượng nhất định. Quá số lượng đó thì form nhập, login hoặc form quan trọng nào đó không mở lên được thì xem như xong. Khi đó, nếu họ muốn mở vẫn mở thoải mái, nhưng mà xài thì không được do bị giới hạn về số lượng record phải nhập vào.
    Không biết cách này có nhược điểm nào không nữa.005
  • RE: Hướng dẫn tạo form chỉ cho phép mở một số lần cố định

    vulhu06 > 18-04-14, 10:53 AM

    (17-04-14, 04:28 PM)trunghieu Đã viết: Nếu hẹn bằng ngày thì khi người khác chỉnh ngày hệ thống hoặc chỉnh thông tin ở table forminfo thì xem như vô hiệu rồi.
    Nếu hẹn bằng số lần mở thì mờ table forminfo chỉnh lại số lần mở về 0 hoặc thậm chí về -1000 thì mở thoải mái luôn.hihi
    Theo tôi lại có cách khác nữa, giả sử bạn có table chính để lưu dữ liệu cần thiết, bạn dùng hàm Dcount để đếm cái record của table này, và chỉ giới hạn cho người dùng lưu vào 1 số lượng nhất định. Quá số lượng đó thì form nhập, login hoặc form quan trọng nào đó không mở lên được thì xem như xong. Khi đó, nếu họ muốn mở vẫn mở thoải mái, nhưng mà xài thì không được do bị giới hạn về số lượng record phải nhập vào.
    Không biết cách này có nhược điểm nào không nữa.005

    Đã thiết lập số lần mở cho form thì phải bảo mật form chứ? Sao lại để người dùng vọc vào table!
    Với lại mình nghĩ là sao lại hạn chế số record? trong khi phần mềm cho người ta xài thì phải linh động về số lượng record chứ