Tạo report có chiều cao co dãn theo dữ liệu
Trong khi làm report. Có những dữ liệu vượt quá chiều ngang của field trình bày. Nhưng nếu ta set cho field đó có khả năng can grow thì nó sẽ nhảy dòng, làm lệch các khung ta đã canh chỉnh.Những người có kinh nghiệm giải quyết bằng cách chừa 1 khoảng trống đủ lớn để không bị "rớt dòng" đại loại như thế! Tuy nhiên, nếu không có dữ liệu nào thừa rớt dòng thì khoảng trống đó lãng phí trong report!
Vấn đề đặt ra là làm cách nào để report có thể tự do dãn chiều cao ở mỗi dòng khác nhau cho phù hợp với dữ liệu
Mình gợi ý theo một hướng khác là ta dùng hàm line để vẽ các đối tượng draw trên report, như vậy bạn sẽ có các đường kẻ đứng co dãn theo field.
Dưới đây là ví dụ mình sẽ vẽ hai đường thẳng đứng tự co dãn, bạn về tùy biến cho phù hợp nha
Code:
Mã: Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
Me.Line (0, 0)-Step(0.01 * 567, 56 * 567), , BF
Me.Line (3 * 567, 0)-Step(0.01 * 567, 56 * 567), , BF
End Sub
Copy dòng code vào thủ tục Detail_Print cuả report:
- Bạn print preview sẽ có 2 đường thẳng rộng 0.01cm, chiều dài bằng chiều cao phần detail (đã co dãn, tối đa là 56cm). 2 đường có top-đỉnh là 0 cm, mép trái là 0cm và 3cm.
- Code trong report của Access dùng đơn vị twip, 1cm=567twips
Các đường ngang bạn chỉ cần vẽ 1 đường có Top=0, left=0 và chiều dài bằng chiều dài report ở phần detail.
Copy 1 đường tương tự cho các Group Footer và Report Footer như vậy bạn đã có thể co giãn như ý rồi
Download Demo
Khóa phím close trong Access
Hỏi: Tôi đã cung cấp cho người dùng nút đóng trên chương trình Access của tôi và kh6ong muốn họ dùng nút nhất close(x) sẵn của Windows thì phải làm thế nào!
Đáp:
Bạn có thể ẩn nút close bằng đoạn code sau:
Code:
Private Const GWL_EXSTYLE = (-20)
Private Const GWL_STYLE = (-16)
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_SYSMENU = &H80000
Private Const HWND_TOP = 0
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_FRAMECHANGED = &H20
Private Const SWP_DRAWFRAME = SWP_FRAMECHANGED
Private Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) _
As Long
Private Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal x As Long, ByVal y As Long, ByVal cx As Long, _
ByVal cy As Long, ByVal wFlags As Long) As Long
Sub HideAccessCloseButton()
Dim lngStyle As Long
lngStyle = GetWindowLong(hWndAccessApp, GWL_STYLE)
lngStyle = lngStyle And Not WS_SYSMENU
Call SetWindowLong(hWndAccessApp, GWL_STYLE, lngStyle)
Call SetWindowPos(hWndAccessApp, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_DRAWFRAME)
End Sub
Bây giờ trong form Admin của bạn, bạn có thể tạo 1 nút nhấn và gọi hàm HideAccessCloseButton để ẩn nút close. Nếu vẫn chưa được. Hãy đ1ong Access và mở lại.
Xem các hình
Access trước khi ẩn nút
Access sau khi ẩn nút
Mở nút Close(x) khi đã khóa
Hỏi: Theo hướng dẫn trên, tôi đã khoa nút close , giờ muốn mở lại thì làm thế nào?
Đáp:
Bạn tạo 1 Module mới với nội dung sau:
Code:
Mã: Private Const GWL_EXSTYLE = (-20)
Private Const GWL_STYLE = (-16)
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_SYSMENU = &H80000
Private Const HWND_TOP = 0
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_FRAMECHANGED = &H20
Private Const SWP_DRAWFRAME = SWP_FRAMECHANGED
Private Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) _
As Long
Private Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal x As Long, ByVal y As Long, ByVal cx As Long, _
ByVal cy As Long, ByVal wFlags As Long) As Long
Sub UnHideAccessCloseButton()
Dim lngStyle As Long
lngStyle = GetWindowLong(hWndAccessApp, GWL_STYLE)
lngStyle = lngStyle Or WS_SYSMENU
Call SetWindowLong(hWndAccessApp, GWL_STYLE, lngStyle)
Call SetWindowPos(hWndAccessApp, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_DRAWFRAME)
End Sub
Trong form Admin hãy tạo 1 nút để gọi hàm UnHideAccessCloseButton nhấn nút và đóng lại rồi xem kết quả nhé!
Khoá phím ctrl-F4 và Alt-F4 , shift
1) Khoá phím ctrl-F4 và Alt-F4
Ý tưởng của hungtano
Bạn tạo 1 macro tên AutoKeys,
- ở cột Macro Name, bạn điền ^{F4}, ở cột Action bạn chọn Msgbox, ở phần dưới Action Argument bạn tạo 1 thông báo "Phím này đã bị khóa"
- ở cột Macro Name, bạn điền %{F4}, ở cột Action bạn chọn Msgbox, ở phần dưới Action Argument bạn tạo 1 thông báo "Phím này đã bị khóa"
2) Phím shisft có công dụng gì ? sao lại khoá phím shift ?
Khi viết xong 1 chương trình trên Access, khi đưa vào sử dụng bạn phải giấu cửa sổ database. Phím shift có công dụng mở cửa sổ database để xem các object của chuơng trình như table, macro, query, ...Để tránh không cho users mở cửa sổ database "quậy phá" các object của CT, người ta phải khóa phím shift.
Đánh Số Thứ Tự Cho report
Hỏi:
Báo cáo của tôi có rất nhiều dòng, tôi muốn đánh số thứ tự cho mỗi record thì phải làm sao?
Đáp:
Trong phần detail của report, tạo một text box.
Vô Properties của textbox đó,nhảy qua tab Data, đặt thuộc tính Control Source là =1, Thuộc tính runing Sum là Over All. Hehe , nó sẽ đánh số thứ tự toàn bộ các phần tử.
Nếu chỉ muốn đánh số thú tự trong 1 Group thì chon Over Group
Hình minh Họa:
Chủ đề Mới nhất |
[Demo-Phần 4] Tạo khóa bả...
-Chuyên mục: Thư viện thủ thuật-Đăng bởi lần cuối: huyhoang22-Hôm qua, 03:29 PM-
» Bài trả lời: 40-
» Lượt xem: 5,477
|
Quản lý kho bằng Accesss
-Chuyên mục: Thảo Luận Access-Đăng bởi lần cuối: huyhoang22-Hôm qua, 03:21 PM-
» Bài trả lời: 40-
» Lượt xem: 1,561
|
Dòng Thơ Nhạc Trích Đoạn
-Chuyên mục: Góc Thơ -Đăng bởi lần cuối: Nguyễn Thành Sáng-30-04-24, 04:51 PM-
» Bài trả lời: 4-
» Lượt xem: 45
|
Trợ giúp về Textbox với c...
-Chuyên mục: Forms-Đăng bởi lần cuối: Nguyên Thông-18-04-24, 10:15 PM-
» Bài trả lời: 16-
» Lượt xem: 5,952
|
In mã vạch tạo từ access ...
-Chuyên mục: Forms-Đăng bởi lần cuối: huyhoang22-15-04-24, 11:25 AM-
» Bài trả lời: 38-
» Lượt xem: 20,798
|
Kết nối bảng từ access A ...
-Chuyên mục: Thủ thuật VBA-Đăng bởi lần cuối: hieunx-11-04-24, 01:23 PM-
» Bài trả lời: 5-
» Lượt xem: 85
|
Lấy dữ liệu từ 1 cột của ...
-Chuyên mục: Query-Đăng bởi lần cuối: ongke0711-09-04-24, 11:34 AM-
» Bài trả lời: 11-
» Lượt xem: 849
|
[Lỗi] Automation error kh...
-Chuyên mục: Thành viên giúp nhau-Đăng bởi lần cuối: AnNguyen-05-04-24, 09:30 AM-
» Bài trả lời: 4-
» Lượt xem: 69
|
Lọc tên vật tư theo nhóm
-Chuyên mục: Forms-Đăng bởi lần cuối: ongke0711-02-04-24, 04:00 PM-
» Bài trả lời: 1-
» Lượt xem: 51
|
Thơ con cóc
-Chuyên mục: Góc Thơ -Đăng bởi lần cuối: Xuân Thanh-01-04-24, 06:45 PM-
» Bài trả lời: 111-
» Lượt xem: 59,121
|
Diễn đàn Thống kê |
» Thành viên: 4,520
» Thành viên mới nhất: XXXIXSr
» Các chủ đề diễn đàn: 9,858
» Các bài viết diễn: 48,444
Thống kê đầy đủ
|
| | | | |