Hỏi về Sendkeys?

Thảo luận trong 'Ứng dụng Access' bắt đầu bởi HongViet, 2 Tháng mười hai 2005.

2,320 lượt xem

  1. HongViet

    HongViet Thành viên thân thiết

    Bài viết:
    286
    Đã được thích:
    10
    Nơi ở:
    Đà nẵng
    Tôi tổ chức làm 2 files, 1 dùng để chứa các bảng & truy vấn (gọi là DL), 1 gồm ~ phần còn lại (form, report . . .) (gọi là CT); Trước đây khi chưa gán Password vô DL thì macro tự động lấy dữ liệu vô CT = Autoexec; Nhưng sau khi gán rồi thì không biết cách nào tự động phần nhập Password khi mở form Autoexec; các bạn chỉ giúp mình với!:wall: :atom:
    Cảm ơn bác PaulSteigel (Mà Bác này là người Đức thì phải?!); Tôi sẽ thử & có gì nữa sẽ hỏi Bác tiếp.
     
    Last edited: 5 Tháng mười hai 2005
    #1
  2. paulsteigel

    paulsteigel Thành viên thân thiết

    Bài viết:
    103
    Đã được thích:
    0
    Nơi ở:
    Hoà Bình
    MS Access có chức năng link đến các bảng ở một cơ sở dữ liệu khác, việc này rất thuật tiện để các bạn có thể thực hiện việc quản lý CSDL dưới dạng Ứng dụng và CSDL riêng. Kết nối của Ứng dụng và CSDL sẽ thông qua các kết nối bảng trong chính Ứng dụng.
    Theo cách này chúng ta có thể xây dựng một form login theo đó người dùng phải khai báo mật khẩu và tên người dùng. Sau khi nhập vào các thông tin này, chúng ta kích hoạt một thủ tục tạo kết nối với CSDL (có thể tạo mới hoặc refresh link nếu đã có sẵn kết nối). Nếu không thành công thì không cho sử dụng.
    Về khoản này tôi gửi cho các bạn một đoạn mã nguồn thực hiện công việc tái tạo lại kết nối cho các liên kết bảng đến một csdl khác có mật khẩu nhé:
    '1. Cách gọi hàm:
    dbErr = RemapLinks(IIf(IsNull(txtPassword), "", txtPassword), dbPath)
    ' trong đó txtPassword là chuỗi mật khẩu, dbpath là đường dẫn đến file dữ liệu
    ' dbErr là biến trả lại lỗi kết nối nếu không thành công. Hàm remaplink sẽ thực hiện kiểm nghiệm các kết nối đã tồn tại trong Ứng dụng

    '2. Thủ tục thực hiện công việc
    Function RemapLinks(Optional PwdString As String = "", Optional tPath As String = "") As DatabaseErrors
    ' Thủ tục này sẽ thực hiện việc kiểm tra và khởi tạo lại kết nối dựa vào tên
    ' các liên kết đã có sẵn
    ' để dùng cái này, các bạn cần phải trỏ tham chiếu của ứng dụng vào DAO nhé
    Dim tdf As Object, TblName As String
    Err.Clear
    On Error GoTo ErrHandler
    For Each tdf In CurrentDb.TableDefs
    If InStr(tdf.Connect, ";DATABASE") <> 0 Then
    ' Đây là một liên kết
    If InStr(tdf.Name, "qry_") <> 0 Then
    ' Cái này không cần thiết - chỉ để kiểm tra cho mục đích của tớ thôi

    Else
    ' Tạo lại chuỗi kết nối nhé - các bạn có thể dùng cách này để tạo ra một kết nối ...
    tdf.Connect = "Ms Access;UID=Admin;PWD=" & PwdString & ";DATABASE=" & tPath
    'TblName = tdf.Connect
    ' Làm tươi lại kết nối bằng cái này
    tdf.RefreshLink
    End If
    End If
    Next
    Set tdf = Nothing
    Exit Function
    ErrHandler:
    RemapLinks = Err.Number
    'If Err.Number <> 0 Then WriteLog "RemarpLink", Err.Description
    ' this is my old code for logging error
    End Function

    Có gì các bạn cứ hỏi thêm nhé.
     
    #2

Chia sẻ trang này