Xây dựng một trình quản lý nhập xuất tồn đơn giản - Bài 2: Thiết kế giao diện

Trạng thái
Không mở trả lời sau này.

phatnq2002

Tích cực giảm cân...
Hội viên mới
THIẾT KẾ CÁC GIAO DIỆN

Lẽ ra khi thiết kế các bảng dữ liệu xong thì tiến hành thiết kế các quan hệ (relationship), nhưng để các bạn không phải quá nóng lòng thì tôi tạm thời chuyển qua phần Thiết kế giao diện. Phần quan hệ để bài sau ta đề cập lại.

1. Thiết kế giao diện để nhập danh sách hàng hóa:
Từ thiết kế này, các bạn có thể thiết kế cho các giao diện nhập danh sách nhà cung cấp và khách hàng tương tự.

Tạo một form mới: từ cửa sổ Database window, chọn Objects --> Forms, chọn tiếp Create form in design view --> cửa sổ thiết kế giao diện trắng.
Xác lập một số thuộc tính cho form:
Nếu chưa xuất hiện cửa sổ Properties, nhấn phím F4.
Ở cửa sổ Properties, định các thuộc tính sau:
- Tiêu đề của form: Caption: Danh mục hàng hóa
- Giao diện mặc nhiên khi run form: Default view: Single Form (nghĩa là mỗi lần chỉ thấy một record trên form mà thôi)
- Không cần các thanh trượt: Scroll Bars: Neither
- Không cần nút chọn record: Record Selectors: No
- Không cần thanh navigator mặc định: Navigation Buttons: No
- Không cần các đường phân cách giữa các section: Dividing Lines: No
- Cho "em nó" vào giữa màn hình: Auto Center: Yes
- Không cho thay đổi kích thước form: Border Style: Dialog
- Xác định dữ liệu nguồn (underlying table) của form: Record Source: tblDMHH
- Khi đang làm việc trên form thì không cho "nhắp nhảy" đến cửa sổ khác cho đến khi form đóng: Modal: Yes
- Khi nhấn ENTER/TAB thì focus chỉ chạy vòng vòng trong các control của record hiện hành mà thôi: Cycle: Current Record
- Khi run form thì không cho thay đổi design: Allow Design Changes: Design View Only

Đến đây Lưu cái cho chắc ăn. Đặt cho nó cái tên là frmDMHH.
Ác cái là tôi không thể up cái hình lên để dễ dàng hướng dẫn cho các bạn, nên đành "chay" vậy.

Bây giờ bạn mở cửa sổ Field List ra: View - Field List
Kéo hết mấy em ở đây vào section Detail, sau đó điều chỉnh, bố trí lại cho thích hợp.
Nếu em DVT chưa là combo box thì chuyển nó thành combo box:
- Nhắp phải lên nó, chọn Change To --> Combo Box.
- Ở cửa sổ Properties:
Row Source Type: Value List
Row Source: ký;cái;bộ;hộp;chai (tạm vài loại đơn vị, ta có thể thêm khi run form)
Các em trên bạn định thuộc tính Locked của nó là Yes. Cái này để điều khiển việc nhập liệu, khi nào người ta nhấn Mới hoặc Sửa thì mới cho thay đổi nội dung trong control.
Tạo tiếp hai nút lệnh ở Detail luôn:
Nút lệnh 1: Caption: Lưu; Name: cmdSave; Enabled: No
Nút lệnh 2: Caption: Không lưu; Name: cmdUndo; Enabled: No

Cho show cái section Form Footer: View Form Header/Footer. Thu chiều cao form Header = 0.
Đặt một số nút lệnh sau:
Nút lệnh 1: Caption: Mới; Name: cmdNew
Nút lệnh 2: Caption: Sửa; Name: cmdEdit
Nút lệnh 3: Caption: Xóa; Name: cmdDelete
Nút lệnh 4: Caption: In; Name: cmdPrint
Nút lệnh 5: Caption: Đóng; Name: cmdClose

Đến đây bạn đã xong cơ bản cái giao diện ban đầu của form Danh mục hàng hóa rồi.
 
Sửa lần cuối:
Ðề: Xây dựng một trình quản lý nhập xuất tồn đơn giản - Bài 2: Thiết kế giao diện

1. cảm ơn anh (chi) phatnp2002 đã đưa ra ý kiến Xây dựng một trình quản lý nhập xuất tồn đơn giản trên diễn đàn để mọi người tham gia cùng thực hiện. Tuy nhiên để mọi người có thể biết được cách làm cụ thể, thì trong mỗi bước anh (chi) nên nêu ra những nội dung mà mọi người cần phải thực hiện, sau mỗi bước anh (chi) nên hỏi mọi người xem đã làm được đến đâu, còn vướng mắc vấn đề gì không, sau đó mới tiếp tục thực hiện các bước tiếp theo.

2. Theo em anh(chị) nên để vấn đề này vào một mục để mọi người tiện theo dõi.

Cảm ơn anh (chi) đã đưa ra ý tưởng khá hay.
 
Ðề: Xây dựng một trình quản lý nhập xuất tồn đơn giản - Bài 2: Thiết kế giao diện

1. cảm ơn anh (chi) phatnp2002 đã đưa ra ý kiến Xây dựng một trình quản lý nhập xuất tồn đơn giản trên diễn đàn để mọi người tham gia cùng thực hiện. Tuy nhiên để mọi người có thể biết được cách làm cụ thể, thì trong mỗi bước anh (chi) nên nêu ra những nội dung mà mọi người cần phải thực hiện, sau mỗi bước anh (chi) nên hỏi mọi người xem đã làm được đến đâu, còn vướng mắc vấn đề gì không, sau đó mới tiếp tục thực hiện các bước tiếp theo.

2. Theo em anh(chị) nên để vấn đề này vào một mục để mọi người tiện theo dõi.

Cảm ơn anh (chi) đã đưa ra ý tưởng khá hay.

1. Mong muốn của tôi cũng là vậy, vì khi có trao đổi thì vấn đề mới trở nên sôi nổi, linh hoạt hơn. Tuy nhiên hình như hiện nay ít người quan tâm đến thread này của tôi lắm thì phải.
2. Cái này thì phải được phép của admin bạn ơi, nếu admin ưu ái mở cho một box riêng thì quá tốt, còn không thì đành xài tạm box này vậy.

Thân chào, à nhân tiện các sexual của tôi là male, nên bạn nếu còn nhỏ tuổi cứ gọi tôi là anh cho tiện. :sifone:
 
Ðề: Xây dựng một trình quản lý nhập xuất tồn đơn giản - Bài 2: Thiết kế giao diện

Hỏi anh phatnq2002: Không biết là anh đang hương dẫn mọi người xây dụng chương trình quản lý nhập xuất tồn trên EXCEL, ASSCESS hay Visual basic ?

Em mới tìm được bài 1 hướng dẫn của anh để đọc, mới biết là xây dựng cơ sở dữ liệu trên access.

Em chưa hiểu những hướng dẫn sau của anh:

Kéo hết mấy em ở đây vào section Detail, sau đó điều chỉnh, bố trí lại cho thích hợp.
Nếu em DVT chưa là combo box thì chuyển nó thành combo box:
- Nhắp phải lên nó, chọn Change To --> Combo Box.
- Ở cửa sổ Properties:
Row Source Type: Value List
Row Source: ký;cái;bộ;hộp;chai (tạm vài loại đơn vị, ta có thể thêm khi run form)
Các em trên bạn định thuộc tính Locked của nó là Yes. Cái này để điều khiển việc nhập liệu, khi nào người ta nhấn Mới hoặc Sửa thì mới cho thay đổi nội dung trong control.

Anh có thể giải thích rõ thêm được không

em làm theo cách anh hướng dẫn nhưng chỉ làm được đến chỗ chọn: Cycle: Current Record.

Theo hướng dẫn của anh: trong máy của em không có : Allow Design Changes để chọn Design View Only.

Anh có thể cho em địa chỉ Email của anh được không để em có thể chụp và gửi hình cách làm của em cho anh xem có đúng không, hoặc anh gửicho em theo địa chỉ thangtctk@yahoo.com
 
Sửa lần cuối:
Ðề: Xây dựng một trình quản lý nhập xuất tồn đơn giản - Bài 2: Thiết kế giao diện

Do tôi không biết làm thế nào để up mấy cái hình ví dụ lên nên cũng khó để giải thích hết.

Đúng ra tôi có thể trả lời riêng cho bạn thangtckt nhưng để các bạn khác có quan tâm cũng có thể nhận thêm một số thông tin cần thiết:

Đoạn mà bạn quan tâm:
Kéo hết mấy em ở đây vào section Detail, sau đó điều chỉnh, bố trí lại cho thích hợp.
Nếu em DVT chưa là combo box thì chuyển nó thành combo box:
- Nhắp phải lên nó, chọn Change To --> Combo Box.
- Ở cửa sổ Properties:
Row Source Type: Value List
Row Source: ký;cái;bộ;hộp;chai (tạm vài loại đơn vị, ta có thể thêm khi run form)
Các em trên bạn định thuộc tính Locked của nó là Yes. Cái này để điều khiển việc nhập liệu, khi nào người ta nhấn Mới hoặc Sửa thì mới cho thay đổi nội dung trong control.

Có 2 ý, một là đưa toàn bộ những field có trong table nguồn vào khu vực detail của form, bởi khu vực này là nơi thể hiện nội dung của một record. Bố trí lại cho thích hợp có nghĩa là bạn đặt để lại vị trí của các đối tượng được đưa vào sao cho nó "đẹp torng mắt ai" tùy theo ý người thiết kế.
Hai là thông thường DVT là cái người ta thích chọn, bởi vì dvt thường là những giá trị lặp lại. Bởi vậy mình sẽ chuyển nó sang control combo box để cho người sử dụng có thể lựa chọn và/hoặc nhập vào.
Row Source Type: Value List --> chỉ định nguồn cung cấp dữ liệu cho các dòng chọn trong combo box là một dãy danh sách cố định. Nếu là Table/Query thì có nghĩa là lấy từ một table hoặc query sẵn có.
Row Source: do Row Source Type là Value List cho nên ở đây ta nhập vào danh sách các dvt thông dụng. Mỗi dvt cách nhau bằng dấu chấm phẩy (đây là bắt buộc).
Đặt thuộc tính Locked =Yes của các Textbox, Combo box có trong Detail nhằm mục đích điều khiển việc nhập liệu. Nghĩa là khi nào người sử dụng nhấn Mới hoặc Sửa thì mới cho nhập vào text box hoặc combo box, còn không thì không cho nhập, chỉ cho xem thôi.

Thuộc tính Allow Design Changes là thuộc tính của Form và xuất hiện trong Access 2003 trở đi. Bạn coi lại bản Access của bạn hoặc design lại cái form, có khả năng bạn tìm thuộc tính trong khi bạn chưa chọn form mà bạn vẫn con trong chế độ chọn text box hoặc combo box gì đó.

Còn muốn nhắn riêng gì cho tôi, bạn cứ chọn nick của tôi trong diễn đàn và chọn gửi tin nhắn cho tôi.

Chào.
 
Ðề: Xây dựng một trình quản lý nhập xuất tồn đơn giản - Bài 2: Thiết kế giao diện

Do tôi không biết làm thế nào để up mấy cái hình ví dụ lên nên cũng khó để giải thích hết.

Để up hình, bạn có thể vào trang www.imageshack.us, upload hình lên, sau đó lấy link bỏ hình vào bài viết là được.
 
Ðề: Xây dựng một trình quản lý nhập xuất tồn đơn giản - Bài 2: Thiết kế giao diện

Bây giờ chúng ta sẽ bắt đầu làm cái vụ code cho em frmDMHH nhé.
Đây là hình thiết kế của form frmDMHH, các bạn down về xem nhé.
http://www.wikifortio.com/844602/frmDMHH.png
hoặc vào http://www.wikifortio.com, gõ vào ID: 844602 ở download để lấy hình về.

1. Code cho nút thêm mới: cmdMoi
Nội dung công việc:
- Cho các control textbox và combo box ở Detail về trạng thái có thể nhập vào được.
- Gọi phương thức thêm mới một record.
- Đặt focus và textbox mahh. Sở dĩ phải làm điều này vì chúng ta sẽ gọi một phương thức thêm mới một record và quan trọng hơn là khi muốn disable các nút Mới, Sửa, ... ta phải dời focus ra khỏi nó.
- Disable các nút Mới, Sửa, ...

Bây giờ bắt tay vào code đây:
- Chọn nút lệnh cmdNew (Mới)
- Nhấn F4 để hiển thị cửa sổ Properties nếu nó chưa xuất hiện.
- Chọn trang Event, tìm đến sự kiện On Click, nhắp nút xổ, chọn [Event procedure].
- Nhắp nút ba chấm bên phải để vào cửa sổ VBA.
Điền vào thủ tục sự kiện cmdNew_Click() nội dung sau:

Mã:
[COLOR=Red]Private Sub cmdNew_Click()
mahh.SetFocus ' Dời focus lên textbox mahh
' Nhảy đến record mới
' Nếu đang hiện diện record nào đó thì mới gọi lệnh chuyển đến record mới
If Not IsNull(mahh) Then
DoCmd.RunCommand acCmdRecordsGotoNew
End If
' Cho unlock các control trên Detail
mahh.Locked = False
tenhh.Locked = False
dvt.Locked = False
sltontoithieu.Locked = False
cmdSave.Enabled = True
cmdUndo.Enabled = True
' Cho disable các nút lệnh dưới Form Footer
cmdNew.Enabled = False
cmdEdit.Enabled = False
cmdDelete.Enabled = False
cmdPrint.Enabled = False
cmdClose.Enabled = False
End Sub
[/COLOR]
2. Code cho nút sửa: cmdEdit
Nội dung công việc:
- Nếu không có hiện diện record nào sẵn thì thoát thủ tục.
Ngược lại thì
- Cho các control textbox và combo box ở Detail về trạng thái có thể nhập.
- Gọi phương thức thêm mới một record.
- Đặt focus và textbox mahh.
- Disable các nút Mới, Sửa, ...

Thao tác code tương tự nút Mới.
Điền vào thủ tục sự kiện cmdEdit_Click() nội dung sau:

Mã:
[COLOR=Red]Private Sub cmdEdit_Click()
' Nếu không có record nào hiện diện thì out
If Not IsNull(mahh) Then 
Exit Sub
End If
mahh.SetFocus ' Dời focus lên textbox mahh
' Cho unlock các control trên Detail
mahh.Locked = False
tenhh.Locked = False
dvt.Locked = False
sltontoithieu.Locked = False
cmdSave.Enabled = True
cmdUndo.Enabled = True
' Cho disable các nút lệnh dưới Form Footer
cmdNew.Enabled = False
cmdEdit.Enabled = False
cmdDelete.Enabled = False
cmdPrint.Enabled = False
cmdClose.Enabled = False
End Sub
[/COLOR]
Công nhận, code kiểu này thấy phẻ quá hả ??? (Copy - Paste nhé)

3. Code cho nút Xóa: cmdDelete
Lưu ý:
Tùy lúc có thể cho làm thao tác này hoặc không, nhưng để các bạn có thể hiểu được thao tác này, tôi show ra luôn.
Nội dung công việc:
- Nếu có record nào đó hiện diện thì mới làm, không thì thoát.
- Hỏi người ta đàng hoàng, khi nào người ta OK thì mới xóa.
Chú ý:
Khi lệnh xóa record được gọi thì các sự kiện Delete của form sẽ được "kích" - trigger, trong đó cái sự kiện BeforeDelConfirm sẽ mặc định show cái message của Access. Cho nên chúng ta phải làm sao tắt cái message này luôn mới được.

Tiến hành:

Làm động tác tắt cái thông báo xóa trước:
Chọn form, bạn có thể nhắp vào nút xám hình vuông ở góc trái trên, giao điểm của hai cây thước.
Ở sự kiện BeforeDelConfirm, chọn [Event procedure] và tiến àhnh code cho thủ tục này như sau:
Mã:
Private Sub Form_BeforeDelConfirm (Response As Integer, Cancel As Integer)
Response = acDataErrContinue
End Sub

Code cho nút Xóa:
Mã:
Private Sub cmdDelete ()
' Nếu không có record nào hiện diện thì out
If Not IsNull(mahh) Then 
Exit Sub
End If
' Hiện hộp xác nhận, có hai nút Yes-No, có ký hiệu chấm hỏi, nếu lỡ Enter theo thói quen thì sẽ là No (cho chắc ăn)
If MsgBox("Co that su la ban muon xoa khong?", vbYesNo + vbQuestion + vbDefaultButton2, "Xac nhan xoa") = vbYes Then
DoCmd.RundCommand acCmdDeleteRecord
End If
End Sub

4. Code cho nút In: cmdPrint
Cái này làm sẵn, bởi vì ta chưa có cái "zipót" (report) nào. Khi nào làm xong là nó sẽ "phơi phới" thôi.

Mã:
Private Sub cmdPrint ()
' Cái vụ on error này để tránh trường hợp report chưa có mà người ta nhấn thì không bị "chửi"
' Mở report ở cửa sổ xem trước cho chắc ăn
On Error Resume Next
DoCmd.OpenReport "rptDMHH", acViewPreview
On Error Goto 0
End Sub

Còn 3 nút nữa, cố lên. :sifone:

5. Code cho nút Đóng: cmdClose
' Đóng cái cửa sổ
Mã:
Private Sub cmdClose ()
DoCmd.Close acForm, Me.Name
End Sub

-------------

6. Code cho nút Lưu: cmdSave

Mã:
Private Sub cmdSave ()
' Kiểm tra dữ liệu nhập vào
' Kiểm thủ công cái tên và cái đvt, còn cái mã thì để Access bắt rồi mình "bẫy"
If IsNull(tenhh) Or IsNull(dvt) Then
   MsgBox "Khong duoc de trong ten va/hoac don vi tinh.", "Thong Bao"
   Exit Sub
End If
On Error Goto errSaveClick ' nếu xảy ra lỗi trên mã số thì chạy xuống dưới chỗ errSaveClick
DoCmd.RunCommand acCmdSaveRecord
' Trở về trạng thái ban đầu - lock các control detail, bật lại các nút
cmdNew.Enabled = True
cmdEdit.Enabled = True
cmdDelete.Enabled = True
cmdPrint.Enabled = True
cmdClose.Enabled = True
cmdNew.SetFocus
mahh.Locked = True
tenhh.Locked = True
dvt.Locked = True
sltontoithieu.Locked = True
cmdSave.Enabled = False
cmdUndo.Enabled = False
exitSaveClick:
Exit Sub
errSaveClick:
' Coi lỗi là gì thì báo cho người ta biết
Select Case err.Number
Case 3022
   MsgBox "Trung ma so hang, cho ma so khac.", "Thong Bao"
Case 3058
   MsgBox "De trong ma so hang, vui long nhap vao.", "Thong Bao"
Case Else
   MsgBox "Loi chua biet, xin xem noi dung loi duoi day: " & chr(13) & "Loi: " & err.Number & chr(13) & err.Description, "Thong Bao"
End Select
Resume exitSaveClick
End Sub


7. Code cho nút Không lưu: cmdUndo

Mã:
Private Sub cmdUndo ()
' Lỡ người ta chả nhập gì mà nhấn undo là Access nó chửi một câu gì đó ngay. Bởi vậy mình phải đề phòng.
On Error Resume Next
DoCmd.RunCommand acCmdUndo
On Error Goto 0
' Trở về trạng thái ban đầu - lock các control detail, bật lại các nút
cmdNew.Enabled = True
cmdEdit.Enabled = True
cmdDelete.Enabled = True
cmdPrint.Enabled = True
cmdClose.Enabled = True
cmdNew.SetFocus
mahh.Locked = True
tenhh.Locked = True
dvt.Locked = True
sltontoithieu.Locked = True
cmdSave.Enabled = False
cmdUndo.Enabled = False
End Sub

Trên đây là toàn bộ các code của những thủ tục sự kiện áp dụng cho form frmDMHH. Các bạn có thể xem, chép về và "ngâm cứu", nếu không rõ cứ hỏi tiếp nhé.

:cheers2:
 
Ðề: Xây dựng một trình quản lý nhập xuất tồn đơn giản - Bài 2: Thiết kế giao diện

Sao không thấy ai có ý kiến gì hết trơn vậy cà ??? :confused:

Các bạn nào có ý kiến đóng góp thêm, hoặc có hỏi gì thêm thì cứ tự nhiên. Để tôi còn qua cái khác nghen.

Một chút "tâm tình" trước khi đi tiếp nghen:

Trước đây tôi đã từng là giáo viên đứng lớp dạy môn lập trình của một số trung tâm. Chỉ là trung tâm thôi bở tôi nào hề có bằng cấp cao siêu gì đâu, do vậy làm gì có cửa chen chân vào các trường đại học hoặc cao đẳng chuyên nghiệp???

Hơn mười năm đi dạy và làm nghề, buồn có vui có, nhưng càng về sau càng buồn. Buồn thứ nhất và là nỗi buồn lớn nhất là học sinh mà tôi dạy ngày càng kém những kiến thức căn bản, thụ động trong tư duy. Tất nhiên không phải là tất cả, cá biệt vẫn còn có những bạn thật sự xuất sắc mà tôi rất sung sướng truyền lại những kinh nghiệm của mình cho các bạn ấy.

Cái buồn thứ hai là đi dạy trung tâm nên thù lao không cao, không nuôi sống được mình và gia đình. Giá cả càng ngày càng lên torng khi thù lao các nơi trả vẫn "bình chân như vại", thậm chí có nơi còn tuyển những người mới ra trường để thay thể những người "già mà nhiều đòi hỏi" như chúng tôi. Tất nhiên là chất lượng sẽ ra sao thì các bạn đã biết rồi.

Các bạn sẽ hỏi vậy với kinh nghiệm và khả năng của mình, tại sao tôi không xin vào làm ở những công ty phần mềm? Xin thưa, như tôi nói tôi không có bằng cấp chính quy + tôi đã lớn tuổi, năm nay đã ngoài 40, ai sẽ tuyển một lão già vào rồi trả lương ra sao? Tất nhiên tôi cũng có nhận một số chương trình để viết kiếm thêm thu nhập.

Khi đã không còn chịu nỗi cái áp lực giá cả sinh hoạt của gia đình + không còn hứng thú nữa thì tôi đã nghỉ dạy, hiện nay tôi vẫn nghề nhưng cho một doanh nghiệp. Lương cũng tạm ổn hơn trước một ít.

Dù không còn dạy nữa, nhưng làm như cái "nghiệp dạy" nó vận vào mình hay sao ấy.

Vậy nên mới có loạt bài hướng dẫn xây dựng một ứng dụng nhập xuất tồn này, âu cũng là trả cái nghiệp và cũng là nhân ngày 20-11, làm một chút gì đó của người đưa đò.

Cảm ơn các bạn đã quan tâm.

Các bác admin đừng có xóa cái này của tôi nhé. Lâu lâu cho một cái ngoại lệ đi. Thanh kìu.

Vài phút tâm tình đã hết, chuẩn bị bài mới nhé các bạn .....
:sifone:
 
Sửa lần cuối:
Ðề: Xây dựng một trình quản lý nhập xuất tồn đơn giản - Bài 2: Thiết kế giao diện

Ý kiến đóng góp:
- Khi form có liên quan đến dữ liệu, khi được mở ra nhất thiết phải ở trạng thái chỉ xem, không cho sửa. Vì vô tình ai đánh rơi cây viết vào bàn phím thế là dữ liệu có thể bị sai lệch... Nên khi mở form có dữ liệu nên viết thêm đoạn code như sau:
Sự kiện On Form Open
Me.AllowEdits = false
Me.AllowDeletions = false
Me.AllowAdditions = false

Khi nút CmdNew được click thì phải tìm cách kích hoạt, và nên sử dụng nút CmdNew làm 2 nhiệm vụ. Khi click lần đầu vào thì là Captiop sẽ thay đổi là "Save", khi Click lại caption là "Mới":

Vậy:

IF Me.CmdNew.Caption="Mới" then
Me.AllowEdits = True
Me.AllowAdditions = True
Me.CmdNew.Caption="Save"
....
ELSE
Me.AllowEdits = False
Me.AllowAdditions = False
Me.CmdNew.Caption="Mới"
....
END IF
 
Ðề: Xây dựng một trình quản lý nhập xuất tồn đơn giản - Bài 2: Thiết kế giao diện

Ý kiến đóng góp:
- Khi form có liên quan đến dữ liệu, khi được mở ra nhất thiết phải ở trạng thái chỉ xem, không cho sửa. Vì vô tình ai đánh rơi cây viết vào bàn phím thế là dữ liệu có thể bị sai lệch... Nên khi mở form có dữ liệu nên viết thêm đoạn code như sau:
Sự kiện On Form Open
Me.AllowEdits = false
Me.AllowDeletions = false
Me.AllowAdditions = false

Khi nút CmdNew được click thì phải tìm cách kích hoạt, và nên sử dụng nút CmdNew làm 2 nhiệm vụ. Khi click lần đầu vào thì là Captiop sẽ thay đổi là "Save", khi Click lại caption là "Mới":

Vậy:

IF Me.CmdNew.Caption="Mới" then
Me.AllowEdits = True
Me.AllowAdditions = True
Me.CmdNew.Caption="Save"
....
ELSE
Me.AllowEdits = False
Me.AllowAdditions = False
Me.CmdNew.Caption="Mới"
....
END IF

Chào bạn dangtuanson mến, hình như bạn chưa đọc kỹ cái post đầu tiên trong thread này. Tất cả các control textbox, combo box trong detail khi khởi gán tôi đều cho là Locked = Yes có nghĩa là không thể hiệu chỉnh gì được. Các nút Save và Undo thì tôi cho nó Enabled là No có nghĩa là nó sẽ mờ đi.
Như vậy người sử dụng không thể nào hiệu chỉnh những gì thấy trên form cả.

Cách của bạn không sai đâu, vẫn là một trong nhiều cách để thiết kế mà.
Cảm ơn đã có ý kiến. Chào.
 
Ðề: Xây dựng một trình quản lý nhập xuất tồn đơn giản - Bài 2: Thiết kế giao diện

Xin chân thành cảm ơn Phatnq2002 vì những chia sẻ của anh cho mọi người .
Tôi đang thiết kế CT NXT theo hướng dẫn của anh, mong anh chia sẻ kiến thức cũng như kinh nghiệm cho mọi người , chúc anh luôn vui vẻ và toại nguyện.
 
Ðề: Xây dựng một trình quản lý nhập xuất tồn đơn giản - Bài 2: Thiết kế giao diện

Theo hương dẫn tôi đã làm được các bảng , và cái form dmhh đưa code vào các thủ tục sự kiện , nhưng quả thực là công phu và không thể có đủ kiên trì để làm tiếp được ...mình nghiệp dư quá ...
 
Sửa lần cuối:
Ðề: Xây dựng một trình quản lý nhập xuất tồn đơn giản - Bài 2: Thiết kế giao diện

chào các ban minh là dan moi tham gia.chỉ mới ở mức học hỏi mong các bạn giúp đỡ.mình có một vấn đề cũng tương tự như xây dựng một trình quản lý nhập xuất tồn đơn giản. cụ thể như sau:
Quản lý thiết bị :nhập và cho mượn chủ yếu là vấn đề mượn xác định được ai mượn mượn cái gì có thể mượn nhiều món.vấn đề mình muốn các bạn giúp mình ý tưởng đề ghi vào danh sách người đó mượn đồ và thống kê coi món đồ nào đó theo thời gian được mượn bao nhiêu lần.
RẤT MONG CÁC BẠN GIÚP ĐỠ
 
Ðề: Xây dựng một trình quản lý nhập xuất tồn đơn giản - Bài 2: Thiết kế giao diện

Rất cám ơn phatnq2002 đã post những bài viết rất dễ hiểu!
Nếu có thời gian tôi sẽ hoàn chỉnh các code của bạn và post lên diễn đàn.
Bạn hãy post phần tiếp theo lập trình DAO nữa đi!
 
Ðề: Xây dựng một trình quản lý nhập xuất tồn đơn giản - Bài 2: Thiết kế giao diện

Bạn nào quan tâm tới Access tôi tặng địa chỉ sau http://www.danketoan.com/forum/forumdisplay.php?f=110

Sau một hồi loay hoay tôi nhận thấy răng Excel ứng dụng vào kế toán vẫn thân thiện hơn, dễ tiêu hóa hơn . Và yên tâm xử dụng Excel vào công việc hàng ngày ...
 
Ðề: Xây dựng một trình quản lý nhập xuất tồn đơn giản - Bài 2: Thiết kế giao diện

Đọc lại bài của bác phatnq2002 lại cảm thấy hơi buồn. Buồn vì nhiều anh em ở đây có niềm đam mê tin học nhưng không dùng nó để sống được.\
Thực tế những cái chúng ta có thể làm được thì có rất nhiều người cần, nhưng mấy ai dám bỏ tiền ra để mua đâu.
Không biết đến bao giờ mọi người mới có cái nhìn về tin học một cách khoa học hơn. Người ta sẵn sàng tuyển thêm vài lao động làm cả năm để làm cái công việc đáng ra chỉ một người +mua 1 phần mềm giá vài triệu là xong.

==>Sáng chơi cổ phiếu, chiều viết chương trình , tối về với vợ với con
 
Trạng thái
Không mở trả lời sau này.

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top