Tuy nhiên, không phải bao giờ điều đó cũng làm các bạn hài lòng, và chúng ta luôn luôn muốn hơn nữa với VBA.Sau đây, mình xin giới thiệu các lệnh sửa thuộc tính trong VBA. Có lẽ vài bạn đã từng thử với việc Disable phím shift. Nhưng trong phạm vi bài viết này, mình sẽ nêu đầy đủ hơn về các thuộc tính đó.Để thuận tiện hơn trong việc thay đổi thuộc tính, bạn nên tạo 1 module và copy hàm sau:
Tìm thủ thuật nhanh hơn với chức năng tìm trong Blog
30/12/09
Thuộc tính Startup MS Access toàn tập với VBA
Xin chào các tín đồ Access. Có lẽ nhiều người biết các ngăn chặn vọc phá cũng như tùy biến thuộc tính startup Access bằng cách vào Tool--> Startup.
29/12/09
So sánh - tổng hợp 2 table với Union
Hỏi:Mình hiện nay có 2 table A và table B :
Giờ mình muốn lọc bằng lệnh SQL hoặc query :
điều kiện
1_những record nào trùng file mahang và tenhang trùng giữa 2 table A và B .
2_Lọc ra những record không trùng giữa 2 table A và B .
3 -Làm thế nào để Hợp nhất hai table A và B: lấy tất cả những record trùng và không trùng của 2 table (các record trùng nhau sẽ thành 1 record)
Giờ mình muốn lọc bằng lệnh SQL hoặc query :
điều kiện
1_những record nào trùng file mahang và tenhang trùng giữa 2 table A và B .
2_Lọc ra những record không trùng giữa 2 table A và B .
3 -Làm thế nào để Hợp nhất hai table A và B: lấy tất cả những record trùng và không trùng của 2 table (các record trùng nhau sẽ thành 1 record)
Đồng Bộ hai table
Hỏi: Tôi có 2 table có cấu trúc gần giống nhau. Tuy nhiên có khác biệt 1 ít về dữ liệu. Xin hướng dẫn đồng bộ table1 sang table 2.
Ví dụ: table1( Maso, ten). Table2(maso, ten, diachi, ...)
Tôi muốn
1/Thêm maso,ten từ table 1 sang table nếu trong table 2 thiếu.
2/Update lại tên nếu cùng 1 mã số nhưng tên table1 khác trong table 2
3/ xóa những recode trong table2 không có mã trong table1
Ví dụ: table1( Maso, ten). Table2(maso, ten, diachi, ...)
Tôi muốn
1/Thêm maso,ten từ table 1 sang table nếu trong table 2 thiếu.
2/Update lại tên nếu cùng 1 mã số nhưng tên table1 khác trong table 2
3/ xóa những recode trong table2 không có mã trong table1
Lập Hàm có lượng tham số thay đổi
Hỏi: Bạn HaQuocQuan có hỏi làm sao tạo một hàm có số lượng tham số tùy ý.
Đáp: Điển hình của các hàm có tham số tùy ý ta có thể thấy ở Excel, nó thường ở dạng
Hàm( mảng các tham số, hằng số 1, hằng số 2...)
Với hằng số để cho ta biết trong trường hợp nào thì trả về giá trị nào.
Dưới đây, mình xin tạo 1 hàm có số tham số thay đổi tương tự hàm sum của Excel
Đáp: Điển hình của các hàm có tham số tùy ý ta có thể thấy ở Excel, nó thường ở dạng
Hàm( mảng các tham số, hằng số 1, hằng số 2...)
Với hằng số để cho ta biết trong trường hợp nào thì trả về giá trị nào.
Dưới đây, mình xin tạo 1 hàm có số tham số thay đổi tương tự hàm sum của Excel
23/12/09
Phân quyền truy cập menu trong Access
Mình đã giới thiệu với các bạn chương trình phân quyền
thiet-ke-ctrinh-phan-quyen
Mình cũng giới thiệu các bạn cách bạn cách tạo 1 thanh menu
huong-dan-tao-menu-trong-access.html
Hôm nay mình xin giới thiệu cách để hiển thị 1 menu với user này và ẩn với user khác.
thiet-ke-ctrinh-phan-quyen
Mình cũng giới thiệu các bạn cách bạn cách tạo 1 thanh menu
huong-dan-tao-menu-trong-access.html
Hôm nay mình xin giới thiệu cách để hiển thị 1 menu với user này và ẩn với user khác.
21/12/09
Tạo số phiếu tăng theo mẫu : date+STT
Hôm trước mình giới thiệu thủ thuật tạo số phiếu tăng tự động theo đoạn code của anh phatnq2002 trang Dân Kế Toán
Tạo số chứng từ tăng dần và reset mỗi tháng
Hôm nay, mình giới thiệu đoạn code tạo số chứng từ tăng dần theo mẫu dạng: dd/mm/yy + số TT
Để số thứ tự tự động tăng dần để trường STT là Text. Đồng thời ta thêm 1 trường couter kiểu Number - Integer để đếm số phiếu trong ngày. Trường này sẽ tăng khi bạn nhập phiếu mới với giá trị = max giá trị ngày đó.
Tạo số chứng từ tăng dần và reset mỗi tháng
Hôm nay, mình giới thiệu đoạn code tạo số chứng từ tăng dần theo mẫu dạng: dd/mm/yy + số TT
Để số thứ tự tự động tăng dần để trường STT là Text. Đồng thời ta thêm 1 trường couter kiểu Number - Integer để đếm số phiếu trong ngày. Trường này sẽ tăng khi bạn nhập phiếu mới với giá trị = max giá trị ngày đó.
19/12/09
Tính ngày làm việc thực tế giữa khoảng thời gian
Rất nhiều nhà quản lý kế hoạch ( planning) muốn tính ngày làm việc thực tế giữa hai khoảng thời gian.
Dưới đây mình xin giới thiệu đoạn code tính ngày làm việc thực tế. Trừ thứ 7 và chủ nhật. Mời các bạn tham khảo.
Dưới đây mình xin giới thiệu đoạn code tính ngày làm việc thực tế. Trừ thứ 7 và chủ nhật. Mời các bạn tham khảo.
Không tạo được ActiveX trong Access
Hỏi: Em có tạo một sổ địa chỉ lấy dữ liệu từ tập tin MDB. Khi chạy chương trình trên máy nhà em thì bình thường nhưng khi chạy trên máy khác thì không được và có thông báo lỗi "Run-time error '429': Active X component can't create object". Thông báo này là sao, xin chỉ cho em cách khắc phục.
15/12/09
Kiểm tra sự tồn tại của Fields trong table
Hỏi : tôi có 1 table là: tblHOSO; tôi muốn dùng code để kiểm tra xem trong tblHOSO có field KIEMTRA không?
Lỗi khi Chuyển từ File mdb thành mde
Gần đâydo nhu cầu bảo mật chống sửa form/ Report , chống luc lọi trong các đoan code cũng như cải thiện tốc độ chương trình do VBA đã được biên dịch. Một số bạn đã chuyển ứng dụng Access của mình thành file *. mde nhưng vướng lỗi. Sau đây, mình xin thống kê và cách xử lý.
Tạo số chứng từ tăng và reset khi sang tháng khác
Hỏi: Tôi muốn chứng từ phát sinh trong tháng thì tăng tự động, qua tháng tính lại từ đầu.
Đáp:
Thảo luận thêm tại: http://thuthuataccess.co.cc/forum
Đáp:
Dim so
so = DMax("SOCT", "table", "Year(ngayhachtoan) = " & Year(Date()) & " AND Month(ngayhachtoan) = " & Month(Date()))
If Nz(so, 0) = 0 Then
soct = "0001"
Else
soct = Right("000" & CInt(so) + 1, 4)
End If
so = DMax("SOCT", "table", "Year(ngayhachtoan) = " & Year(Date()) & " AND Month(ngayhachtoan) = " & Month(Date()))
If Nz(so, 0) = 0 Then
soct = "0001"
Else
soct = Right("000" & CInt(so) + 1, 4)
End If
Trả lời của phatnq2002 trang Dân Kế Toán
____________________________________________________________________________________Thảo luận thêm tại: http://thuthuataccess.co.cc/forum
Thiết kế textbox, command ...sao cho đẹp
Hỏi: Một số form mình thiết kế các textbox, command, combobox theo hình thức thủ công, mặc dù mình đã O kỹ rồi nhưng thấy cũng chưa hài lòng lắm.
Các bạn làm ơn chỉ mình cách làm sao để: canh đều trái phải; kích thước dài, rộng bằng nhau để xem cho đẹp mắt hơn.
Đáp:
Access cung cấp cho ta công cụ Align và Size ( Click chuột phải vào tập các đối tượng đã chọn hoặc vào menu Format)
Đối với Align, ta có: (dùng chỉnh vị trí của đối tượng : Lable, Combobox, Textbox, button...)
Left: Canh theo đối tượng ngoài cùng phía bên trái
Right:Canh theo đối tượng ngoài cùng phía bên phải
Top:Canh theo đối tượng trên cùng
Bottom: Canh theo đối tượng thấp nhất
Đối với size của đối tượng ta có:
To Tallest : Format Chiều Cao của các đối tượng theo đối tượng có chiều cao lớn nhất
To Shortest Makes :Format Chiều cao của các đối tượng theo đối tượng có chiều cao nhỏ nhất
To Widest Makes:Format chiều rộng của các đối tượng theo đối tượng có chiều rộng lớn nhất
To Narrowest :Format chiều rộng của các đối tượng theo đối tượng có chiều rộng nhỏ nhất
To Fit: Format size đối tượng phù hợp với nội dung (chữ hoặc hình) của nó
To Grid: Format size đối tượng vừa với lưới định sẵn của Access
____________________________________________________________________________________
Thảo luận thêm tại: http://thuthuataccess.com/forum
Các bạn làm ơn chỉ mình cách làm sao để: canh đều trái phải; kích thước dài, rộng bằng nhau để xem cho đẹp mắt hơn.
Đáp:
Access cung cấp cho ta công cụ Align và Size ( Click chuột phải vào tập các đối tượng đã chọn hoặc vào menu Format)
Đối với Align, ta có: (dùng chỉnh vị trí của đối tượng : Lable, Combobox, Textbox, button...)
Left: Canh theo đối tượng ngoài cùng phía bên trái
Right:Canh theo đối tượng ngoài cùng phía bên phải
Top:Canh theo đối tượng trên cùng
Bottom: Canh theo đối tượng thấp nhất
Đối với size của đối tượng ta có:
To Tallest : Format Chiều Cao của các đối tượng theo đối tượng có chiều cao lớn nhất
To Shortest Makes :Format Chiều cao của các đối tượng theo đối tượng có chiều cao nhỏ nhất
To Widest Makes:Format chiều rộng của các đối tượng theo đối tượng có chiều rộng lớn nhất
To Narrowest :Format chiều rộng của các đối tượng theo đối tượng có chiều rộng nhỏ nhất
To Fit: Format size đối tượng phù hợp với nội dung (chữ hoặc hình) của nó
To Grid: Format size đối tượng vừa với lưới định sẵn của Access
____________________________________________________________________________________
Thảo luận thêm tại: http://thuthuataccess.com/forum
Format có điều kiện cho field trong Access
Hỏi:Tôi có bảng
tblViDu:
TK
111:Tiền mặt Mẹ,
1111:Tiền việt nam Con.
Em muốn là sau khi mở bảng xem ở chế độ Datasheet thì chữ Mẹ thành màu đỏ,Chữ Con thành Màu xanh thì đinh dạng như thế nào?
tblViDu:
TK
111:Tiền mặt Mẹ,
1111:Tiền việt nam Con.
Em muốn là sau khi mở bảng xem ở chế độ Datasheet thì chữ Mẹ thành màu đỏ,Chữ Con thành Màu xanh thì đinh dạng như thế nào?
11/12/09
Xóa Đối tượng Access từ 1 File Access Khác
Hỏi: Làm thế nào để xóa các Object (table, query, form, report) của DBLUU từ một nút lệnh trên form của DBSYS.
Thêm Field vào 1 table trong file Access khác
Hỏi: Tôi có 2 file DB, một file lưu dữ liệu DBLUU.mdb, một file chương trình DBSYS.mdb. Trong file DBLUU.MDB có 1 tblLuu.
Làm Sao code từ một nút lệnh trên FORM tại DBSYS.mdb có thể thêm field vào tblLuu trong DBLUU.mdb
Làm Sao code từ một nút lệnh trên FORM tại DBSYS.mdb có thể thêm field vào tblLuu trong DBLUU.mdb
10/12/09
Sử dụng thư viện hàm của Excel trong Access
Những ai thao tác quen với Excel sẽ thấy ở đây có một thư viện hàm khổng lồ mà Access không có được. Và câu hỏi là làm sao sử dụng được thư viện hàm này.
9/12/09
9 Shortcut Key giúp bạn tiết kiệm thời gian
Nếu sử dụng thành thạo các phím nóng sau, bạn có thể tăng tốc một cách đáng kể cho việc nhập hoặc di chuyển giữa các dữ liệu:
Xóa các bản ghi bị trùng trong bảng của bạn?
Trên thực tế Access không cho phép bạn xóa các bản ghi bị trùng, nhưng bạn có thể thực hiện được tác vụ trên bằng cách tạo một table mới từ table cũ với các bản ghi không bị trùng sau đó xóa table cũ và đổi tên table mới tạo thành table cũ.
Ẩn/ Hiện các đối tượng trong Access
Show / Hide Object ( tables, querys, forms, reports )
Question : Làm thế nào để có thể ẩn nhiều abngr cùng lúc.Hay là ta phải chọn từng bảng rôi ẩn.Vì trong CSDL có nhiều bảng mà ẩn từng cái bảng một thì rất là lâu.Tưng tụ với Form hay Report
Question : Làm thế nào để có thể ẩn nhiều abngr cùng lúc.Hay là ta phải chọn từng bảng rôi ẩn.Vì trong CSDL có nhiều bảng mà ẩn từng cái bảng một thì rất là lâu.Tưng tụ với Form hay Report
Tùy biến Tiêu Đề Report
Queston: Tôi có 1 report chia làm nhiều group. Mỗi cuối group tôi dùng page break để sang trang. Tôi muốn vài thông tin Page header chỉ hiển thị khi sang group mới.
8/12/09
Hướng Dẫn Tạo Menu Trong Access
Có nhiều cách để tạo Menu!
Sau đây, mình xin giới thiệu 1 tài liệu hướng dẫn tạo menu trong Access. Theo mình đánh giá là rất tốt và rõ ràng!
DownLoad
Sau đây, mình xin giới thiệu 1 tài liệu hướng dẫn tạo menu trong Access. Theo mình đánh giá là rất tốt và rõ ràng!
DownLoad
Đóng gói chương trình Access
Nhiều bạn làm Access rất hay trăn trở làm thế nào đóng gói chương trình Access của mình cho trông nó chuyên nghiệp một tý.
So Sanh chính Xác chữ Hoa- Thường trong Access
Muốn so sánh chính xác từng ký tự một, hoa ra hoa, thường ra thường thì ở đầu trang module, thay câu lệnh Option Compare Database nếu có bằng Option Compare Binary là OK thôi.
____________________________________________________________________________________
Thảo luận thêm tại: http://thuthuataccess.co.cc/forum
____________________________________________________________________________________
Thảo luận thêm tại: http://thuthuataccess.co.cc/forum
7/12/09
Hàm đọc số dùng mã Unicode trong Access
Report Footer luôn nằm ở cuối của trang cuối cùng
Giả sử bạn muốn đặt Textbox Txt01 luôn nằm ở cuối của trang cuối cùng. Đừng đặt nó ở Report Footer mà đặt ở Page Footer và thêm đoạn code sau :
Private Sub PageFooter_Format(Cancel As Integer, FormatCount As Integer)
if Me.Page = Me.Pages then
Me.Txt01.Visible = True
else
Me.Txt01.Visible = False
End Sub
____________________________________________________________________________________
Thảo luận thêm tại: http://thuthuataccess.co.cc/forum
Private Sub PageFooter_Format(Cancel As Integer, FormatCount As Integer)
if Me.Page = Me.Pages then
Me.Txt01.Visible = True
else
Me.Txt01.Visible = False
End Sub
____________________________________________________________________________________
Thảo luận thêm tại: http://thuthuataccess.co.cc/forum
Xử lý hiện thông báo khi không nhập dữ liệu vào texbox
Bạn sử dụng event on Lost Focus của textbox muốn ktra. Khi thoát khỏi thì check có IsNull hay kô? nếu IsNull là true thì quay lại ô đó textbox.SetFocus
Import Dữ Liệu Từ Excel Vào Access
Để nhập mới nội dung một table (trong Access) từ một tập tin Excel, ta có thể dùng một trong những cách sau đây:
5/12/09
Đăng nhập sai 5 lần chờ 15 phút
Question :Thấy các diễn đàn chỉ cho đăng nhạp 5 lần,nếu sai thì 15 phút sau mới cho đang nhập lại.Thế thì mình nghĩ ra ý tương rằng,cái này chúng ta có thể áp dụng trong Form đăng nhập được không.Điều kiện:
Đăng nhập sai 5 lần thì dù có đăng nhập đúng đi chăng nữa cũng không vào đuợc CSDL.
Đăng nhập sai 5 lần thì dù có đăng nhập đúng đi chăng nữa cũng không vào đuợc CSDL.
4/12/09
Link table từ MDB có password
TransferDatabase to open password protect database
Question : Tôi xây dựng chương trình có 2 file: 1 file để thực hiện các thao tác trên FORM và xử lý thông tin (DBSYS.mdb) và 1 file để lưu trữ dữ liệu(DBDATA.mdb)
- Để cho người khác không thể vào được các dữ liệu lưu trữ, tôi đặt pass vào file DBDATA.
- Tôi tạo biến về đường dẫn để có thể tùy ý người sử dụng thay đổi thư mục của chương trình. Khi thay đổi thư mục của chương trình, thì sẽ tự tạo lại các link đến các table trong DBDATA.
Vấn đề là: để thực hiện các lệnh link thì phải gõ pass. Nhưng mỗi một lệnh linktable, lại phải gõ pass một lần.
Các PRO xem có cách nào giúp tôi: đặt sẵn và dùng VBA tại file chính (DBSYS) có thể link table từ DBDATA mà không cần phải gõ pass không (chỉ có sử dụng lệnh trong DBSYS mới không yêu cầu pass, còn các hình thức khác đều yêu cầu pass)
Question : Tôi xây dựng chương trình có 2 file: 1 file để thực hiện các thao tác trên FORM và xử lý thông tin (DBSYS.mdb) và 1 file để lưu trữ dữ liệu(DBDATA.mdb)
- Để cho người khác không thể vào được các dữ liệu lưu trữ, tôi đặt pass vào file DBDATA.
- Tôi tạo biến về đường dẫn để có thể tùy ý người sử dụng thay đổi thư mục của chương trình. Khi thay đổi thư mục của chương trình, thì sẽ tự tạo lại các link đến các table trong DBDATA.
Vấn đề là: để thực hiện các lệnh link thì phải gõ pass. Nhưng mỗi một lệnh linktable, lại phải gõ pass một lần.
Các PRO xem có cách nào giúp tôi: đặt sẵn và dùng VBA tại file chính (DBSYS) có thể link table từ DBDATA mà không cần phải gõ pass không (chỉ có sử dụng lệnh trong DBSYS mới không yêu cầu pass, còn các hình thức khác đều yêu cầu pass)
Đăng ký:
Bài đăng (Atom)