Thông thường khi sử dụng chức năng Mail Merge (Trộn thư) trong MS Word để tạo ra các thư mời hay phiếu báo điểm... mặc định của chương trình là ứng với mỗi một Record dữ liệu nhất định sẽ tạo ra một trang tập tin Main chính trên một trang giấy (A4) tương ứng.
Bước 1: Tạo tập tin Main chính trong WORD.
Bước 2: Tạo tập tin nguồn dữ liệu trên Excel với các cột có tên tương ứng (chú ý là tên cột không nên viết dấu tiếng việt, và phải bắt đầu dữ liệu ngay tại Cell A1).
* Chú ý: tập tin dữ liệu này bạn có thể tạo bằng WORD, tuy nhiên nếu thể hiện trong Excel bạn sẽ có lợi hơn nếu bảng dữ liệu đó có hổ trợ nhiều phép tính và hàm phức tạp.
Bước 3: Trên tập tin Main chính (Word) bạn phủ khối Copy toàn bộ nội dung tập tin Main chính rồi vào menu Tools > Mail Merge.
1. Ở mục 1 Main Document nhấp nút Create > chọn Mailing Labels...
2. Trong hộp thoại kế tiếp nhấp nút Active Windows.
3. Ở mục 2 Data Source nhấp nút Get Data > Open Data Source...> chỉ đường dẫn tới tập tin nguồn cơ sở dữ liệu Excel đã tạo.
Chọn nguồn dữ liệu để trộn thư.
4. Nhấp Ok trong hộp thoại Mirosoft Excel Entire Spreadsheet hiện ra.
Chọn toàn nội dung bảng tinh: Entire Spreadsheet.
5. Nhấp nút Set Up Main Document trong hộp thoại kế.
6. Trong hộp thoại Label Options bạn nhấp nút New Label để tạo một nhãn mới.
Chọn New-Label để tạo nhãn mới.
- Đặt tên cho nhãn mới vào dòng Label Name.
- Chọn khổ giấy thể hiện ở dòng Page Size (ví dụ A4 khổ đứng 21 x 29.7 cm).
- Tiến hành thiết lập tuỳ biến các thông số kích thước thể hiện: Number across (số cột của trang, ví dụ 1), Number Down (số bản ghi thể hiện trên một trang, ví dụ 3).... ở các thông số khác khi vừa thiết lập bạn vừa xem sự thể hiện của khổ giấy ở khung Preview phía trên đến khi cảm thấy ưng ý nhất (các thông số tôi thiết lập trong ví dụ này là do tuỳ biến cá nhân chỉ có mức độ gợi ý tham khảo).
Thiết lập xong nhấp OK 2 lần để thoát khỏi hộp thoại Label Options.
7. Trong hộp thoại Create Label kế tiếp bạn dán nội dung của tập tin Main chính đã Copy ở đầu bước 3 vào khung Sample label, rồi nhấp nút Insert Merge Field phía trên để lần lượt chèn vào các trường dữ liệu tương ứng từ tập tin database vào tập tin Main chính.
Thao tác tương tự như chèn các trường Field bình thường lúc trộn thư, nếu tập tin Main chính dùng Font Vni thì lúc này sẽ không hiển thị tốt Font tiếng Việt.
8. Sau khi chèn xong các trường Filed tương ứng bạn nhấp OK, lúc này trong bảng cảnh báo lỗi của WORD bạn tiếp tục nhấp OK
9. Trở về hộp thoại chính của chức năng Mail Merge bạn nhấp nút Close.
Bước 4: Lúc này trên giao diện tập tin Main chính nội dung sẽ được trình bày thành 3 bản ghi như đã thiết lập ở bước 3 cùng với các trường Field đã được chèn tương ứng. Tuy nhiên lúc này sự trình bày của văn bản sẽ chưa được tốt và bạn phải tiến hành định dạng thủ công lại từng bản ghi một.zensoft website
Chú ý phải định dạng sao cho nội dung 3 bản ghi là như nhau (mổi bản ghi sẽ ứng với 1 Record dữ liệu trong tập tin Database), bạn không được sao chép nguyên si nội dung giữa các bản ghi vì làm như thế sau khi trộn WORD sẽ hiểu là 3 bản ghi trên một trang A4 là của cùng một mẩu tin Record.
Bước 5: Sau khi định dạng xong bạn nhấp nút Merge để bắt đầu trộn thư. Kết quả thể hiện sẽ hết sức ưng ý (xem hình 9).
Sau cùng bạn hãy in ra máy in và dùng mắt cắt hay rọc ra thành từng bản ghi riêng biệt rồi đưa vào sử dụng. Chúc thành công!
Tips này hướng dẫn chúng ta cập nhật lại link cho table khi chuyển file data có password sang một vị trí khác, hoặc chúng ta có nhiều file data giống nhau password và cấu trúc, chỉ khác nhau nội dung.
Chúng ta không cần phải khai báo lại password mà chỉ nhập password ở lần link lần đầu tiên (khi thiết kế) (relink table from Database Access with password)
Writen by: Noname
Writen Site: http://thuthuataccess.com/forum
Please do not removed my info if using or share this code
Đoạn code này cho phép ta gọi hàm getfile để tìm tới file data
Mã:
Function getFile(Tit As String, formatName As String, formatType As String)
Dim dlgOpen As FileDialog
Set dlgOpen = Application.FileDialog(msoFileDialogOpen)
With dlgOpen
.Title = Tit
.Filters.Clear
.Filters.Add formatName, formatType
.AllowMultiSelect = False
result = .Show
If (result <> 0) Then
getFile = Trim(dlgOpen.SelectedItems.Item(1))
End If
End With
End Function
Đoạn code này lấy về password lưu trong hệ thống:
Mã:
' lâìy vêÌ password cuÒa lâÌn connect trýõìc
Function getconnect(T As String) As String
Dim con As String
con = DLookup("[Connect]", "MSysObjects", "[name]='" & T & "'")
getconnect = con
End Function
'Liên kêìt table
Sub LinkTable(T As String, path As String, connectString As String)
Dim tblLink As TableDef
Dim DBlink As Database
Set DBlink = OpenDatabase(path, False, False, connectString)
On Error GoTo Err
DoCmd.DeleteObject acTable, T
Err:
DoCmd.TransferDatabase acLink, "Microsoft Access", path, acTable, T, T
'DBlink.Close
Set DBlink = Nothing
End Sub
Đoạn code này kiểm tra các table nào là liên kết, nếu nó là liên kết thì sẽ tiến hành liên kết theo đường dẫn mới
Mã:
Sub refreshLinkTable(path As String)
'Writen by:Noname
'Writen site: http://thuthuataccess.com/
'Please do not remove my info if using or share this modules
Dim r As Recordset
Dim s As String
s = "SELECT ForeignName FROM MSysObjects WHERE ForeignName Is Not Null"
Set r = CurrentDb().OpenRecordset(s)
If r.RecordCount > 0 Then
r.MoveLast
For i = 0 To r.RecordCount - 1
LinkTable r(0), path, getconnect(r(0))
r.MovePrevious
Next i
End If
r.Close
Set r = Nothing
End Sub
Giờ trong hành động nhấn chuột của nút Open, ta nhập code sau vào:
Mã:
Private Sub cmdOpen_Click()
txtPath.Value = getFile("Select Data File", "data file", "*.mdb")
End Sub
Hành động nút refresh link ta nhập code sau vào:
Mã:
Private Sub cmdreLink_Click()
refreshLinkTable Me.txtPath
MsgBox "link table thanh cong"
End Sub
Tôi có bảng dữ liệu Table chỉ duy nhất có một hàng thôi. Ví dụ như bảng có 5 cột : TenHangHoa, DVT, SoLuong, DonGia, ThanhTien. Tôi muốn xuất sang Exce với điều kiện như sau :
- TenHangHoa : Khi sang Exce thì nằm cố định ngay ô : A1
- DVT : Khi sang Exce thì nằm cố định ngay ô : A1
- SoLuong : Khi sang Exce thì nằm cố định ngay ô : B2
- DonGia : Khi sang Exce thì nằm cố định ngay ô : C3
- ThanhTien : Khi sang Exce thì nằm cố định ngay ô : D4
Đại khái là như vậy. Nhờ các cao thủ nhiệt tình hướng dẫn. Cám ơn.
Where thường dùng làm điều kiện để chọn lựa dữ liệu trong các câu SQL.
Phát biểu:
Mã PHP:
[phát biểu] [tên cột] from [tên bảng] where [điều kiện]
Phát biểu: có thể là select,update, delete,Insert... điều kiện : có thể là 1 chuỗi, 1 số, 1 biểu thức hay 1 phát biểu truy vấn khác. Các phát biểu điều kiện thường là: Like[ chuỗi], between [giá trị] and [giá trị], >,=,<, in, ...not, or...
Ví dụ, ta có bảng sau: Bangluong
MaNhanvien
tennhanvien
luong
NV001
Nguyễn Duy Tuấn
12.000.000
NV002
Trần Hoài Nam
6.000.000
NV003
Lý Hoài Khiêm
15.000.000
NV004
Hà Quốc Quân
4.000.000
NV005
Lê Minh Hùng
6.000.000
Ta gọi query sau để lấy danh sách những người có mức lương hơn 10 triệu:
Được dùng trong câu SQL có điều kiện. Hay đi kèm sau mệnh đề Where
Phát biểu:
Mã:
SELECT "Cột"
FROM "bảng"
WHERE "điều kiện 1"
{[AND|OR] "Điều kiện 2"}+
ý nghĩa:
A Or B: Điều kiện A hoặc đều kiện B của Column đều được.
A And B: Phải thoả cả hai điều kiện A và điều kiện B
Ví dụ, ta có bảng sau: Bangluong
MaNhanvien
tennhanvien
luong
NV001
Nguyễn Duy Tuấn
12.000.000
NV002
Trần Hoài Nam
6.000.000
NV003
Trần Ngọc Hào
10.000.000
NV004
Hà Quốc Quân
4.000.000
NV005
Lê Minh Hùng
6.000.000
Tìm nhân viên có lương từ 4 Đến 6 triệu
Mã:
Select manhanvien,Tennhanvien,luong from bangluong where luong>=4000000 and luong<=6000000
Và kết quả
MaNhanvien
tennhanvien
luong
NV002
Trần Hoài Nam
6.000.000
NV004
Hà Quốc Quân
4.000.000
NV005
Lê Minh Hùng
6.000.000
Tìm nhân viên có lương ít hơn 6 triệu hoặc nhiều hơn 10 triệu
Mã:
Select manhanvien,tennhanvien,luong from bangluong where luong<6000000 or luong >10000000