Chào mừng đến với Diễn đàn Dân Kế Toán - Kế toán tổng hợp thực tế.
Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 19
  1. #1
    Ngày tham gia
    Nov 2015
    Bài viết
    0

    Sử dụng hàm Dlookup tra Đơn giá từ bảng

    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.



    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

  2. #2
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng




    Trích dẫn Gửi bởi ngocchung89
    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.



    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
    Sửa lại như sau:

    =DLookUp("[DonGia]","[DMH]","[DonGia]=" & [txtMaHang].[Value])

  3. #3
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng




    Trích dẫn Gửi bởi ngocchung89
    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.



    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
    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

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    148
    Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng




    Trích dẫn Gửi bởi xuanthanh
    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
    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.

  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng




    Trích dẫn Gửi bởi dhieutmqt41b
    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.
    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

  6. #6
    Ngày tham gia
    Nov 2015
    Bài viết
    4
    Ðề: 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

  7. #7
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng




    Trích dẫn Gửi bởi dhieutmqt41b
    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
    Xin lỗi vì xem không kỹ

  8. #8
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng




    Trích dẫn Gửi bởi dhieutmqt41b
    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
    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.

  9. #9
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Sử dụng hàm Dlookup tra Đơn giá từ bảng




    Trích dẫn Gửi bởi phatnq2002
    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.
    Em vẫn thường dùng bẫy AfterUpdate :runcamcap:

  10. #10
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: 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

 

 
Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •