Sử Dụng Hàm Dlookup Tra Đơn Giá Từ Bảng - Dân Kế Toán

Menu Diễn đàn Dân Kế Toán | Cộng Đồng Kế Toán - Thuế
  • Trang chủ
  • Diễn đàn Bài viết mới Tìm chủ đề
  • Có gì mới Bài viết mới Hoạt động mới nhất
  • Thành viên Đăng ký Thành viên trực tuyến
Đăng nhập Có gì mới? Tìm kiếm

Tìm kiếm

Everywhere Chủ đề This forum This thread Chỉ tìm trong tiêu đề Bởi: Tìm Tìm kiếm nâng cao…
  • Bài viết mới
  • Tìm chủ đề
Menu Đăng nhập
  • Trang chủ
  • Diễn đàn
  • Tin học kế toán
  • Dân kế toán và Access
  • Access và VBA
You are using an out of date browser. It may not display this or other websites correctly.You should upgrade or use an alternative browser. Sử dụng hàm Dlookup tra Đơn giá từ bảng
  • Thread starter ngocchung89
  • Ngày gửi 4/7/10
  • 1
  • 2
Tiếp 1 of 2

Đi đến trang

Tới Tiếp Last ngocchung89

ngocchung89

Member
Hội viên mới Tại chỗ mà txtDonGia mình không phải đánh mà mình muốn là sau khi chọn Mã hàng, thì nó tra từ bảng DMH(Danh mục hàng) nó sẽ cho ra Đơn giá, chứ nhiều khi gõ Đơn giá nó không chính xác. anh.jpg Mình làm như thế này trong Control Soure của txtDon giá mà nó báo lỗi: =DLookUp([DonGia],[DMH],[DonGia]=[txtMaHang].[Value]) http://www.mediafire.com/file/wajdhyjlclh/XDCSDL In hoa don.mdb C

chip2006

New Member
Hội viên mới Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng
ngocchung89 nói: Tại chỗ mà txtDonGia mình không phải đánh mà mình muốn là sau khi chọn Mã hàng, thì nó tra từ bảng DMH(Danh mục hàng) nó sẽ cho ra Đơn giá, chứ nhiều khi gõ Đơn giá nó không chính xác. anh.jpg Mình làm như thế này trong Control Soure của txtDon giá mà nó báo lỗi: =DLookUp([DonGia],[DMH],[DonGia]=[txtMaHang].[Value]) http://www.mediafire.com/file/wajdhyjlclh/XDCSDL In hoa don.mdb Nhấn để mở rộng...
Sửa lại như sau: =DLookUp("[DonGia]","[DMH]","[DonGia]=" & [txtMaHang].[Value]) xuanthanh

xuanthanh

Member
Hội viên mới Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng
ngocchung89 nói: Tại chỗ mà txtDonGia mình không phải đánh mà mình muốn là sau khi chọn Mã hàng, thì nó tra từ bảng DMH(Danh mục hàng) nó sẽ cho ra Đơn giá, chứ nhiều khi gõ Đơn giá nó không chính xác. anh.jpg Mình làm như thế này trong Control Soure của txtDon giá mà nó báo lỗi: =DLookUp([DonGia],[DMH],[DonGia]=[txtMaHang].[Value]) http://www.mediafire.com/file/wajdhyjlclh/XDCSDL In hoa don.mdb Nhấn để mở rộng...
1/ Bạn sử dụng sai cú pháp hàm Dllokup 2/ Nên sử dụng hết tính năng của combobox mahang trong trường hợp này - Column Count=4 - Column Widths =0.9";0";0";1.1" - List Width=2" 3/ Bắt sự kiện AfterUpdate của combo mahang DonGia=txtMahang.Column(3) 4/ Bắt sự kiện AfterUpdate của DonGia ThanhTien=DonGia*SoLuong 5/ Bắt sự kiện AfterUpdate của Soluong ThanhTien=DonGia*SoLuong Chúc vui Thân

Đính kèm

  • XDCSDL In hoa don.rar 38.9 KB · Lượt xem: 688
Sửa lần cuối: 5/7/10 D

dhieutmqt41b

New Member
Hội viên mới Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng
xuanthanh nói: 1/ Bạn sử dụng sai cú pháp hàm Dllokup 2/ Nên sử dụng hết tính năng của combobox mahang trong trường hợp này - Column Count=4 - Column Widths =0.9";0";0";1.1" - List Width=2" 3/ Bắt sự kiện AfterUpdate của combo mahang DonGia=txtMahang.Column(3) 4/ Bắt sự kiện AfterUpdate của DonGia ThanhTien=DonGia*SoLuong 5/ Bắt sự kiện AfterUpdate của Soluong ThanhTien=DonGia*SoLuong Chúc vui Thân Nhấn để mở rộng...
bổ sung thêm phần bác xuân thành viết: trong cột Mã Hàng bạn viết như sau select Mahang, tenhang, DonGia,dvt) from DMH; đặt thuộc lostforcus cho ô mã hàng như sau me.dongia=mahang.column(2) khi bạn chọn mã hàng xong máy sẽ tự điền đơn giá cho bạn ko lên sử dụng DLookup, vì tính phức tạp và thao tác sử lý số liệu hơi chậm, nếu bảng danh mục của bạn nhiều mã hàng. xuanthanh

xuanthanh

Member
Hội viên mới Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng
dhieutmqt41b nói: bổ sung thêm phần bác xuân thành viết: trong cột Mã Hàng bạn viết như sau select Mahang, tenhang, DonGia,dvt) from DMH; đặt thuộc lostforcus cho ô mã hàng như sau me.dongia=mahang.column(2) khi bạn chọn mã hàng xong máy sẽ tự điền đơn giá cho bạn ko lên sử dụng DLookup, vì tính phức tạp và thao tác sử lý số liệu hơi chậm, nếu bảng danh mục của bạn nhiều mã hàng. Nhấn để mở rộng...
1/ Đã chọn nguyên cả table làm dữ liệu nguồn nên chọn 4 cột như tôi đã làm. Nếu dùng query làm dữ liệu nguồn cho combo thì làm như bạn đã nói 2/ Bạn xem lại cái gạch đỏ ý. Dùng Lostforcus không đúng đâu Thân D

dhieutmqt41b

New Member
Hội viên mới Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng dùng lostforcus, hoặc afferupdate hoặc onchange, đều được hết, mục đích là sau khi con trỏ chuột ra khỏi hô mã hàng thì lập tức giá trị được điền luôn vào ô dvt, và giá bán tuy nhiên khi bạn làm bạn lưu ý ở Property của mã hàng, tại mục bound column bạn phải điền là 4 - số lượng field bạn đã chọn, khi đó các column bạn gán nó mới hiểu xuanthanh

xuanthanh

Member
Hội viên mới Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng
dhieutmqt41b nói: dùng lostforcus, hoặc afferupdate hoặc onchange, đều được hết, mục đích là sau khi con trỏ chuột ra khỏi hô mã hàng thì lập tức giá trị được điền luôn vào ô dvt, và giá bán tuy nhiên khi bạn làm bạn lưu ý ở Property của mã hàng, tại mục bound column bạn phải điền là 4 - số lượng field bạn đã chọn, khi đó các column bạn gán nó mới hiểu Nhấn để mở rộng...
Xin lỗi vì xem không kỹ phatnq2002

phatnq2002

Tích cực giảm cân...
Hội viên mới Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng
dhieutmqt41b nói: dùng lostforcus, hoặc afferupdate hoặc onchange, đều được hết, mục đích là sau khi con trỏ chuột ra khỏi hô mã hàng thì lập tức giá trị được điền luôn vào ô dvt, và giá bán tuy nhiên khi bạn làm bạn lưu ý ở Property của mã hàng, tại mục bound column bạn phải điền là 4 - số lượng field bạn đã chọn, khi đó các column bạn gán nó mới hiểu Nhấn để mở rộng...
Nếu xét ở một khía cạnh nào đó thì bẫy các sự kiện trên đều được. Tuy nhiên nếu xét kỹ các sự kiện thì nó có khác nhau đôi chút. Nếu bẫy LostFocus thì sẽ có khả năng là người sử dụng không chọn hoặc không nhập gì vào trong control được bẫy sự kiện thì lúc đó sẽ ra sao? Lúc đó giá trị trong control là Null, và như thế cái statement trong thủ tục sẽ có khả năng trả về giá trị không thích hợp. Nếu bẫy OnChange thì cứ mỗi khi có sự thay đổi giá trị trong control thì statement trong thủ tục sẽ thực thi! Gõ vào bao nhiêu lần thì chạy thủ tục bấy nhiêu lần. Cho nên bẫy AfterUpdate là thích hợp nhất, vì chỉ khi nào giá trị trong control thật sự thay đổi thì mới co chạy statement trong thủ tục. Sư Tử Chúa

Sư Tử Chúa

Quản lý SMOD & MOD
Thành viên BQT Hội viên mới Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng
phatnq2002 nói: Nếu xét ở một khía cạnh nào đó thì bẫy các sự kiện trên đều được. Tuy nhiên nếu xét kỹ các sự kiện thì nó có khác nhau đôi chút. Nếu bẫy LostFocus thì sẽ có khả năng là người sử dụng không chọn hoặc không nhập gì vào trong control được bẫy sự kiện thì lúc đó sẽ ra sao? Lúc đó giá trị trong control là Null, và như thế cái statement trong thủ tục sẽ có khả năng trả về giá trị không thích hợp. Nếu bẫy OnChange thì cứ mỗi khi có sự thay đổi giá trị trong control thì statement trong thủ tục sẽ thực thi! Gõ vào bao nhiêu lần thì chạy thủ tục bấy nhiêu lần. Cho nên bẫy AfterUpdate là thích hợp nhất, vì chỉ khi nào giá trị trong control thật sự thay đổi thì mới co chạy statement trong thủ tục. Nhấn để mở rộng...
Em vẫn thường dùng bẫy AfterUpdate :runcamcap: glasseggs

glasseggs

New Member
Hội viên mới Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng Dùng After là chuẩn nhất . Bác Phat ơi cho em hỏi chút trong trường hợp của em. Để chặn tình huống có 2 người cùng sửa 1 bản ghi sẽ xuất hiện thông báo của Access, em cho vào Onchange để xử lý . Đầu tiên nó kiểm tra cái mã ID này có trong bảng Log chưa nếu chưa thì sẽ chạy 1 Query append cái mã ID và tên người đó vào 1 table Log ,nếu có rồi thì sẽ undo và khóa form không cho update bản ghi đó. Cho vào Onchange để bắt ngay khi người dùng nhập chứ không để họ nhập hết cái Textbox đó rồi mới báo. Bác có cách xử lý nào hay hơn không ,vì Onchange đúng như bác nói nó sẽ chạy bấy nhiêu lần tương ứng với số lần gõ. Mà mục đích của em chỉ cần bắt khi ký tự đầu tiên được nhập vào textbox thôi. Thanks phatnq2002

phatnq2002

Tích cực giảm cân...
Hội viên mới Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng
glasseggs nói: Dùng After là chuẩn nhất . Bác Phat ơi cho em hỏi chút trong trường hợp của em. Để chặn tình huống có 2 người cùng sửa 1 bản ghi sẽ xuất hiện thông báo của Access, em cho vào Onchange để xử lý . Đầu tiên nó kiểm tra cái mã ID này có trong bảng Log chưa nếu chưa thì sẽ chạy 1 Query append cái mã ID và tên người đó vào 1 table Log ,nếu có rồi thì sẽ undo và khóa form không cho update bản ghi đó. Cho vào Onchange để bắt ngay khi người dùng nhập chứ không để họ nhập hết cái Textbox đó rồi mới báo. Bác có cách xử lý nào hay hơn không ,vì Onchange đúng như bác nói nó sẽ chạy bấy nhiêu lần tương ứng với số lần gõ. Mà mục đích của em chỉ cần bắt khi ký tự đầu tiên được nhập vào textbox thôi. Thanks Nhấn để mở rộng...
Cho cái kiểm đó vào BeforeInsert của Form. glasseggs

glasseggs

New Member
Hội viên mới Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng Cái này hình như không được bác ơi, vì hình như sự kiện BeforeInsert của Form chỉ xảy ra khi thêm bản ghi mới phải không. Còn em chỉnh sửa dữ liệu trên bản ghi đã tồn tại rồi mà. Chứ nếu bản ghi mới thì làm sao có 2 người cùng sửa được vi nó chưa được lưu. phatnq2002

phatnq2002

Tích cực giảm cân...
Hội viên mới Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng
glasseggs nói: Cái này hình như không được bác ơi, vì hình như sự kiện BeforeInsert của Form chỉ xảy ra khi thêm bản ghi mới phải không. Còn em chỉnh sửa dữ liệu trên bản ghi đã tồn tại rồi mà. Chứ nếu bản ghi mới thì làm sao có 2 người cùng sửa được vi nó chưa được lưu. Nhấn để mở rộng...
Vậy thì vào thuộc tính của Database mà chỉnh. Chọn Record Lock. Chọn cái này thì em nào vào sửa sau thì sẽ có thông báo không cho sửa. C

chip2006

New Member
Hội viên mới Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng
glasseggs nói: Dùng After là chuẩn nhất . Bác Phat ơi cho em hỏi chút trong trường hợp của em. Để chặn tình huống có 2 người cùng sửa 1 bản ghi sẽ xuất hiện thông báo của Access, em cho vào Onchange để xử lý . Đầu tiên nó kiểm tra cái mã ID này có trong bảng Log chưa nếu chưa thì sẽ chạy 1 Query append cái mã ID và tên người đó vào 1 table Log ,nếu có rồi thì sẽ undo và khóa form không cho update bản ghi đó. Cho vào Onchange để bắt ngay khi người dùng nhập chứ không để họ nhập hết cái Textbox đó rồi mới báo. Bác có cách xử lý nào hay hơn không ,vì Onchange đúng như bác nói nó sẽ chạy bấy nhiêu lần tương ứng với số lần gõ. Mà mục đích của em chỉ cần bắt khi ký tự đầu tiên được nhập vào textbox thôi. Thanks Nhấn để mở rộng...
Khai báo biến flag kiểu boolean, gán thuộc tính này = false trong sự kiện Form_SelectionChange. Khi bạn kích hoạt sự kiện change: If flag = false Then kiểm tra record lock, nếu có người đang sửa thì cảnh báo. flag = true End If. Như vậy lần gõ thứ 2 flag đang mang giá trị true nên sẽ ko cần kiểm tra nữa, khi bạn chọn record khác thì kích hoạt sự kiện SelectionChange làm cho biến flag = false trở lại. glasseggs

glasseggs

New Member
Hội viên mới Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng Thanks 2 bác lắm lắm ! @ bác Phật : Cách của bác cũng hay nhưng hơi quân chủ chuyên chế một chút, bé nào nhanh bé ấy thắng. Các bé sau cứ gọi là ngồi ngáp vặt với nhau nếu bé đầu tiên edit xong mà không chịu next bản ghi khác. @ bác Chip2006 : Ý tưởng của bác tuyệt,khá hay nhưng có điều cái sự kiện Form_SelectionChange không xảy ra khi next bản ghi đâu. Em đọc phần help như sau : Occurs whenever the user makes a new selection in a PivotChart view or PivotTable view. . Vậy là trong Form View sự kiện này không xảy ra rùi. Vậy em cho vào sự kiện Affter Update của Form được không bác . Sửa lần cuối: 8/7/10 C

chip2006

New Member
Hội viên mới Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng
glasseggs nói: Thanks 2 bác lắm lắm ! @ bác Chip2006 : Ý tưởng của bác tuyệt,khá hay nhưng có điều cái sự kiện Form_SelectionChange không xảy ra khi next bản ghi đâu. Em đọc phần help như sau : Occurs whenever the user makes a new selection in a PivotChart view or PivotTable view. . Vậy là trong Form View sự kiện này không xảy ra rùi. Nhấn để mở rộng...
Vậy ah`??? Hem để ý, vậy thì kiếm cái sự kiện nào mà nó kiểm soát được việc Change rerord rùi bốc đoạn code bỏ vào. :xinloinhe: Thử On Current xem sao Sửa lần cuối: 8/7/10 phatnq2002

phatnq2002

Tích cực giảm cân...
Hội viên mới Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng
glasseggs nói: Thanks 2 bác lắm lắm ! @ bác Phật : Cách của bác cũng hay nhưng hơi quân chủ chuyên chế một chút, bé nào nhanh bé ấy thắng. Các bé sau cứ gọi là ngồi ngáp vặt với nhau nếu bé đầu tiên edit xong mà không chịu next bản ghi khác. @ bác Chip2006 : Ý tưởng của bác tuyệt,khá hay nhưng có điều cái sự kiện Form_SelectionChange không xảy ra khi next bản ghi đâu. Em đọc phần help như sau : Occurs whenever the user makes a new selection in a PivotChart view or PivotTable view. . Vậy là trong Form View sự kiện này không xảy ra rùi. Vậy em cho vào sự kiện Affter Update của Form được không bác . Nhấn để mở rộng...
chip2006 nói: Vậy ah`??? Hem để ý, vậy thì kiếm cái sự kiện nào mà nó kiểm soát được việc Change rerord rùi bốc đoạn code bỏ vào. :xinloinhe: Thử On Current xem sao Nhấn để mở rộng...
Đọc kỹ cái On Dirty của Form đi rồi sẽ biết. muontennguoi

muontennguoi

Member
Thành viên BQT Super Moderators Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng
glasseggs nói: Thanks 2 bác lắm lắm ! @ bác Phật : Cách của bác cũng hay nhưng hơi quân chủ chuyên chế một chút, bé nào nhanh bé ấy thắng. Các bé sau cứ gọi là ngồi ngáp vặt với nhau nếu bé đầu tiên edit xong mà không chịu next bản ghi khác. . Nhấn để mở rộng...
Vậy là phải rồi. Sao biết bé ấy sửa xong hay chưa? Phải gọi điện hoặc Yahoo!chat mà nhắc nhở thôi. Bạn có thể làm 1 cái ToggleControl để bé ấy click vào khi bắt đầu sửa và click vào để xác nhận đã sửa xong (sau khi update thì gán lại thuộc tính AllowEdits - vì Recordset sẽ tự động lock hay unlock) glasseggs

glasseggs

New Member
Hội viên mới Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng
muontennguoi nói: Vậy là phải rồi. Sao biết bé ấy sửa xong hay chưa? Phải gọi điện hoặc Yahoo!chat mà nhắc nhở thôi. Bạn có thể làm 1 cái ToggleControl để bé ấy click vào khi bắt đầu sửa và click vào để xác nhận đã sửa xong (sau khi update thì gán lại thuộc tính AllowEdits - vì Recordset sẽ tự động lock hay unlock) Nhấn để mở rộng...
Thanks bạn nhưng mình muốn auto cho nó tiện, chứ dùng nút nhấn thì đôi khi người dùng họ quên mất thì sao. 1 phần mềm cho 10 bé dùng chẳng hạn,thể nào chả có 1 bé quên,mà nếu có 1 bé quên thì sẽ có 1 cái thông báo bằng tiếng Tây xuất hiện của Access, bé nào hiểu được. :xinloinhe: -----------------------------------------------------------------------------------------
phatnq2002 nói: Đọc kỹ cái On Dirty của Form đi rồi sẽ biết. Nhấn để mở rộng...
Lại phải thanks bác lần nữa :xinloinhe: Trước nay em không để ý đến cái này,vì nghĩ nó tên là Dirty ,nên nghĩ nó chỉ xảy ra khi Form có lỗi gì đó. Nay thấy dùng nó là tối ưu nhất cho vấn đề này của em. :imlanglun: Sửa lần cuối: 9/7/10 W

Warren Trần

New Member
Hội viên mới anh chị ơi, cho em hỏi, em làm dịch vụ giao hàng, mỗi shop có giá phí khác nhau của các quận khác nhau. Em cần làm sao, lúc chọn mã shop xong, chọn quận, thì nó tự động điền phí vào cột cước phí ạ. Em cám ơn anh chị ạ http://www.mediafire.com/file/mr9gnmm76mgg5zs/CSDL.accdb
  • 1
  • 2
Tiếp 1 of 2

Đi đến trang

Tới Tiếp Last Bạn phải đăng nhập hoặc đăng ký để bình luận. Chia sẻ: Facebook Reddit Pinterest Tumblr WhatsApp Email Chia sẻ Link

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

  • Trang chủ
  • Diễn đàn
  • Tin học kế toán
  • Dân kế toán và Access
  • Access và VBA
Top

Từ khóa » Cách Dùng Hàm Dlookup Trong Access