Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Linh động chọn file word khi xuất
#1
Em có sưu tầm được 1 code trên diễn đàn và áp dụng vào công việc nhưng em gặp phải vấn đề là không thể linh động chọn file khi xuất. Bác nào có thể giúp em edit lại để có thể chọn file mẫu xuất linh hoạt theo ý muốn không ạ. Em muốn thay đường dẫn cố định này bằng đường dẫn linh hoạt ạ . "Set WordDoc = WordApp.Documents.Open(CurrentProject.path & "\WORD\YUCHAI\YUCHAI.doc")
"
Mã:
Private Sub YuChai_Click()
' First check whether data is filled or not
   If Nz(lsInvoice, "Null") = "Null" Then Exit Sub
   ' Access will try to pass selected data on a predefined word form by using this code snipset.
   ' Now initialize a Query builder so that Data corresponding to Listbox selection will be taken from database
   ' the query qry_paymentDetailLC contains all details of a valid request form for B/L endorsement... not do it.
   Dim rs As New ADODB.Recordset
   Dim SqlStr As String
   SqlStr = "Select * from Q_PhieuRO where RO='" & ro & "';"
   rs.Open SqlStr, CurrentProject.AccessConnection
   
   If rs.EOF Then
       MsgBox "There is no data for selected invoice..."
       GoTo ExitSub
   End If
   ' Now put data to word
   
   'initialize word
   Dim WordApp As Object
   Dim WordDoc As Object
   Set WordDoc = CreateWordDocument(WordApp)
   ' hide word away
   WordApp.Visible = True
   ' open the file now
   Set WordDoc = WordApp.Documents.Open(CurrentProject.path & "\WORD\YUCHAI\YUCHAI.doc")
   ' now prepare for replacing// remember the field name in word form
   
   ' these are example of using finding functions of word, such keywords must be unique
   '[DATE_DAY]/[DATE_MONTH]/[DATE_YEAR]
   '[LC_NUMBER]/[INVOICE_NUMBER]/[BILLED_CURRENTCY] [INVOICE_AMOUNT]/[COMMODITY]/[QUANTITY] [M_UNIT]
   ' For better and more systematic work, it is recommended that you should creat a table for
   ' cross-matching field name and word keyword.. but for this testing purpose - I just make this manually
   ' Field Name we will use for searching are:
   'NoLC, Goods, tbl_LC.HoldAmount, NoInvoice, Quanlity, AmountUSD,
   ' Declaration of variable
   Dim KeyWords As String, FieldName As String, i As Long
   KeyWords = "[SOMAY]/[LOAIXE]/[TENKH]/[DIACHI]/[SDT]/[KM]"
   FieldName = "SoMay/loaixe/TENKH/DIACHI/SDT/KM"
   
   'KeyWords = "[LC_NUMBER]/[INVOICE_NUMBER]/[BILLED_CURRENTCY]/[INVOICE_AMOUNT]/[COMMODITY]/[QUANTITY]/[M_UNIT]"
   'FieldName = "NoLC/NoInvoice/USD/AmountUSD/Goods/Quanlity/Unknown"
   
   Dim ArrayWord As Variant
   Dim ArrayField As Variant
   ArrayWord = Split(KeyWords, "/")
   ArrayField = Split(FieldName, "/")
   
   For i = LBound(ArrayWord) To UBound(ArrayWord)
       ReplaceField ArrayWord(i), Nz(rs.Fields(ArrayField(i)), ""), WordDoc
   Next
   
   ' post the date
   ReplaceField "[NGAYBAN]", Format(ngayban, "DD/MM/YYYY"), WordDoc
   ReplaceField "[NGAYNHAN]", Format(ngaynhan, "DD/MM/YYYY"), WordDoc
   ReplaceField "[MODEL]", Left(somay, 7), WordDoc
   
   ' save the word file and exit
   If Dir(CurrentProject.path & "\WORD\YUCHAI\" & "BDYUCHAI-TUHO-LAN00-" & Replace(somay, "*", "") & ".doc") <> "" Then Kill CurrentProject.path & "\WORD\YUCHAI\" & "BDYUCHAI-TUHO-LAN00-" & Replace(somay, "*", "") & ".doc"
   WordDoc.SaveAs CurrentProject.path & "\WORD\YUCHAI\" & "BDYUCHAI-TUHO-LAN00-" & Replace(somay, "*", "") & ".doc"
   
   MsgBox "A document was successfully created at: " & CurrentProject.path & "\WORD\YUCHAI\" & "BDYUCHAI-TUHO-LAN00-" & Replace(somay, "*", "") & ".doc", vbInformation
   
   'WordDoc.Close
   WordApp.Activate
   ' clean up memory
   Set WordDoc = Nothing
   Set WordApp = Nothing
ExitSub:
   rs.Close
End Sub
Chữ ký của tranhai_vn Xin chào, mình là tranhai_vn, Tham gia http://thuthuataccess.com/forum từ ngày 02-06 -12.
Reply
Những người đã cảm ơn
#2
Khi mở một file nào đó, cũng như bạn tìm đến nhà người bạn, bạn phải biết đường đi, số nhà, ...
Trong VD của bạn, CurrentProject.path & "\WORD\YUCHAI\YUCHAI.doc" thì có thể tạm dịch:

CurrentProject.path = Đường dẫn của tập tin hiện đang hoạt động (tập tin Acc của bạn)
WORD\YUCHAI = Các thư mục (từ cha đến con)
YUCHAI.doc = Tên tập tin (bao gồm cả phần mở rộng).

File YUCHAI.doc đương nhiên phải xác định (cố định, file mẫu) do bạn phải thiết đặt các Bookmark (hoặc KeyWords) để thay thế các thông tin khi xuất từ Acc sang Word.

Trường hợp, bạn muốn thay đổi "linh hoạt" thì chỉ thay đổi được đường dẫn đến file mẫu đó thôi (bạn tham khảo bài tự động link table, có hàm GetFile, fGetFileName để áp dụng nhé)
Chữ ký của cpucloi Tôi chỉ biết mỗi một điều là những điều tôi biết được còn quá ít 021


ღღღღღTài sản của cpucloi (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#3
Mình đã tạo 1 text box và 1 nút button sử dụng hàm getfile  Me![txtpath] = getFile("c:\", "Select File", "*.doc") 

Set WordDoc = WordApp.Documents.Open(CurrentProject.path & Forms![PhieuRO].[txtpath])
Nếu giá trị textbox  là  \Word\Yuchai\YUCHAI.doc thì xuất bình thường

Set WordDoc = WordApp.Documents.Open(Forms![PhieuRO].[txtpath])
Nếu giá trị textbox  là  D:\KhoDV\Word\Yuchai\YUCHAI.doc thì báo lỗi.

Bác chỉ điểm sáng hộ mình với
Chữ ký của tranhai_vn Xin chào, mình là tranhai_vn, Tham gia http://thuthuataccess.com/forum từ ngày 02-06 -12.
Reply
Những người đã cảm ơn
#4
Cám ơn Bác cpucloi Mình làm được rồi 
Chữ ký của tranhai_vn Xin chào, mình là tranhai_vn, Tham gia http://thuthuataccess.com/forum từ ngày 02-06 -12.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
Photo [Hỏi] Thiết kế Forms và xuất reports nguyendung886249 1 47 8 Giờ trước
Bài mới nhất: nguyendung886249
  [Help] Ẩn menu bar khi chạy file access 2003 trong access 2010 bằng lăng 0 181 31-08-18, 05:03 PM
Bài mới nhất: bằng lăng
  Chọn kho theo điều kiện mã hàng feeling 2 299 22-04-18, 09:55 AM
Bài mới nhất: ongke0711
  Liên kết ra file word anhduyks1 0 315 05-12-17, 11:16 PM
Bài mới nhất: anhduyks1
  Nên khởi động ứng dụng như thế nào cho hiệu quả? lehongduc 0 386 16-11-17, 10:01 AM
Bài mới nhất: lehongduc

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line