Xuân Thanh > 14-04-19, 12:14 PM
Xuân Thanh > 15-04-19, 12:35 PM
vuthaiha90 > 16-04-19, 11:32 AM
(14-04-19, 12:14 PM)Xuân Thanh Đã viết: Dùng Mail Merge thì một File Word đã chứa cả một đống file kèm theo rồi còn gì nữa mà phải mở nhiều file? Mỗi khách hàng là một trang riêng biệt với các thông tin kèm theo của KH đó. Không hiểu bạn làm Mail Merge kiểu gì nữa. HjxHình như em có chút loạn 1 tý, bác nói mới nhớ ra là nếu là kết hợp giữa excel và word khi trộn thì bao nhiêu người dữ liệu đi nữa thì tý ra kết quả cuối cũng là 1 file word. Tự nhiên em lú lẫn. Có phải do code trên đoạn SaveAs nằm trong vòng lặp nên trước khi sang record mới nó lưu lại khách hàng đó là 1 file word bác nhỉ
(15-04-19, 12:35 PM)Xuân Thanh Đã viết: Tôi có xem qua đoạn code của bạn. Chính vì bạn dùng phương thức Add nên mỗi lần mở là nó mở file mới, Sửa lại bằng phương thức Open xem saoEm có thử chuyển sang open vẫn vậy ạ
Xuân Thanh > 16-04-19, 03:46 PM
Private Sub cmdPrint_Click()
'Nho chon Microsof Word xxx Object Libary
On Error GoTo Loi
Dim oWord As Word.Application
Dim oWdoc As Word.Document
Dim strData As String
Dim FileWord As String
strData = CurrentProject.Path & "\" & CurrentProject.Name
FileWord = CurrentProject.Path & "\ThongTin.doc"
Set oWord = New Word.Application
Set oWdoc = oWord.Documents.Open(FileWord)
With oWdoc.MailMerge
.MainDocumentType = wdFormLetters
.OpenDataSource Name:=strData, SQLStatement:="SELECT * FROM [qryThongTin]"
End With
oWord.WindowState = wdWindowStateMaximize
oWord.Visible = True
oWord.ActiveDocument.Save
Set oWdoc = Nothing
Set oWord = Nothing
Exit Sub
Loi:
oWord.Quit
Set oWord = Nothing
Set oWdoc = Nothing
Exit Sub
End Sub
vuthaiha90 > 16-04-19, 06:21 PM
(16-04-19, 03:46 PM)Xuân Thanh Đã viết: 1/ Tạo file Word có tên ThongTin.doc đặt cùng thư mục với file Access
2/ Tạo một query có tên là qryThongTin chứa tất cả các thông tin liên quan cần điền vào file ThongTin.doc
3/ Mở file ThongTin.doc
3.1/ Vào Tools ==> Letters and Mailings ==> Mail Merge để mở hộp thoại trộn thư
3.2/ Chọn Letters ở Step 1, nhấn Next
3.3/ Chọn User the current document, nhân Next
3.4/ Nhấp nút Browse để mở hộp thoại chọn nguồn dữ liệu, Đây là bước quan trọng nhất, nếu bỏ qua sẽ gây lỗi
3.5/ Trong hộp thoại chọn nguồn dữ liệu nhấn nút New Source...
3.6/ Trong hộp thoại mới chon dòng ODBC DSN, nhấn Next
3.7/ Tiếp theo chọn MS Access Database, nhấn Next
3.8/ Dò tìm và chọn file mdb trong máy nhấn OK
3.9/ Chọn qryThongTin trong hộp thoại tiếp theo, nhấn Next
3.10/ Nhấn Fiinish, Nhấn Yes khi có thông báo
3.11/ Chèn các Fields vào đúng vị trí mong muốn
4/ Tạo một cmdPrint trong form cần thực hiện lệnh mở file Word rồi chèn đoạn code này vô
Mã:Private Sub cmdPrint_Click()
'Nho chon Microsof Word xxx Object Libary
On Error GoTo Loi
Dim oWord As Word.Application
Dim oWdoc As Word.Document
Dim strData As String
Dim FileWord As String
strData = CurrentProject.Path & "\" & CurrentProject.Name
FileWord = CurrentProject.Path & "\ThongTin.doc"
Set oWord = New Word.Application
Set oWdoc = oWord.Documents.Open(FileWord)
With oWdoc.MailMerge
.MainDocumentType = wdFormLetters
.OpenDataSource Name:=strData, SQLStatement:="SELECT * FROM [qryThongTin]"
End With
oWord.WindowState = wdWindowStateMaximize
oWord.Visible = True
oWord.ActiveDocument.Save
Set oWdoc = Nothing
Set oWord = Nothing
Exit Sub
Loi:
oWord.Quit
Set oWord = Nothing
Set oWdoc = Nothing
Exit Sub
End Sub
Lưu ý nhớ chọn thư viện Word xxx Object Libary
' ---------------------------------
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
'----------------------------------
Xuân Thanh > 17-04-19, 10:02 AM
(16-04-19, 06:21 PM)vuthaiha90 Đã viết: Em thêm 1 đoạn này vào:
với đoạn dưới em save thành saveas.Mã PHP:' ---------------------------------
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
'----------------------------------
Em cảm ơn bác