Hihi! Có lẽ theo em mấy bác trưởng chòm nên đóng mục "cao thủ ...." này lại và mở ra một mục mới có tên: Office VBA gì đó để chúng ta cùng nhau thảo luận các vấn đề liên quan đến VBA được không ạ.
Bởi một nhẽ, nếu người ta chẳng muốn nêu tên ra thì thôi (em đoán là họ cũng chẳng muốn trở thành Hướng đối tượng-OOP hihi.).
Mạn phép, xin được trình làng với một ví dụ em nhận được hôm nay của vài cậu bên ddth có hỏi liên quan đến access.
Câu hỏi:
[Hi!
Minh moi ra truong nen voi lap trinh access con bo ngo lam
Hien tai,minh dang viet chuong trinh loc du lieu tu danh thiep
Minh co 1 van de mong ban giup do :
-Co 1 so danh thiep se khong co day du thong tin ve
uong,Phuong,Quan,Thanh Pho
-Vi the,luc xuat ra report,nhung cho khong co du lieu se la khoang trang
Co cach nao de khi xuat ra report,nhung cho trong do se duoc lap bang du lieu khac.
Vi du : danh thiep khong co Phuong thi ngay tai do,du lieu cua Quan va Thanh Pho duoc di chuyen len de lap day cho trong.
Mong tin ban
Cam on ban da doc tin nay
K.Q]
Trả lời:
[Chao ban!
Vang, cau hoi cua ban kha hay, lien quan den van de cung kha phuc tap cua access ve chuc nang bao cao. Nhung day cung la nhung diem noi troi cua access de no khac va tot hon nhung loai bao cao khac do la Dinh dang co dieu kien (conditional Format).
Co rat nhieu cach de lam, toi gioi thieu voi ban mot cach nhu sau (Giup ban nang cao kha nang tu duy thuat toan):
Toi xin tra loi nhu sau:
1. Ban vao che do design cua bao cao, hay chon phan details hoac section chua cac textbox de hien thi huyen, xa ...
2. Chon Properties va chon tab Events tren hop thoai Property.
Tai muc On Format, hay chon combo vao muc [Event Procedure] roi bam nut ben canh.
Day chinh la cach gian tiep de vao code editor - có thể nhấn Alt+F11.
Ban se thay man hinh VBA hien ra voi thu tuc la
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
End sub
Day chinh la thu tuc duoc thuc thi moi khi bao cao duoc goi va hien thi.
Ban hay dat cac thu tuc cua minh o day. trong do thuc hien cac yeu cau sau:
+ Dat ten nhom text box do la Txt1 cho den 10 (dieu nay de giup ban tham chieu den no mot cach de dang)
+ Kiem tra noi dung cua textbox
+ Neu gia tri la trang thi cho thuoc tinh Height cua no bang 0 vi du
if Txt1.text="" then
txt1.height=0
end if
Tat nhien la luc do khoang trang van con giua textbox vi the ban can phai co mot thuat toan de keo cac texbox len vi tri moi
Txt2.top=txt1.top .... txt10.top =txt9.top ....
Viec nay nen lam bang thuat toan de quy
Ban co thay tham so formatcount khong? Cai nay de giup ta tranh viec thuc hien nhieu lan qua trinh dich chuyen nen toan bo nhom thu tuc can dat trong cau lenh
if formatcount=1 then
....
end if
3. Sau do ban can phai dieu chinh do cao cua detail neu khong lai co khoang trang o cuoi doan bao cao
Detail.height = TotalHeight
trong do bien TotalHeight= tong chieu cao tat ca cac texbox co noi dung.
Toi khong lam giup ban dieu nay, ban hay tu lam va gui cho toi ket qua, toi se comment cho ban.
Tien day toi gui cho ban mot vi du ve cong cu ve Luoi cua Access nhe.
GIan nen ra va chay, Nhan Report, dung nhan re-calculate nua, hay chon mot combo nao do va nhan print - ban se thay access rat manh trong ve luoi giong excel.
THan
]
Thực ra chi tiết thì còn nhiều hơn, xin cảm phiền các bác về đoạn không dấu nêu trên. Ví dụ kèm theo em xin mạn phép gửi kèm, dưng mà hihi một lần nữa xin lỗi vì comment em lại đã bằng Anh ngữ
Nếu có gì các bác cứ YIM cho em nhé. paulsteigel
Nay kính thư
P/S Em muốn Attache ví dụ mà nỏ được mô.
Mời các bác vào:
www.sfdp.net/libs/gen/acc/report1.zip