nhờ các bạn giúp đỡ.

quanghn81

New Member
Hội viên mới
chao cac ban.
Minh là người mới biết và đang tìm hiểu về access và thấy đây là chương trình rất hay. mình đang gặp một vấn đề các bạn có thể hướng dẫn giúp mình được không.
Mình có 1 table bán hàng gồm các field: ngayban, nvban, loaihang, sluong.
và 1 form dùng để nhập liệu (như file đính kèm)
Mình nhờ các bạn viết giúp đoạn mã cho nút Luu du lieu để các text ngayban và NV banhang chi nhập 1 lần, còn loại hàng thì sẽ nhập nhiều loại.
khi bấm luu thì chương trình sẽ tự động cập nhật nhiều bản ghi vào table banhang.
mong cac ban giúp đỡ.
file cua minh
http://www.4shared.com/file/68070183/4648a800/thongke.html
 
Ðề: nhờ các bạn giúp đỡ.

Góp ý với bạn nha: Trên form bạn không chọn Record Source nên ko thể lưu bào table.
 
Ðề: nhờ các bạn giúp đỡ.

cám ơn bạn tienduyet đã góp ý, nhờ các bạn giúp mình sửa lại hoặc mình nghĩ cái này có thể làm được bằng VBA
 
Ðề: nhờ các bạn giúp đỡ.

cám ơn bạn. nhưng bạn đã hiểu sai ý của mình rồi. Ý mình là cùng một nhân viên, cùng ngày bán nhưng loại hàng và số lượng mình muốn nhập một lần nhiều loại hàng. còn các field Ngày bán và NVbán trong table bán hàng tự động copy giá trị là ngày bán và ten NVban xuống. như file của mình đã đưa. Cùng ngày bán, cùng NV bán nhưng số lượng loại hàng là 7 loại.
Nói chung ý mình là có thể lưu 1 lần nhiều records không?
 
Sửa lần cuối:
Ðề: nhờ các bạn giúp đỡ.

Nhưng bạn chỉ có 1 table thì chưa thể đáp ứng được yêu cầu.
Suy nghĩ của mình thì ít nhất bạn cũng phải có 3 table: tblNhanVien, tblLoaiHang, và tblGiaoDich. Trong đó tblNhanVien <---> tblGiaoDich liên kết 1 - n, tblGiaoDich <---> tblLoaiHang liên kết 1 - n. Từ đó bạn tạo 1Form frmGiaoDich (làm theo Wizard cho nhanh), trên form này bạn nhập Mã nhân viên -> tức khắc bạn có Họ tên đầy đủ của Mã nhân viên đó, tương tự Loại hàng cũng thế.

Kết luận: Bạn chỉ có 1 table thì yêu cầu đó có thể chưa làm được

Trên đây là ý kiến của mình thôi, bạn nên tham khảo các bậc đàn anh khác; trên 4rum nhiều anh giỏi lắm, ví như anh: phatnq2002 hay muontennguoi,.....
 
Ðề: nhờ các bạn giúp đỡ.

Hướng dẫn của bạn Tienduyet minh chưa hiểu lắm.Có cao thủ nào có thể giải quyết vấn đề này giúp mình không nhỉ.
 
Ðề: nhờ các bạn giúp đỡ.

Bạn hãy viết đoạn mã sau cho sự kiện khi con trỏ chuột rơi vào ô nhập liệu ngày bán như sau:

Option Compare Database

Private Sub Ngayban_GotFocus()
If IsNull(Ngayban) Then
Ngayban = DLast("NgayBan", "Banhang")
Nhanvienban = DLast("NhanvienBan", "Banhang")
Mathang.SetFocus
End If
End Sub

Giải thích: Khi con trỏ rơi vào ô ngày bán mà chưa nhập dữ liệu có nghĩa là bạn muốn nhập dữ liệu vào 1 record mới. Ngay lập tức chương trình sẽ phát hiện ra điều này và tìm để lấy ngày bán và nhân viên bán cuối cùng gán cho các trường tương ứng trong record mới này. Đồng thời con trỏ sẽ rơi vào ô mặt hàng để bán không phải mất thêm 2 lần nhấn phím rồi mới nhập liệu được.
Còn khi con trỏ rơi vào Ô ngày bán đã có dữ liệu thì nó lặng thinh không làm gì cả.
Chúc may mắn!
 
Ðề: nhờ các bạn giúp đỡ.

cám ơn bạn. nhưng bạn đã hiểu sai ý của mình rồi. Ý mình là cùng một nhân viên, cùng ngày bán nhưng loại hàng và số lượng mình muốn nhập một lần nhiều loại hàng. còn các field Ngày bán và NVbán trong table bán hàng tự động copy giá trị là ngày bán và ten NVban xuống. như file của mình đã đưa. Cùng ngày bán, cùng NV bán nhưng số lượng loại hàng là 7 loại.
Nói chung ý mình là có thể lưu 1 lần nhiều records không?


Được.


Bạn cho quét qua các txtLOAIHANG(i), txtSOLUONG(i).
(Bạn hãy đặt tên các textbox lại cho có quy luật để tiện dùng hơn).


Cứ mỗi cái đó bạn phát 1 lệnh INSERT:

strSQL="INSERT INTO tblBANHANG (ngayban, nvBan, Loaihang, sluong) VALUES (" & txtNgayban & ", " & txtNVBan & ", " & txtLoaiHang1 & ", " & txtSoLuong1 & ")"

... phát lệnh add vào data ...

strSQL="INSERT INTO tblBANHANG (ngayban, nvBan, Loaihang, sluong) VALUES (" & txtNgayban & ", " & txtNVBan & ", " & txtLoaiHang2 & ", " & txtSoLuong2 & ")"

... phát lệnh add vào data ...


Tất nhiên bạn có thể gom lại thành 1 vòng lặp cho gọn.
 
Ðề: nhờ các bạn giúp đỡ.

Bác muon oi, em chưa xem qua file sample nhưng em nghĩ thế này có ổn không nhé.
Thay vì các câu lệnh hơi kỹ thuật như của bác ta sẽ để giá trị default cho các ô text trùng với tên người nhập và ngày nhập được hiện thị trên form
 
Ðề: nhờ các bạn giúp đỡ.

Bác muon oi, em chưa xem qua file sample nhưng em nghĩ thế này có ổn không nhé.
Thay vì các câu lệnh hơi kỹ thuật như của bác ta sẽ để giá trị default cho các ô text trùng với tên người nhập và ngày nhập được hiện thị trên form


Default là chuyện default. Đó là hổ trợ nhập dữ liệu cho chính xác thôi.

Ở đây, chỉ sau khi nhấn nút "Save" ta mới cho add vào data một loạt record.

Ở mỗi record đó lấy giá trị txtNgayBan gán vào field NgayBan, txtNgayBan vào field NVBan còn MaHang và Soluong thì lần lượt lấy từ các textbox tương ứng.
 
Ðề: nhờ các bạn giúp đỡ.

chao cac ban.
Minh là người mới biết và đang tìm hiểu về access và thấy đây là chương trình rất hay. mình đang gặp một vấn đề các bạn có thể hướng dẫn giúp mình được không.
Mình có 1 table bán hàng gồm các field: ngayban, nvban, loaihang, sluong.
và 1 form dùng để nhập liệu (như file đính kèm)
Mình nhờ các bạn viết giúp đoạn mã cho nút Luu du lieu để các text ngayban và NV banhang chi nhập 1 lần, còn loại hàng thì sẽ nhập nhiều loại.
khi bấm luu thì chương trình sẽ tự động cập nhật nhiều bản ghi vào table banhang.
mong cac ban giúp đỡ.
file cua minh
http://www.4shared.com/file/68070183/4648a800/thongke.html

Thường thì khi xài Access để làm công việc nhập liệu nhiều dòng, người ta sẽ cho nhập vào thông qua form có thiết kế dạng Continuous Form hay Datasheet View.

Trước khi cho lưu trực tiếp vào bảng, người ta sẽ bẫy sự kiện BeforeUpdate của form để có thể gán thêm giá trị cho một số control có Control Source là các field thường nhận giá trị lập.

Làm như vậy có vẻ dễ hơn nhiều.
 

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