Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Tạo các Button trên FORM với với số lượng button thay đổi theo dữ Liệu
#1
Xin chào các bạn, hôm nay minh đang gặp vấn đề khó về thiết kế Form mong các bạn giải đáp giúp hoặc có thể góp cho mình ý tưởng
- mình đang làm phần mềm bán cafe với giao diện bàn trực quan, với các cài đặt là sẽ có nhiều khu, mỗi khu có nhiều bàn, đương nhiên số lượng bàn và số lượng khu vực trong quán là tùy theo mỗi quán mà số lượng khác nhau.
- mình sẽ có 2 table: 1 để chứa các khu và 1 để chứa các bàn ( dĩ nhiên các bàn sẽ lưu thông tin là nó ở khu nào)
- vấn đề của mình là nếu click vào khu 1 thì sẽ hiện các bàn trong khu 1, mà cái khó ở đây là vẽ các button hoặc textbox để thể hiện từng bàn như hình bên dưới.
- Mình suy nghĩ theo hướng sẽ viết 1 đối tượng bàn là 1 class, có thuộc tính độ rộng, độ dài, vị trí top, left trên form và các phương thức di chuyển xóa ...
- Mong các bạn góp ý tưởng để mình hoàn có hướng giải quyết tốt nhất, cám ơn các bạn.
PMT
[Hình: Capture_1.png]
Chữ ký của minhtungph Chào Guest! Chúc bạn một ngày tốt lành và học hỏi thêm nhiều điều mới. PMT
Reply
Những người đã cảm ơn
#2
Về việc tổ chức CSDL như thế nào thì tôi không có ý kiến, chỉ góp một số ý kiến cho việc vẽ textbox trên Form.
- Theo tôi làm sẽ cố định số cột (số bàn theo hàng ngang).
- Việc chia bàn theo từng khu sẽ sắp xếp hàng dọc vì sau này có chia khi mới thì cứ nối tiếp bên dưới form.
- Về vẽ textbox tượng trưng cho từng bàn thì có code: tạo Control cho Form. Control được tạo ra này có thể là textbox, label v.v..Bạn ngâm cứu Application.CreateControl
- Bạn nghiên cứu dùng các vòng lặp để tạo các control theo thứ tự, sắp xếp hàng ngang rồi xuống dòng...
Ví dụ: 
        DoCmd.OpenForm "FormTheoDoiBanAn”, acDesign, , , , acHidden
        Set frm = Forms("FormTheoDoiBanAn")
        For lngSttBan = 0 To TongSoBan - 1
            'tao vi tri Top, Left
            If lngSttBan <> 0 Then
                ControlLeft = (lngSttBan* ControlWidth) + 1000
            End If
            Set ctlNewControl = CreateControl(frm, ControlType, acDetail, "",  "", ControlLeft, ControlTop, ControlWidth, ControlHeight)
        Next lngSttBan
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn minhtungph
#3
cám ơn bạn, qua nghiên cứu thì mình thấy kỹ thuật tạo ra control sẽ khó khăn hơn là vẽ sẵn các control như trong hình phía trên ( xin lỗi bạn vì mình mới lên ý tưởng để nghiên cứu chưa có file thực tế để đưa lên), mình tạo các bảng như bên dưới:
KHUVUC(ID,Tên Khu vực)
BAN(ID, Tên bàn, IDKHUVUC,trạng thái (có khách,ko khách, khách mới vào chưa gọi món) )
- Và tương tự với nhóm hàng (nó cũng chứa trong hàng hóa)
NHOMHANG(ID, TEN)
HANGHOA(ID,TEN,IDNHOMHANG)

-Lúc mình làm cái này trên Excel thì mình có thể duyệt hết bảng để lọc trạng thái của các bàn và Fill lên Form thông tin các bàn trong khu vực, tuy nhiên lên Access mình chưa biết làm thế nào để duyệt trên Table để ví dụ như mình chọn Khu vực Cafe thì sẽ hiện các bàn trong khu vực này
- Quan nghiên cứu thì mình thấy có thể đổ bảng dữ liệu hoặc Query vào Recordset , vì trên Recordset có thể duyệt table trên đó, không biết cái đó có đúng Không
ongke0711 là một cao thủ trong access và có tinh thần chia sẽ nên xin giành chút thời gian để gọi ý giúp mình phần này nhé, có thể cho mình một ví dụ minh họa về duyệt Table (chắc có lẽ vì bên Excel chuyển qua nên mình chưa quen với kiểu data binding trong Access, mình hay suy nghĩ theo lối UnBound)
Chữ ký của minhtungph Chào Guest! Chúc bạn một ngày tốt lành và học hỏi thêm nhiều điều mới. PMT
Reply
Những người đã cảm ơn
#4
- Nếu thiết kế sẳn các ô trên Form thì đơn giản hơn rồi.
- Mọi thứ Access xử lý đều dựa trên Table, Form chỉ hiển thị những gì trong table theo giao diện người dùng để dễ quản lý, thao tác thôi. Chủ yếu là bạn thiết kế nhập liệu, quản lý tính tiền bàn ăn như thế nào rồi sau đó ngâm cứu trình bày lên Form theo cách bạn muốn.
- Access form cũng thiết kế kiểu Unbound nhiều đó chứ bạn. Lấy dữ liệu theo như cầu từ table (thông qua các query) rồi gán vào các control trong Form.
Bạn cứ định hình CSDL trước rồi mọi người đóng góp ý kiến, từ từ làm tới thôi.
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn minhtungph
#5
mục đích cuối cùng của mình vẫn là muốn làm phần mềm bán Cafe, tuy nhiên giờ trình của mình chưa tới, mình sẽ học hỏi thêm 1 thời gian sau đó sẽ tiếp tục với topic này, cám ơn ongke0711 đã nhiệt tình giúp đỡ
Chữ ký của minhtungph Chào Guest! Chúc bạn một ngày tốt lành và học hỏi thêm nhiều điều mới. PMT
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Help] Ẩn những record theo điều kiện nam8384 4 151 13-11-18, 04:58 PM
Bài mới nhất: nam8384
  [Hỏi] Cách tạo Cbo để lọc các mặt hàng trong Sub Form samacxanh 3 256 17-10-18, 10:33 AM
Bài mới nhất: vulhu06
  [Help] Điều khiển 1 form từ form khác tranthanhan1962 2 191 30-09-18, 05:57 PM
Bài mới nhất: tranthanhan1962
  [Hỏi] Update theo chuỗi VBA mrsiro 5 237 20-09-18, 10:36 PM
Bài mới nhất: tranthanhan1962
  Lỗi truyền tham số từ Form vào query cannguyen 2 126 20-09-18, 06:49 PM
Bài mới nhất: cannguyen

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line