Minh Tiên > 14-07-13, 11:21 AM
paulsteigel > 14-07-13, 12:01 PM
Minh Tiên > 14-07-13, 01:00 PM
Minh Tiên > 15-07-13, 03:18 PM
paulsteigel > 15-07-13, 10:08 PM
Trích dẫn:Mình muốn xuất một số trường trong 1 hoặc nhiều table ra một hoặc một số cell trong Excel. Ví dụ:Nếu bạn muốn làm những điều trên thì nên áp dụng cách tiếp cận khác. Bởi những lẽ sau:
1.Xuất trường TenKH trong tblDanhsachkhachhang ra Cell A12;
2.Xuất trường Doanhso trong tblDoanhthu ra cell C12;
3. ...
Mình định mỗi trường cần xuất gọi: ExAcEx ... một lần. Ko biết còn cách nào khác gọn hơn không, Nhờ các sư huynh chỉ giúp.
Minh Tiên > 16-07-13, 10:23 AM
(15-07-13, 10:08 PM)paulsteigel Đã viết: ... Vì mỗi lần xuất, có vẻ như bạn chỉ lấy 1 mẫu tin, vậy hãy thu thập hết các mẫu tin cần xuất ra 1 mảng 2 chiều trong Access đã trong đó lưu giá trị cần xuất và địa chỉ ô cần xuất tới. Sau đó mới chuyển đến thủ tục kết nối với Excel và chuyển giá trị lần lượt theo vòng lặp.
paulsteigel > 16-07-13, 11:30 PM
(16-07-13, 10:23 AM)tmtien261 Đã viết:(15-07-13, 10:08 PM)paulsteigel Đã viết: ... Vì mỗi lần xuất, có vẻ như bạn chỉ lấy 1 mẫu tin, vậy hãy thu thập hết các mẫu tin cần xuất ra 1 mảng 2 chiều trong Access đã trong đó lưu giá trị cần xuất và địa chỉ ô cần xuất tới. Sau đó mới chuyển đến thủ tục kết nối với Excel và chuyển giá trị lần lượt theo vòng lặp.
Rất cảm ơn ý kiến của bạn. Mình cũng đã nghĩ đến việc gom các mẫu tin vào 1 table rồi nhưng "không nghĩ đến" cách đưa địa chỉ cần xuất ra vào table luôn để khi truy xuất được liên tục, tránh kết nối nhiều lần.
Mình sẽ thử. Nếu No OK sẽ hỏi tiếp.
Thanks !
Minh Tiên > 18-07-13, 05:18 PM
paulsteigel > 18-07-13, 05:53 PM
(18-07-13, 05:18 PM)tmtien261 Đã viết: Nhờ bạn: "paulsteigel" giúp vấn đề iên quan đến việc xuất dữ liệu từ Acc sang Ms Word nhé:Đây chính là một ví dụ mình viết đã lâu cho một bạn ở đâu đó trong Nam, bạn hãy vào bài này, mình có viết thêm và cập nhập thêm vài dòng rồi đấy! bạn xem mã trong form frm_ToWord nhé
1. Bạn có ví dụ nào liên quan đến việc gom dữ liệu rãi rác về thành mãng 2 chiều để xuất ra Ms Word ko ? hay đoạn code nào cũng được cho mình xin để "Ngâm cứu".
2. Bạn chỉ mình cách vừa xuất dữ liệu ra Ms word vữa mở Ms word lên để xem trình tự xuất.
....
Thanks!
Private Sub cmdWord_Click()
' Kiem tra xem da lua chon Hoa don chua
If Nz(lsInvoice, "Null") = "Null" Then Exit Sub
' Access se co gang dua so lieu vao mot mau Word duoc thiet ke san bang cach su dung doan code sau
' Bay gio ta se thiet lap truy van theo so lieu co trong Listbox
' truy van co ten la qry_paymentDetailLC se co tat ca nhung chi tiet can co cua Van don...
Dim rs As New ADODB.Recordset
Dim SqlStr As String
SqlStr = "Select * from qry_paymentDetailLC where NoInvoice='" & lsInvoice & "';"
rs.Open SqlStr, CurrentProject.AccessConnection
If rs.EOF Then
MsgBox "There is no data for selected invoice..."
GoTo ExitSub
End If
' Dua so lieu sang Word
' Khoi tao ket noi voi mot phien lam viec cua Word - day la cach moi, an toan, toi moi bo sung
Dim WordApp As Object
Dim WordDoc As Object
Set WordDoc = CreateWordDocument(WordApp)
' Lenh nay se giau man hinh Word neu duoc
WordApp.Visible = True
' Mo file Mau ra
Set WordDoc = WordApp.Documents.Open(CurrentProject.Path & "\BL_Endorsement.doc")
' Chuan bi cho qua trinh thay the chuoi trong Word
' Day la vi du cua viec su dung tinh nang tim/ thay the cua Word, nhung tu khoa can thay the phai la duy nhat
' Neu muon lap lai thi chi viec lap lai tu khoa
'[DATE_DAY]/[DATE_MONTH]/[DATE_YEAR]
'[LC_NUMBER]/[INVOICE_NUMBER]/[BILLED_CURRENTCY] [INVOICE_AMOUNT]/[COMMODITY]/[QUANTITY] [M_UNIT]
' De co he thong va chuyen nghiep thi ban nen thiet lap mot bang de quan ly du lieu nay
' Toi chi lam vi du de ban co the ap dung thoi
' Vi the toi su dung ten truong lam tham so dau vao de tim kiem vaf luu thanh 2 mang
' 1 mang chua ten truong va 1 mang chua tu khoa
'NoLC, Goods, tbl_LC.HoldAmount, NoInvoice, Quanlity, AmountUSD,
' Declaration of variable
Dim KeyWords As String, FieldName As String, i As Long
KeyWords = "[LC_NUMBER]/[INVOICE_NUMBER]/[INVOICE_AMOUNT]/[COMMODITY]/[QUANTITY]"
FieldName = "NoLC/NoInvoice/AmountUSD/Goods/Quanlity"
'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
' Dua truong ngay vao Mau
ReplaceField "[DATE_DAY]", Format(Now, "dd"), WordDoc
ReplaceField "[DATE_MONTH]", Format(Now, "mm"), WordDoc
ReplaceField "[DATE_YEAR]", Format(Now, "yyyy"), WordDoc
' Luu file Word
If Dir(CurrentProject.Path & "\" & rs.Fields("NoLC") & ".doc") <> "" Then Kill CurrentProject.Path & "\" & rs.Fields("NoLC") & ".doc"
WordDoc.SaveAs CurrentProject.Path & "\" & rs.Fields("NoLC") & ".doc"
MsgBox "A document was successfully created at: " & CurrentProject.Path & "\" & rs.Fields("NoLC") & ".doc", vbInformation
'WordDoc.Close
WordApp.Activate
' clean up memory
Set WordDoc = Nothing
Set WordApp = Nothing
ExitSub:
rs.Close
End Sub
Sub ReplaceField(FindText, RepText, Handler As Object)
' Thu tuc thay the chuoi dau vao!
Handler.Range.Find.ClearFormatting
Handler.Range.Find.Replacement.ClearFormatting
With Handler.Range.Find
.Text = FindText
.Replacement.Text = RepText
.Forward = True
.Wrap = 1
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute Replace:=wdReplaceAll
End With
End Sub
Private Sub lsLC_AfterUpdate()
' Refresh data for lsInvoice
If Nz(lsLC, -1) = -1 Then Exit Sub
With lsInvoice
.RowSource = "SELECT NolC, NoInvoice FROM tbl_Invoice where NolC=" & lsLC & ";"
End With
End Sub