Hôm trước, Noname có giới thiệu hàm tách cột thành chuỗi cách nhau dấu phẩy tại http://thuthuataccess.com/forum/thread-640.html
Hôm nay xin giới thiệu hàm làm nhiệm vụ ngược lại, vì gần đây thấy nhiều bạn thắc mắc về vấn đề tìm kiếm theo nhiều giá trị. Bạn tạo một table tblTam có một trường duy nhất để chứa các giá trĩ trả về của hàm TachChuoi mà chúng ta sẽ soạn thào ngay sau đây. Trong modul, bạn chép hàm TachChuoi này vào
Mã PHP:
Function TachChuoi(ChuoiCanTach As String) Dim rs As Recordset Set rs = CurrentDb.OpenRecordset("tblTam", dbOpenTable) If rs.RecordCount > 0 Then DoCmd.SetWarnings False DoCmd.RunSQL "Delete * From tblTam" DoCmd.SetWarnings True End If Dim Chuoi As String Dim KQ As String Dim VT As Integer, i As Integer KQ = Space(0) Chuoi = Trim(ChuoiCanTach) For i = 1 To Len(Chuoi) VT = InStr(i, Chuoi, ",") If VT > 0 Then KQ = KQ & Left(Chuoi, VT - 1) rs.AddNew rs.Fields(0) = KQ rs.Update Chuoi = Trim(Right(Chuoi, Len(Chuoi) - VT)) KQ = Space(0) End If If i = Len(Chuoi) Then rs.AddNew rs.Fields(0) = Chuoi rs.Update End If Next End Function
Kết quả là ta đã có một table chứa các giá trị trong chuỗi được cách nhau bằng dấu phẩy
Ứng dụng:
Ta có một CSDL quản lý vật tư, có một table tblVatTu gồm MaVT, TenVT, DVT, Ton. Trong một ngày xấu trời, sếp yêu cầu ta báo cáo số lượng tồn của một số vật tư nào đó. Chả lẽ mỗi VT làm 1 query để báo cáo? Vậy ta dùng hàm TachChuoi này kết hợp với một hàm viết trong form nữa là ta có báo cáo cho sếp rồi
Các bạn xem file DeMo sẽ biết cách thực hiện
1/ Mở table tblVatTu xem các vật tư hiện có trong kho
2/ Trong form, ghi các Mã VT cần tìm vào textbox Tách mã VT sau đó nhấn nút command bên cạnh, Giá trị trả về của hàm TachChuoi được hiển thị trong ListBox
Các bạn vận dụng vào trường hợp cụ thể của minh
Thân mến
cau4dphan4 tôi tính tổng nam tổng nữ của mỗi khoa nhưng không hiểu sao access toàn tính số nào thôi, bạn nào giúp ngay cho mình được không sáng mai là thi rồi.
bài này chi dùng đến total thôi nha bạn, đề cương ôn thi mà, không dùng đến mấy cái cao hơn đâu đấy.
Chào các bạn
Mình có làm 1 phần mềm bằng office 2003 nhưng khi mở bằng office 2007 thì có 1 số lỗi như sau:
1. Mở Form tự động (bằng cách tạo macro Autoexec) nhưng khi mở bằng office 2007, mỗi lần đăng nhập phải vào Option--> Enable thì mới đăng nhập được
2. Truyền tham số từ Form qua Report bằng cách tạo Macro cũng bị lỗi
Bạn nào có cách khắc phục giúp minh nhé
Viết bởi: Minh Tiên
18-06-13, 04:26 PM
Chuyên mục: Forms
- Không có hồi đáp
Hôm trước trên diễn đàn các Pro đã có bài phân quyền sử dụng Menu Access rất hay. Hôm nay tmtien261 xin chia sẽ phương pháp củ chuối để các Acc cùng cười nhé !
1.Lý do làm theo PP này:
Mình làm "Tiện ích" quản lý bán hàng. Nên "Tiện ích" phải mở thường xuyên. Vì thế nếu phần quyền khi đăng nhập thì gặp nhiều khó khăn trong việc bảo mật (Nếu Admin quên đóng) cũng như phải đăng nhập lại mỗi khi muốn "Mở chức năng của Admin"....
2. Kết cấu:
- Tạo table UsysRibbons hiển thị Menu (Theo hướng dẫn trên Diễn đàn).
- Tạo table DanhsachNSD gồm: ID, MaNSD, Matkhau, TenNSD, Quyenmoform1, Quyenmoform1 (Có thể thêm các field mỗi field tương ứng với tên mỗi quyền).
- Tạo Form frmKiemtrachucnang gồm: txtMadangnhap, txtMatkhauphanquyen, txtTenform, txtTenchucnang, btnThuchien, btnThoat
- Tạo macro hành động mỗi khi Click vào Menu (Macro tabNhaphang).
3.Cách hoạt động:
- Khi Click vào Menu thì tùy theo chức năng cài đặt trong Macro sẽ mở Form frmKiemtrachucnang (Và settempvars cho txtTenform và txtTenchucnang của frmKiemtrachucnang để kiểm tra "Quyền mở ... của User).
- Khi Click btn Thực hiện trên form frmKiemtrachucnang thì:
+ Kiểm tra xem txtMadangnhap, txtMatkhauphanquyen, txtTenchuchucnang của form với MaNSD, Matkhau, Quyen trong table DanhsachNSD có khớp không:
* Nếu txtMadangnhap, txtMatkhauphanquyen, txtTenchuchucnang khớp thì mở form có tên là txtTenform.
* Nếu txtMadangnhap, txtMatkhauphanquyen khớp, txtTenchucnang không khớp (False) thì thông báo: "User không được mở".
* ...
4. Đây là demo. Demo
Xin chia sẽ để các Pro cùng Acc cũng cười !
Thân chào !
Gán dữ liệu từ list box vào các ô textbox:
Private Sub Form_Current()
If Tên listbox <> tên textbox chứa khóa chính Then Tên listbox = tên textbox chứa khóa chính
End If
End Sub Ngược lại gán dữ liệu từ các ô textbox hiển thị vào list box:
Private Sub Tên listbox _Click()
Tên textbox.SetFocus ' Dat con tro tai o nhap lieu dau tien
DoCmd.FindRecord Tên listbox
End Sub