-
Code để bảo vệ văn bản trừ các đoạn formfield
vuthaiha90 > 24-10-17, 12:11 PM
Chào các bác, em có 1 đoạn code thế này, bình thường chạy ok rồi, nhưng giờ người ta yêu cầu protect lại đoạn văn, trừ những đoạn đang formfield. Em có thêm dòng: ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True, Password:="123456" nhưng không thấy chạy. Code em đây, bác nào giúp em em sai ở đâu ạ:Ghi chú: Em có văn bản mẫu trắng tinh cần điền 1 vài thông tin khách hàng bên ngoài vào, sau khi dùng Doc.FormField xong Save As sang file Word mới để file trắng kia dùng cho lần sau. Còn file SaveAs thì muốn bảo vệ nó lại vì có các điều khoản cấm sửa. Hay là em phải bảo vệ file trắng kia, rồi mở khóa để điền thông tin rồi lưu lại với tên khác ạ. Các bác thấy em làm sai ở đâu ạ, cảm ơn các bác trướcMã PHP:Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim i As Long
Dim oApp As Object
Dim Doc As Object
Dim strDocName As String
Dim tblNoInDoc As Byte
Dim oWordTbl As Object
If Me.ComboLoaivay.Value = "Cho vay Kinh doanh" Then
temp = """"
Set oApp = CreateObject("Word.Application")
oApp.Visible = True
strDocName = """" & CurrentProject.Path & "\Word\TC\KD\NH" & "\07_Hop dong CV NH_tung lan ca nhan KD OK.doc" & """"
Set Doc = oApp.Documents.Add(strDocName)
Doc.FormFields("SoHDTDTC").Result = DLookup("SoHDTC", "T_infovayTC")
......
oApp.ActiveDocument.SaveAs Filename:="""" & CurrentProject.Path & "\Preview\TC" & "\" & "HDCV-KD" & "_" & DLookup("Nguoidaidien", "T_KH2") & "_" & Me.HDTDngayTCchu & ".doc" & """"
oApp.ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True, Password:="123456" '
Set oApp = Nothing
Else
....
End If
End Sub -
RE: Code để bảo vệ văn bản trừ các đoạn formfield
ongke0711 > 24-10-17, 01:17 PM
Sao bạn không sử dụng luôn công cụ của Word mà viết code chi cho mệt vậy.
Vô Menu Review, có cái tool "Restrict Editing" -> chọn "Editing Restrictions" -> click chọn checkbox "Allow only...." -> chọn "Filling in Form" -> "Start..."
Cách này nó sẽ khóa việc chỉnh sửa nội dung file Word ngoại trừ các FormFields.
Còn trong câu lệnh ở trên tôi nghĩ bạn thử đặt câu lệnh "Protect.." trước lệnh "Save as" xem như thế nào. -
RE: Code để bảo vệ văn bản trừ các đoạn formfield
vuthaiha90 > 24-10-17, 02:36 PM
(24-10-17, 01:17 PM)ongke0711 Đã viết:
Sao bạn không sử dụng luôn công cụ của Word mà viết code chi cho mệt vậy.
Vô Menu Review, có cái tool "Restrict Editing" -> chọn "Editing Restrictions" -> click chọn checkbox "Allow only...." -> chọn "Filling in Form" -> "Start..."
Cách này nó sẽ khóa việc chỉnh sửa nội dung file Word ngoại trừ các FormFields.
Còn trong câu lệnh ở trên tôi nghĩ bạn thử đặt câu lệnh "Protect.." trước lệnh "Save as" xem như thế nào.
Dạ thế cho em hỏi nếu mang chương trình này sang máy khác thì có phải lại Menu Review... nữa không ạ? nếu không chắc phải code. Mà em đặt đằng sau SaveAs vì đặt đằng trước em nghĩ ActiveDocument là nó hiểu file trắng chứ nhỉ -
RE: Code để bảo vệ văn bản trừ các đoạn formfield
ongke0711 > 24-10-17, 02:57 PM
(24-10-17, 02:36 PM)vuthaiha90 Đã viết: Dạ thế cho em hỏi nếu mang chương trình này sang máy khác thì có phải lại Menu Review... nữa không ạ? nếu không chắc phải code. Mà em đặt đằng sau SaveAs vì đặt đằng trước em nghĩ ActiveDocument là nó hiểu file trắng chứ nhỉ
Word phiên bản nào cũng có cái menu này chỉ khác cái tên chút thôi nên bạn đâu cầu set up lại, giống như bạn đặt mật khẩu cho file excel vậy thôi.
Bạn cứ test thử, tôi không có file này nên cũng ko test được. -
RE: Code để bảo vệ văn bản trừ các đoạn formfield
vuthaiha90 > 24-10-17, 03:34 PM
(24-10-17, 02:57 PM)ongke0711 Đã viết:
(24-10-17, 02:36 PM)vuthaiha90 Đã viết: Dạ thế cho em hỏi nếu mang chương trình này sang máy khác thì có phải lại Menu Review... nữa không ạ? nếu không chắc phải code. Mà em đặt đằng sau SaveAs vì đặt đằng trước em nghĩ ActiveDocument là nó hiểu file trắng chứ nhỉ
Word phiên bản nào cũng có cái menu này chỉ khác cái tên chút thôi nên bạn đâu cầu set up lại, giống như bạn đặt mật khẩu cho file excel vậy thôi.
Bạn cứ test thử, tôi không có file này nên cũng ko test được.
Vâng, em đặt xong câu hỏi quay ra thử đã thấy là đúng chỉ cần setup 1 lần. Bác xem viết code được không ạ, tại vì em thử khóa trước rồi nhưng đến đoạn chạy code bảng biểu, tức là thay đổi nội dung file trắng, thì nó không chạy được (không hoàn toàn cả văn bản là formfield, còn chỗ bảng biểu nữa ạ) -
RE: Code để bảo vệ văn bản trừ các đoạn formfield
ongke0711 > 24-10-17, 03:43 PM
Word chỉ có tính năng protect nội dung trừ Form fill thì bạn chỉ làm được đến đó. Sao bảng biểu bạn không làm dạng FormField luôn? không hiểu vụ bảng biểu cho lắm. -
RE: Code để bảo vệ văn bản trừ các đoạn formfield
vuthaiha90 > 30-10-17, 03:20 PM
(24-10-17, 03:43 PM)ongke0711 Đã viết: Word chỉ có tính năng protect nội dung trừ Form fill thì bạn chỉ làm được đến đó. Sao bảng biểu bạn không làm dạng FormField luôn? không hiểu vụ bảng biểu cho lắm.
Em xin lỗi, mấy nay em cũng thử các kiểu rồi, đặt trước, đặt sau. Rồi khóa luôn file trắng trước khi thêm formfield vào rồi đóng lại, nhưng vẫn không được, các bác xem code của em ở đây, em bị làm sai chỗ nào ạ? Em cảm ơn -
RE: Code để bảo vệ văn bản trừ các đoạn formfield
maidinhdan > 31-10-17, 12:25 AM
Bạn xem và tải Demo của chủ đề này (Tác giả Mặt Trời Ngủ quên)
[Help] Protect nhiều file Words theo đường dẫn động -
RE: Code để bảo vệ văn bản trừ các đoạn formfield
ongke0711 > 31-10-17, 11:32 AM
(30-10-17, 03:20 PM)vuthaiha90 Đã viết: Em xin lỗi, mấy nay em cũng thử các kiểu rồi, đặt trước, đặt sau. Rồi khóa luôn file trắng trước khi thêm formfield vào rồi đóng lại, nhưng vẫn không được, các bác xem code của em ở đây, em bị làm sai chỗ nào ạ? Em cảm ơn
- Ở cửa số code VBA, bạn phải luôn luôn thêm dòng: để kiểm tra có biến nào dư thừa hoặc câu lệnh viết sai.
Mã PHP:Option Compare Database
Option Explicit
- Bạn thêm thư viện Microsoft Word 1x.00 Object Library để dòng lệnh .Protect chạy được.
=> Sau khi thêm sẽ chạy OK. -
RE: Code để bảo vệ văn bản trừ các đoạn formfield
MTNQ > 06-11-17, 01:35 AM
(30-10-17, 03:20 PM)vuthaiha90 Đã viết: Em xin lỗi, mấy nay em cũng thử các kiểu rồi, đặt trước, đặt sau. Rồi khóa luôn file trắng trước khi thêm formfield vào rồi đóng lại, nhưng vẫn không được, các bác xem code của em ở đây, em bị làm sai chỗ nào ạ? Em cảm ơn
Bạn xem thử File mình đã sửa có đúng ý không nhé: Protect Word.rar
P/S: MTNQ mới up lại file, thay hàm Dir bằng FileSystemObject do hàm Dir không hỗ trợ tên file Tiếng Việt có dấu