Chào mừng đến với Diễn đàn Dân Kế Toán - Kế toán tổng hợp thực tế.
Trang 2 của 3 Đầu tiênĐầu tiên 123 CuốiCuối
Kết quả 11 đến 20 của 21
  1. #11
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Đặt password cho Front End bằng VB

    Thanks bác, nhưng em có bảo em mở cái ChangePass để đổi pass cho cái Front End mà cái Front End không đóng đâu. Cái nút trên Front End có tác dụng mở cai ChangePass ra rồi quit luôn cái Front End mà.
    Như thế em có toàn quyền đổi pass Front End.
    Bác có cách đơn giản hơn không.
    Thanks mọi người.

  2. #12
    Ngày tham gia
    Aug 2015
    Bài viết
    30
    Ðề: Đặt password cho Front End bằng VB




    Trích dẫn Gửi bởi glasseggs
    Thanks bác, nhưng em có bảo em mở cái ChangePass để đổi pass cho cái Front End mà cái Front End không đóng đâu. Cái nút trên Front End có tác dụng mở cai ChangePass ra rồi quit luôn cái Front End mà.
    Như thế em có toàn quyền đổi pass Front End.
    Bác có cách đơn giản hơn không.
    Thanks mọi người.
    Chờ thêm xíu nữa đi bác, sắp xong theo yêu cầu của bác rồi :xinloinhe:
    Bác cứ yêu cầu khó thế làm em phải vất vả ghê cơ.
    Chiều nay sẽ có đáp án cho bác.

  3. #13
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: Đặt password cho Front End bằng VB




    Trích dẫn Gửi bởi chip2006
    Chờ thêm xíu nữa đi bác, sắp xong theo yêu cầu của bác rồi :xinloinhe:
    Bác cứ yêu cầu khó thế làm em phải vất vả ghê cơ.
    Chiều nay sẽ có đáp án cho bác.
    :runcamcap:

    Hi, thanks bác trước nhé .
    :k5429592:

  4. #14
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Đặt password cho Front End bằng VB




    Trích dẫn Gửi bởi glasseggs
    :runcamcap:
    Hi, thanks bác trước nhé .
    :k5429592:
    Em đi thẳng vào vấn đề như vậy nè:
    Có 3 cách mở 1 database access:

    1. Mở từ giao diện tương tác trực tiếp access:
    Vào File/Open, chọn file.
    Với cách mở này bác có thể open 1 form lên để nhập liệu

    2. Mở từ lệnh shell của VBA
    call shell (AccessPath + ' ' + DataPath + 1 vài thông số command line nếu cần thiết)

    Tuy nhiên chia buồn sâu sắc đến các access DB nào có cài password dạng database password

    3. Mở từ giao diện lập trình VBA
    Khởi tạo đối tượng: Access.Application
    Set AccApp = New Access.Application
    Mở DB:
    AccApp.OpenCurrentDatabase "DataPath",True,"Database Password"
    Tham số thứ 2 = True là mở theo phương thức Exclusive, ngược lại mở theo share DB.

    Tuy nhiên chia buồn sâu sắc đến việc mở cái form change password, vì mở theo phương thức này thì bó tay trong việc thực hiện nhập liệu ngoại trừ việc gọi hàm InputBox.


    Có hướng rồi. he he....

    Bây giờ có 2 cách thiết kế như sau:

    Cách 1: Muốn mở cái Form cho người dùng nhập old và new pass, chỉ có thể dùng ứng dụng khác ngoài access, VB6 chẳng hạn

    Cài đoạn lệnh sau vào để đổi pass:

    Dim accObj as Object
    Set accObj = CreateObject("Access.Application")
    accObj.OpenCurrentDatabase "DataPath",True,"oldPassword"
    accObj.CurrentDb.NewPassword "oldPassword","newPassword"
    accObj.CloseCurrentDatabase


    Lưu ý: Sẽ có một vài lỗi phát sinh ở đây trong trường hợp data đó đang được mở bởi luồng khác thì ko đổi pass được.
    Tại đây bác nên dùng bẫy lỗi rồi sáng tạo như thế nào tùy bác.

    Cách xử lý:

    Từ access, gọi lệnh shell để mở ứng dụng này lên
    Sau đó gọi Application.Quit để thoát ứng dụng Access.

    Cách 2: Dùng ứng dụng access

    Từ access ứng gọi file access changePass

    Dim accObj as New Access.Application
    accObj.OpenCurrentDatabase "DataPath",False,"Password"
    accObj.DoCmd.OpenForm("Formbatky có gắn timer để gọi lệnh đổi pass", acNormal)
    Application.Quit
    'Thoat khoi ung dung để thực hiện việc đổi Pass cho nó.
    Lúc này ứng dụng thoát nhưng vẫn có 1 ứng dụng khác đang mở file changePass, muốn thấy nó vào TaskManager xem thì có.

    Câu hỏi đặt ra ở đây là làm sao để nhập oldpass và newpass, phải nhờ vào InputBox thôi.

    Như vậy trong file changePass phải thiết kế 1 Form, Form này thiết lập timer để nó luôn lặp kiểm tra tình trạng file kia đã thực sự dành riêng cho nó chưa.

    Trong sự kiện OnTime
    Dim oldPass As String
    Dim newPass As String
    oldPass = InputBox("Nhap old pass")
    newPass = InputBox("Nhap new pass")

    Set accObj = New Access.Application
    accObj.OpenCurrentDatabase "DataPath",True,oldPass
    accObj.CurrentDb.NewPassword oldPass,newPass
    accObj.CloseCurrentDatabase


    Nhớ bắt lỗi để kiểm tra chắc chắn rằng việc đổi pass phải thành công, nếu thành công thì gọi accObj.Quit ngược lại hiển thị câu thông báo cho biết và gọi accObj.Quit, xong rồi chờ cho Ontime kế tiếp.

    Ah`, lần đổi đầu tiên ko bao giờ thành công vì cái file mình đang mở, vì vậy phải chờ đến lệnh quit xong và ontime lần 2 thực hiện thì mới ok.

    Bác sẽ ko thấy cái ứng dụng nào dưới thanh taskbar, nhưng vẫn có các Message hiện lên yêu cầu bác nhập oldpass và newpass

  5. #15
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: Đặt password cho Front End bằng VB

    Chú chip nói cái mấy vụ open form này về nguyên tắc là tạm OK, nhưng nó hổng có giống cái ý của bạn glasseggs là từ Front end, có cái nút, mở cái access khác để change pass cho cái front end.

    Cho rằng là trước khi change đã cho quit cái front end rồi, nhưng khi mở cái access mới, thì cái access này có thể chỉ chứa 1 form duy nhất để change pass thôi. Và cái ******* form của nó chính là cái form change pass này để khi thằng access thứ hai nó run thì cái form changepass nhảy ra luôn.

    Lúc đó, hãy để cho người ta nhập cái old pass, và 2 cái pass mới (new pass và confirm pass). Sau khi người ta nhấn nút Change thì mới bắt đầu làm:

    Mở cái front end bằng old pass. Nếu error thì báo lỗi cho người ta biết, bắt người ta nhập lại.
    Nếu mở được rồi thì sau đó so 2 cái new pass và confirm pass. Nếu 2 cái này match với nhau thì cho đổi pass. Không thì báo lỗi.

    Công việc là thế, bạn glasseggs tự chế code cho mình sao cho phù hợp.

  6. #16
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Đặt password cho Front End bằng VB




    Trích dẫn Gửi bởi phatnq2002
    Chú chip nói cái mấy vụ open form này về nguyên tắc là tạm OK, nhưng nó hổng có giống cái ý của bạn glasseggs là từ Front end, có cái nút, mở cái access khác để change pass cho cái front end.

    Cho rằng là trước khi change đã cho quit cái front end rồi, nhưng khi mở cái access mới, thì cái access này có thể chỉ chứa 1 form duy nhất để change pass thôi. Và cái ******* form của nó chính là cái form change pass này để khi thằng access thứ hai nó run thì cái form changepass nhảy ra luôn.

    Lúc đó, hãy để cho người ta nhập cái old pass, và 2 cái pass mới (new pass và confirm pass). Sau khi người ta nhấn nút Change thì mới bắt đầu làm:

    Mở cái front end bằng old pass. Nếu error thì báo lỗi cho người ta biết, bắt người ta nhập lại.
    Nếu mở được rồi thì sau đó so 2 cái new pass và confirm pass. Nếu 2 cái này match với nhau thì cho đổi pass. Không thì báo lỗi.

    Công việc là thế, bạn glasseggs tự chế code cho mình sao cho phù hợp.
    Cái đỏ đỏ em có hướng dẫn mở Access từ 1 Access đó bác:

    Đây nè bác:
    Cách 2: Dùng ứng dụng access

    Từ access ứng gọi file access changePass

    Dim accObj as New Access.Application
    accObj.OpenCurrentDatabase "DataPath",False,"Password"
    accObj.DoCmd.OpenForm("Formbatky có gắn timer để gọi lệnh đổi pass", acNormal)
    Application.Quit 'Thoat khoi ung dung để thực hiện việc đổi Pass cho nó.

    Việc gọi Form ChangePass từ đây hay thiết lập ******* từ bên kia là tương đương.

    Nhưng khi gọi Access ChangePass lên thì cài dòng code Application.Quit nó chưa thực thi, vì vậy bên kia phải dùng Timer để tách luồng xử lý ra. Lúc đầu khi đổi pass chắc chắn ko được vì cái front end chưa quit được. Khi sự kiện Ontime xảy ra đầu tiên chắc chắn sẽ nhận được lỗi: Bạn ko thê đổi pass cho 1 data shared. <-- Toàn bộ code đang xảy ra bên ChangePasss, kết thúc sự kiện Ontime trả về code ngay tại dòng lệnh Application.Quit của Front End.

    Lúc này Front End mới hoàn toàn Quit, và ChangePass vẫn trường trú trên bộ nhớ để chờ Ontime kế tiếp để hiển thị InputBox nhập vào các thông số cần thiết.

    Trên kia em cũng có nhấn mạnh rằng, không thể mở giao diện 1 Form Access cho người dùng nhập liệu thông qua Access.Application được, vì vậy mới dùng đến hạ sách cuối cùng là InputBox.

    PS. Nếu em là người viết theo yêu cầu của bác chủ topic, em ko dùng Access Open Access mà viết 1 cái bằng VB6 cho nó khoẻ :xinloinhe:

  7. #17
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: Đặt password cho Front End bằng VB

    Nói chung là thế. :xinloinhe:
    Nhưng mà nói riêng thì không thích làm như thế bao giờ.
    Vì như chú chip nói, nó liên quan đến xử lý thread, mà cái này thì Access No OK.
    Thôi, tốt nhất là khỏi đổi chi cho nó mệt. :runcamcap:

  8. #18
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Đặt password cho Front End bằng VB




    Trích dẫn Gửi bởi phatnq2002
    Nói chung là thế. :xinloinhe:
    Nhưng mà nói riêng thì không thích làm như thế bao giờ.
    Vì như chú chip nói, nó liên quan đến xử lý thread, mà cái này thì Access No OK.
    Thôi, tốt nhất là khỏi đổi chi cho nó mệt. :runcamcap:
    Ơ ơ, rốt cục làm cho đã rồi bác quyết là khỏi cần đổi pass, hay nhở :giandu:
    Nói cho vui thôi chứ mấy cái vụ này bây giờ nó bẻ xả láng cả rồi, phòng người ngay chứ ko phòng nổi kẻ gian :runcamcap:

    Hem biết mình thuộc xì tai nào nhỉ?

  9. #19
    Ngày tham gia
    Dec 2015
    Bài viết
    2
    Ðề: Đặt password cho Front End bằng VB




    Trích dẫn Gửi bởi chip2006
    Nói cho vui thôi chứ mấy cái vụ này bây giờ nó bẻ xả láng cả rồi, phòng người ngay chứ ko phòng nổi kẻ gian
    Cái này hoàn toàn chính xác. Bản thân file Access nói riêng và các file Office nói chung đã cài pass người ta cũng chí cần chưa tới...1phút đã mở được pass của nó rồi, thậm chi` cả pass của VBA trong file
    Các phần mềm bị ***** cũng là thế
    Thân

  10. #20
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Đặt password cho Front End bằng VB




    Trích dẫn Gửi bởi chip2006
    Ơ ơ, rốt cục làm cho đã rồi bác quyết là khỏi cần đổi pass, hay nhở :giandu:
    Nói cho vui thôi chứ mấy cái vụ này bây giờ nó bẻ xả láng cả rồi, phòng người ngay chứ ko phòng nổi kẻ gian :runcamcap:

    Hem biết mình thuộc xì tai nào nhỉ?
    Nói cho công bằng, thẳng thắn là: anh Phật thuộc cả hai. :xinloinhe:
    Còn chú chip thuộc sì-tai nào thì tùy.

    Khóa kiểu nào, xì-cu-ra-ty cỡ nào cũng bị chơi mà. Hãy nhìn mấy đại gia kìa, bị bẻ tùm lum. Mà soft của người ta là soft xịn, soft của mình (cá nhân anh Phật thôi, không dám nói của người khác) là soft ghẻ. Soft xịn còn không đỡ nổi, thì huống chi mấy cái soft ghẻ.

 

 
Trang 2 của 3 Đầu tiênĐầu tiên 123 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •