Xem trước tài liệu trong Microsoft Access Form
Phạm vi dự án
Gần đây, chúng tôi đã thêm một trung tâm tài liệu vào một dự án cho phép người dùng đính kèm các tài liệu như pdf, word, txt và hình ảnh vào một dự án. Ngoài ra, họ sẽ có một quy trình tự động được thiết lập để đọc các email đến và lưu các tệp đính kèm trong email vào ổ đĩa mạng. Mục đích là cho phép người dùng xem các tài liệu mới đã được nhận và lưu chúng vào đúng vị trí. Tất nhiên, chúng tôi sẽ quản lý quá trình trích xuất thông tin như chủ đề và tài liệu đến từ ai để cho phép người dùng hiểu thông tin chung của tài liệu và thông tin này sẽ được lưu vào một bảng. Ngoài ra, người dùng cần có thể xem tài liệu để đọc nội dung của nó.
Giải pháp
Tất nhiên, chúng tôi có thể khởi chạy các ứng dụng khác từ quyền truy cập để xem tài liệu từ trong Word và pdf trong Adobe Acrobat, v.v. Tuy nhiên, khi người dùng chỉ có một màn hình để làm việc, điều này có nghĩa là chuyển từ ứng dụng này sang ứng dụng khác và nếu có nhiều loại tài liệu thì của điều này có nghĩa là mở nhiều ứng dụng. Do đó, chúng tôi đã cung cấp một giải pháp đơn giản để khởi chạy tài liệu ở dạng truy cập mới với bố cục tab cho phép người dùng dễ dàng quản lý hệ thống. Trong ví dụ dưới đây, tôi đang sử dụng mã sẽ đọc tệp từ một đường dẫn nhất định mà người dùng sẽ cần truy cập trên máy tính của họ. Ngoài ra, nếu tài liệu được lưu vào bảng SQL, chúng tôi có thể sửa đổi mã để tạm thời lưu tài liệu vào ổ đĩa cục bộ và khởi chạy tệp từ vị trí tạm thời. Nếu bạn sử dụng phương pháp này, bạn cũng muốn bao gồm mã bổ sung để xóa tệp tạm thời sau khi xem / đóng biểu mẫu.
Biểu mẫu
Biểu mẫu được cung cấp sẽ được khởi chạy thông qua đường dẫn tài liệu trong OpenArgs
DoCmd.OpenForm "frmDocumentReview", OpenArgs:= Me.DocumentPath
Mã khi tải xác minh rằng đường dẫn đã được truyền và cả tệp có tồn tại hay không. Nếu tất cả đều tốt, quá trình sẽ tiếp tục.
Private Sub Form_Load() If IsNull(Me.OpenArgs) Then MsgBox "No document to show", , "Path not specified" Exit Sub Else If Not FSO.FileExists(Me.OpenArgs) Then MsgBox "Your computer does not have access to the named file. You need to download the file to view it." Exit Sub Else Showdocument OpenArgs End If End If End Sub
Cuối cùng mã tải tài liệu. Showdocument phụ sẽ quản lý các loại tài liệu khác nhau. Hầu hết các loại tài liệu sử dụng trường hợp khác. Bản thân biểu mẫu có một hộp văn bản ẩn được gọi là txtPath nơi lưu trữ giá trị của OpenArgs (Tên tệp và đường dẫn), đây có thể là một ổ đĩa được ánh xạ hoặc UNC. Đối tượng trình duyệt web lưu trữ =[txtPath] làm nguồn điều khiển. Tuy nhiên, các tài liệu word không hoạt động giống nhau, và trước tiên bạn cần lưu tài liệu dưới dạng html. Tôi đã sử dụng một phương pháp do Crystal Long viết ban đầu và thực hiện một số thay đổi nhỏ.
Private Sub Showdocument(strPath As String) Dim strExt As String Dim sPathFileHTML As String Dim oWordApp As Object Dim oDoc As Object strExt = GetFileExt(strPath) Select Case strExt Case "docx" 'save word doc as HTML sPathFileHTML = CurrentProject.Path & "\temp.html" Set oWordApp = CreateObject("Word.Application") Set oDoc = oWordApp.Documents.Open(strPath) oDoc.SaveAs2 FileName:=sPathFileHTML, FileFormat:=8 'wdFormatHTML oDoc.Close False oWordApp.Quit Set oDoc = Nothing Set oWordApp = Nothing Case Else sPathFileHTML = strPath End Select 'open in browser control Me.txtPath.Value = sPathFileHTML End Sub