Access
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Access

CÁCH THỨC:Chạy các tác vụ đã lên lịch với Microsoft Access

Bạn đã bao giờ muốn chạy một số mã Access theo lịch tự động chưa?

Tôi sẽ chỉ cho bạn cách sử dụng ứng dụng Access hiện có để chạy và thoát một cách duyên dáng khi được khởi chạy qua Trình lập lịch tác vụ trong khi vẫn hiển thị giao diện người dùng thân thiện khi được khởi chạy bởi người dùng cuối.

Chìa khóa để làm cho nó hoạt động là /cmd cờ.

Chuyển Args dòng lệnh để truy cập

Để chuyển đối số dòng lệnh để truy cập, bạn sử dụng /cmd đối số dòng lệnh khi khởi chạy ứng dụng của bạn:

Chỉ định rằng những gì tiếp theo trên dòng lệnh là giá trị sẽ được trả về bởi Lệnh hàm số. Tùy chọn này phải là công tắc cuối cùng trên dòng lệnh. Bạn có thể sử dụng dấu chấm phẩy (;) thay thế cho / cmd .

Sử dụng công tắc này để chỉ định đối số dòng lệnh có thể được sử dụng trong mã Visual Basic for Applications (VBA)

Để truy xuất văn bản bạn chuyển trên dòng lệnh sau /cmd đối số, bạn sử dụng VBA.Command hàm số.

Bạn có thể sử dụng chức năng này khi khởi động để chuyển hướng mã của mình để thực hiện bất kỳ tác vụ định kỳ nào.

Ví dụ thực tế

  1. Tạo cơ sở dữ liệu mới
  2. Thêm mã sau vào mô-đun tiêu chuẩn mới:
Public Function Startup()
    
    If Trim(VBA.Command) = "Nightly" Then
        Shell "winver", vbNormalFocus
        Application.Quit
    End If
    MsgBox "Start up"
   
End Function
  1. Tạo một macro mới
  2. Chọn " RunCode "từ menu thả xuống" Thêm hành động mới "
  3. Đặt "Tên hàm" thành Startup()
  4. Đóng và lưu macro dưới dạng " AutoExec "

Chạy với tư cách người dùng bình thường

Để kiểm tra ứng dụng như một người dùng bình thường, chỉ cần thu gọn và sửa chữa cơ sở dữ liệu.

Bạn sẽ thấy một hộp thông báo có nội dung "Khởi động".

Chạy như một tác vụ đã lên lịch

Để bắt chước đang chạy như một tác vụ đã lên lịch, hãy đóng cơ sở dữ liệu của bạn và khởi chạy nó bằng lệnh sau:

"C:\Path\To\msaccess.exe" "C:\Path\To\MyDb.accdb" /cmd Nightly

Access sẽ nhấp nháy nhanh trên màn hình, sau đó bạn sẽ thấy hộp thoại "Giới thiệu về Windows" và Access sẽ tự đóng.

Một số lưu ý

  • AutoExec là một macro đặc biệt chạy tự động khi khởi động
  • Mặc dù Startup() quy trình không trả về giá trị nào, chúng tôi khai báo nó dưới dạng Function vì chúng tôi không thể gọi trực tiếp một Sub từ một macro trong Access
  • Trong điều kiện sử dụng bình thường, mã cửa sổ cmd bị bỏ qua
  • Tôi gọi Application.Quit một cách rõ ràng bên trong khối "Hàng đêm" của tôi để tránh Quyền truy cập bị treo trên mã yêu cầu tương tác của người dùng (chẳng hạn như mã MsgBox trong ví dụ của tôi)
  • Tôi luôn gọi Trim() xung quanh VBA.Command chức năng để tránh các lỗi được giới thiệu bởi khoảng trắng đầu hoặc cuối trên dòng lệnh
  • Thay thế cho /cmd , bạn cũng có thể sử dụng /x chuyển đổi và chuyển cho nó tên của macro tùy chỉnh ( Tôi không làm điều đó vì tôi ghét macro với niềm đam mê của hàng nghìn mặt trời nóng trắng; hai macro duy nhất tôi từng sử dụng là AutoexecAutokeys vì chúng cung cấp chức năng đặc biệt )

Lưu ý cuối cùng về Bộ lập lịch tác vụ và Tự động hóa các ứng dụng Office khác

Nếu tác vụ của bạn dường như không hoạt động khi bạn đặt nó chạy qua đêm, hãy thử chuyển tùy chọn tác vụ đã lên lịch thành "Chỉ chạy khi người dùng đã đăng nhập".

Các ứng dụng Office không nhằm mục đích chạy ở chế độ mà Windows gọi là "không tương tác". Nếu bạn đặt một tác vụ đã lên lịch thành "Chạy cho dù người dùng có đăng nhập hay không", thì tác vụ đó sẽ chạy ở chế độ không tương tác. Điều này có thể gây ra nhiều sự cố, đặc biệt nếu bạn đang tự động hóa Excel như một phần của quy trình lặp lại.

Giải pháp đơn giản nhất là khóa máy trạm thay vì đăng xuất và để tùy chọn được đặt thành "Chỉ chạy khi người dùng đã đăng nhập".

Điều đó có thể không thực tế trong tình huống của bạn, nhưng đó là một cân nhắc quan trọng cần lưu ý. Hãy xem xét bản thân đã được cảnh báo:

Microsoft hiện không khuyến nghị và không hỗ trợ Tự động hóa các ứng dụng Microsoft Office từ bất kỳ thành phần hoặc ứng dụng khách không được giám sát, không tương tác nào


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm kiếm Cơ sở dữ liệu Microsoft SQL Server cho dữ liệu được lưu trữ

  2. Kết nối PHP trên Linux với Microsoft Access trên Windows Share

  3. Doanh nghiệp của bạn có cần cơ sở dữ liệu nhân sự không?

  4. 5 lý do tại sao bạn cần một cơ sở dữ liệu tốt

  5. Cách khắc phục sự cố 10 sự cố thường gặp khi truy cập 2019