GaDauBac > 26-01-21, 07:33 PM
(25-01-21, 11:32 PM)tranthanhan1962 Đã viết: Cái này làm demo sẽ hơi khó. Vì thư mục khác nhau sẽ cho ra kết quả khác nhau. Mình sẽ hướng dẫn cho bạn bằng hình ảnh. Nhưng mình sẽ lấy thư mục LoiReport của bạn gửi đặt vào ổ D:\ nên đường dẫn các tập tin sẽ là D:\LoiReport\... Khi về máy của bạn thì bạn sửa lại theo đường dẫn theo thư mục của mình.
Trước tiên bạn mở file HD.doc là tập tin hợp đồng gốc ra
Chọn Mailings / Select Recipients / Use an Existing List ...,
Luc này xuất hiện giao diện Select Data Source.
Tìm đến file nguồn Test.accdb
Khi xuất hiện giao diện select table thì chọ query qInHD. Vì query này chỉ lọc những hóa đơn sẽ in còn nếu chọn table tbKhachHang sẽ in tất cả các hóa đơn
Sử dụng Insert Merge Field để chèn các trường tương ứng vào hóa đơn
Chọn Start Mail Merge để trộn thư
Việc tạo thư trộn chắc bạn đã biết nên tôi không nhắc lại.
Sau khi tạo xong chỉ thực hiện lệnh in.
Đây là thư đã được trộn
Đoạn mã của button chỉ có nhiệm vụ mở tập tin mail merge HD.doc từ trong access mà không cần phải trở ra windows explore dể mở tâp tin HD.doc (mặc dù sử dụng cách thủ công này vẫn được).
Vây là xong! Chúc bạn thành công
tranthanhan1962 > 26-01-21, 07:57 PM
tranthanhan1962 > 27-01-21, 03:15 PM
GaDauBac > 27-01-21, 04:43 PM
(27-01-21, 03:15 PM)tranthanhan1962 Đã viết: Không như access hay excel, word là loại tập tin chỉ đọc, vì vậy nó sẽ không cập nhật dữ liệu nguồn khi thay đổi giá trị mà nó đòi bạn phải chọn lại data source vv. và vv... Điều này cũng gây phiền phức cho người sử dụng. Nhưng cái gì cũng có cách của nó. Bạn cũng có thể tạo macro trong word để assign phím tắt thực hiện các thao tác trên khi mở word chỉ cần bấm phim tắt nó sẽ cập nhật lại đúng giá trị bạn chọn trong access.
Lưu ý. Trước khi mở word bạn cũng cần refresh form để nó cập nhật lại giá trị query. Tôi nói thêm điều này bởi vì trên form bạn gửi qua chỉ thấy bạn chép đoạn mã mở tập tin word mà không thấy lệnh Me.Refresh trước lệnh mở word. Do đó query không nhận được giá trị mới khi bạn thay đổi ở form
ongke0711 > 27-01-21, 06:11 PM
(27-01-21, 12:34 PM)GaDauBac Đã viết: Mình cứ tưởng khi mở hợp đồng ra thì nó merge đúng dòng đã được chọn trên form. Vậy cũng không khả thi lắm nhỉ.
GaDauBac > 28-01-21, 01:09 PM
(27-01-21, 06:11 PM)ongke0711 Đã viết:(27-01-21, 12:34 PM)GaDauBac Đã viết: Mình cứ tưởng khi mở hợp đồng ra thì nó merge đúng dòng đã được chọn trên form. Vậy cũng không khả thi lắm nhỉ.
Tôi trích xuất từ file của tôi để làm demo cho bạn việc xuất Table sang file Word mẫu.
Link: https://drive.google.com/file/d/1e5jmrTl...sp=sharing
ongke0711 > 28-01-21, 01:29 PM
(28-01-21, 01:09 PM)GaDauBac Đã viết: Cảm ơn ongke0711 thật nhiều, xin cho hỏi anh 1 câu là trước đó file HD trong template thì mình đã dùng Mail Merge của Word trộn cho nó rồi đúng không anh. Vì còn nhiều field chưa trộn anh ạ nên hỏi kỹ anh để tìm hiểu và nếu mình chứa dữ liệu trong 1 Query được không anh?
GaDauBac > 29-01-21, 11:13 AM
(28-01-21, 01:29 PM)ongke0711 Đã viết:(28-01-21, 01:09 PM)GaDauBac Đã viết: Cảm ơn ongke0711 thật nhiều, xin cho hỏi anh 1 câu là trước đó file HD trong template thì mình đã dùng Mail Merge của Word trộn cho nó rồi đúng không anh. Vì còn nhiều field chưa trộn anh ạ nên hỏi kỹ anh để tìm hiểu và nếu mình chứa dữ liệu trong 1 Query được không anh?
File HD.docx mẫu trong folder Template thì không dùng dạng Mail merge mà dùng Insert Field vào nhưng vị trí cần chèn thông tin (text) lấy từ Table Access. Bạn xem video của bạn maidinhdan trong link bài trước có hướng dẫn chèn Field đó.
Bạn double-click vào cái khung text màu xám sẽ hiển thị hộp thoại "Insert from field" để thiết lập thông số cho nó.
- Chú ý nhập tên Field trong Bookmark (Word) trùng với tên Field của Table Access để tiện cho code trong VBA.
- Dữ liệu lấy từ Query cũng được, cách nào gọn, tối ưu là được rồi. Trong bài demo tôi không dùng query mà dùng câu lệnh SQL để lấy dữ liệu trong code VBA luôn, khỏi tạo thêm 1 cái query nữa trong ngăn Query.
ongke0711 > 29-01-21, 01:18 PM
(29-01-21, 11:13 AM)GaDauBac Đã viết: Cảm ơn anh nhiều! nhưng khi mình tạo 1 Query để thực hiện thì field "IN" (yes/no) không click chọn được, Query gồm tblkhachhang và tblthongtinHD có quan hệ 1-1 (là MaKH và MaHD)
https://www.mediafire.com/file/vssddzxiz...D.rar/file
File ở đây chưa sửa code để chạy cho query ạ.