vuthaiha90 > 06-01-20, 02:08 AM
ongke0711 > 06-01-20, 07:52 AM
'-----------------------------------------------------------------------------------
'XUAT BANG QUÁ TRÌNH HOAT DONG & CU NGU
'Mo table can export qua file Doc'
strSQL = "SELECT tblQuaTrinhHD.MSN, tblQuaTrinhHD.HDTuThang_Nam, tblQuaTrinhHD.HDDenThang_Nam, tblQuaTrinhHD.QuaTrinhHD, tblQuaTrinhHD.CNTuThang_Nam, tblQuaTrinhHD.CNDenThang_Nam, tblQuaTrinhHD.QuaTrinhCuNgu " & _
"FROM tblQuaTrinhHD WHERE tblQuaTrinhHD.MSN=" & sMSN
Set db = CurrentDb
Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot)
With rs
If .RecordCount <> 0 Then
.MoveLast 'De lay chính xác sô dòng
iRecCount = .RecordCount 'Sô dòng
.MoveFirst
iFldCount = .Fields.Count - 1 'So Field trong table cân xuat
tblNoInDoc = 1 'So thu tu cua table trong file Doc'
Set oWordTbl = Doc.Tables(tblNoInDoc)
'Them cot'
With Doc.Tables(tblNoInDoc)
.Select
Do Until .Columns.Count = iFldCount
.Columns.Add
.Columns.AutoFit
Loop
End With
'Dat ten cho dòng tiêu dê
oWordTbl.Cell(1, 1) = "T" & ChrW(7915)
oWordTbl.Cell(1, 2) = ChrW(272) & ChrW(7871) & "n"
oWordTbl.Cell(1, 3) = "Quá trình ho" & ChrW(7841) & "t " & ChrW(273) & ChrW(7897) & "ng"
oWordTbl.Cell(1, 4) = "T" & ChrW(7915)
oWordTbl.Cell(1, 5) = ChrW(272) & ChrW(7871) & "n"
oWordTbl.Cell(1, 6) = "Quá trình c" & ChrW(432) & " ng" & ChrW(7909)
'Build our data rows'
For i = 1 To iRecCount
Doc.Tables(tblNoInDoc).Rows.SetLeftIndent LeftIndent:=10, RulerStyle:=2
Doc.Tables(tblNoInDoc).Rows.Add
oWordTbl.Cell(i + 1, 1) = Nz(rs.Fields(1).Value, "")
oWordTbl.Cell(i + 1, 1).Range.ParagraphFormat.Alignment = 1 '0 la can trai
oWordTbl.Cell(i + 1, 1).Range.Cells.VerticalAlignment = 1
oWordTbl.Cell(i + 1, 2) = Nz(rs.Fields(2).Value, "")
oWordTbl.Cell(i + 1, 2).Range.ParagraphFormat.Alignment = 1
oWordTbl.Cell(i + 1, 2).Range.Cells.VerticalAlignment = 1
oWordTbl.Cell(i + 1, 3) = Nz(rs.Fields(3).Value, "")
oWordTbl.Cell(i + 1, 3).Range.ParagraphFormat.Alignment = 0
oWordTbl.Cell(i + 1, 3).Range.Cells.VerticalAlignment = 1
oWordTbl.Cell(i + 1, 4) = Nz(rs.Fields(4).Value, "")
oWordTbl.Cell(i + 1, 4).Range.ParagraphFormat.Alignment = 1
oWordTbl.Cell(i + 1, 4).Range.Cells.VerticalAlignment = 1
oWordTbl.Cell(i + 1, 5) = Nz(rs.Fields(5).Value, "")
oWordTbl.Cell(i + 1, 5).Range.ParagraphFormat.Alignment = 1
oWordTbl.Cell(i + 1, 5).Range.Cells.VerticalAlignment = 1
oWordTbl.Cell(i + 1, 6) = Nz(rs.Fields(6).Value, "")
oWordTbl.Cell(i + 1, 6).Range.ParagraphFormat.Alignment = 0
oWordTbl.Cell(i + 1, 6).Range.Cells.VerticalAlignment = 1
.MoveNext
Next i
'Format bold 1st row'
With Doc.Tables(tblNoInDoc).Rows(1).Range
.Font.Bold = True
.ParagraphFormat.Alignment = 1
.Cells.VerticalAlignment = 1
.Shading.BackgroundPatternColor = RGB(225, 225, 225) '16
End With
Doc.Tables(tblNoInDoc).Rows(1).Height = 22
'Doc.Tables(tblNoInDoc).Columns.AutoFit
Doc.Tables(tblNoInDoc).Columns(1).Width = 0.7 * 72
Doc.Tables(tblNoInDoc).Columns(2).Width = 0.7 * 72
Doc.Tables(tblNoInDoc).Columns(3).Width = 2 * 72
Doc.Tables(tblNoInDoc).Columns(4).Width = 0.7 * 72
Doc.Tables(tblNoInDoc).Columns(5).Width = 0.7 * 72
Doc.Tables(tblNoInDoc).Columns(6).Width = 2 * 72
End If
End With
rs.Close
Set rs = Nothing
Set oWordTbl = Nothing
vuthaiha90 > 06-01-20, 09:29 AM
(06-01-20, 07:52 AM)ongke0711 Đã viết: Dữ liệu nhiều dạng bảng thì bạn dùng Table trong file Word luôn.Vậy là phải kẻ bảng chìm ạ, kẻ xong cho border = none. Có cách nào khác kẻ bảng không ạ, em thử mà nếu dữ liệu ở trong bảng nào đấy nằm giữa trang 1 và trang 2 chả hạn, nó nhảy luôn xuống trang 2, không liền mạch
Khai báo đối tượng Table trong Word và dùng các thuộc tính giống Excel để điền dữ liệu từ table Access vào Table Word.
Vd: đây là code tôi xuất 1 Table quá trình hoạt động sang Word.
Trong Word, cứ chèn cái Table nào đầu tiên thì sẽ có index =1 và no cứ gán số kế tiếp cho các bảng sau.
Bạn tham khảo các làm.
Mã PHP:'-----------------------------------------------------------------------------------
'XUAT BANG QUÁ TRÌNH HOAT DONG & CU NGU
'Mo table can export qua file Doc'
strSQL = "SELECT tblQuaTrinhHD.MSN, tblQuaTrinhHD.HDTuThang_Nam, tblQuaTrinhHD.HDDenThang_Nam, tblQuaTrinhHD.QuaTrinhHD, tblQuaTrinhHD.CNTuThang_Nam, tblQuaTrinhHD.CNDenThang_Nam, tblQuaTrinhHD.QuaTrinhCuNgu " & _
"FROM tblQuaTrinhHD WHERE tblQuaTrinhHD.MSN=" & sMSN
Set db = CurrentDb
Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot)
With rs
If .RecordCount <> 0 Then
.MoveLast 'De lay chính xác sô dòng
iRecCount = .RecordCount 'Sô dòng
.MoveFirst
iFldCount = .Fields.Count - 1 'So Field trong table cân xuat
tblNoInDoc = 1 'So thu tu cua table trong file Doc'
Set oWordTbl = Doc.Tables(tblNoInDoc)
'Them cot'
With Doc.Tables(tblNoInDoc)
.Select
Do Until .Columns.Count = iFldCount
.Columns.Add
.Columns.AutoFit
Loop
End With
'Dat ten cho dòng tiêu dê
oWordTbl.Cell(1, 1) = "T" & ChrW(7915)
oWordTbl.Cell(1, 2) = ChrW(272) & ChrW(7871) & "n"
oWordTbl.Cell(1, 3) = "Quá trình ho" & ChrW(7841) & "t " & ChrW(273) & ChrW(7897) & "ng"
oWordTbl.Cell(1, 4) = "T" & ChrW(7915)
oWordTbl.Cell(1, 5) = ChrW(272) & ChrW(7871) & "n"
oWordTbl.Cell(1, 6) = "Quá trình c" & ChrW(432) & " ng" & ChrW(7909)
'Build our data rows'
For i = 1 To iRecCount
Doc.Tables(tblNoInDoc).Rows.SetLeftIndent LeftIndent:=10, RulerStyle:=2
Doc.Tables(tblNoInDoc).Rows.Add
oWordTbl.Cell(i + 1, 1) = Nz(rs.Fields(1).Value, "")
oWordTbl.Cell(i + 1, 1).Range.ParagraphFormat.Alignment = 1 '0 la can trai
oWordTbl.Cell(i + 1, 1).Range.Cells.VerticalAlignment = 1
oWordTbl.Cell(i + 1, 2) = Nz(rs.Fields(2).Value, "")
oWordTbl.Cell(i + 1, 2).Range.ParagraphFormat.Alignment = 1
oWordTbl.Cell(i + 1, 2).Range.Cells.VerticalAlignment = 1
oWordTbl.Cell(i + 1, 3) = Nz(rs.Fields(3).Value, "")
oWordTbl.Cell(i + 1, 3).Range.ParagraphFormat.Alignment = 0
oWordTbl.Cell(i + 1, 3).Range.Cells.VerticalAlignment = 1
oWordTbl.Cell(i + 1, 4) = Nz(rs.Fields(4).Value, "")
oWordTbl.Cell(i + 1, 4).Range.ParagraphFormat.Alignment = 1
oWordTbl.Cell(i + 1, 4).Range.Cells.VerticalAlignment = 1
oWordTbl.Cell(i + 1, 5) = Nz(rs.Fields(5).Value, "")
oWordTbl.Cell(i + 1, 5).Range.ParagraphFormat.Alignment = 1
oWordTbl.Cell(i + 1, 5).Range.Cells.VerticalAlignment = 1
oWordTbl.Cell(i + 1, 6) = Nz(rs.Fields(6).Value, "")
oWordTbl.Cell(i + 1, 6).Range.ParagraphFormat.Alignment = 0
oWordTbl.Cell(i + 1, 6).Range.Cells.VerticalAlignment = 1
.MoveNext
Next i
'Format bold 1st row'
With Doc.Tables(tblNoInDoc).Rows(1).Range
.Font.Bold = True
.ParagraphFormat.Alignment = 1
.Cells.VerticalAlignment = 1
.Shading.BackgroundPatternColor = RGB(225, 225, 225) '16
End With
Doc.Tables(tblNoInDoc).Rows(1).Height = 22
'Doc.Tables(tblNoInDoc).Columns.AutoFit
Doc.Tables(tblNoInDoc).Columns(1).Width = 0.7 * 72
Doc.Tables(tblNoInDoc).Columns(2).Width = 0.7 * 72
Doc.Tables(tblNoInDoc).Columns(3).Width = 2 * 72
Doc.Tables(tblNoInDoc).Columns(4).Width = 0.7 * 72
Doc.Tables(tblNoInDoc).Columns(5).Width = 0.7 * 72
Doc.Tables(tblNoInDoc).Columns(6).Width = 2 * 72
End If
End With
rs.Close
Set rs = Nothing
Set oWordTbl = Nothing
Minh Tiên > 06-01-20, 11:08 AM
tranthanhan1962 > 06-01-20, 06:45 PM
vuthaiha90 > 06-01-20, 06:49 PM
(06-01-20, 06:45 PM)tranthanhan1962 Đã viết: bạn tạo một report có đầy đủ phần có sẳn làm nền (đây là phần cứng designe trên report - Dùng label để xử lý), phần tham số là các field dùng textbox đưa giá trị các field làm controlsource. bạn có thể dùng sub table và subreport xử lý phần kê khai tài sản thiết đặt subreport can grow và can shrink = yes. subreport sẽ tự động co dãn theo nội dung, dù xuống hàng hay qua trang cũng không ảnh hưỡng gì!Em xin hỏi bác là có tận dụng lại file word có sẵn không ạ, hay lại thiết kế lại report mới có thể làm đúng ý ạ
tranthanhan1962 > 06-01-20, 11:02 PM
(06-01-20, 06:49 PM)vuthaiha90 Đã viết: Em xin hỏi bác là có tận dụng lại file word có sẵn không ạ, hay lại thiết kế lại report mới có thể làm đúng ý ạbạn có thể thiết kế từ a-z trên report hay ctrt + a bản word rồi copy và dán thẳng vào report cũng được, nó sẽ tạo một label nằm trên report và có thể chỉnh sửa thoải máy nếu dữ liệu đơn giản
xtangttqt > 24-03-20, 04:56 PM