การเขียนคำสั่งDlookupค่ะ
กระทู้เก่าบอร์ด อ.Yeadram

 5,408   3
URL.หัวข้อ / URL
การเขียนคำสั่งDlookupค่ะ

คืออยากกรอกรหัสสินค้า แล้วให้แสดงชื่อสินค้าและจำนวนสั่งซื้อในอีกtextboxค่ะ
ข้อมูลสินค้าอยู่ในตารางคิวรี่ชื่อQuProduct
fieldรหัสสินค้าชื่อ productId กำหนดtextboxของรหัสสินค้าชื่อ txtPid
ในช่ิองที่จะให้แสดงชื่อสินค้าพิมพ์ดังนี้
=DLookUp("tradeName","Product","productId=txtPid")
ในช่องที่จะให้แสดงจำนวนสั่งซื้อ พิมพ์ดังนี้
=DLookUp("tradeName","QuProduct","productId=txtPid")
ปรากฎว่าพอกรอกรหัสสินค้า มันแสดงจำนวนสั่งซื้อ แต่ไม่แสดงชื่อสินค้าค่ะ
ไม่ขึ้นerror แต่ก้อไม่ขึ้นอะไรเลย ลองใส่[ ] ครอบtradeNameก้อแล้ว ยังไม่ได้ รบกวนช่วยดูให้หน่อยค่ะ
ในชื่อสินค้า tradeNameเก็บชื่อสินค้าที่มีเว้นวรรคอยู่ด้วย ไม่รู้เกี่ยวหรือเปล่า

3 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R12580
จากข้อมูลที่ให้มา มันจะมี 2 Query คือ QuProduct และ Product
แล้วดูจกการตั้งชื่อ มันก็ งง นะครับ รูปแบบ Dlookup จะเป็นแบบนี้
DLookUp("[ชื่อฟิลด์ที่คุณจะให้แสดง]","ชื่อตารางหรือคิวรี","เงื่อนไข")
แต่ที่คุณทำมันแสดง tradeName ทั้ง 2 แต่เปลี่ยน Query คือ QuProduct และ Product ลองดูอีกทีนะครับ


ผมจะใช้ ComboBox มากกว่าใช้ Dlookup มันเอาไปใช้งานได้มากกว่านะครับ
2 @R12581
1)
......","productId=" & [txtPid])
หรือ
......","productId Like '" & [txtPid] & "'")

ในเงื่อนไข คุณต้องการค่าของข้อมูลที่อยู่ภายใน txtPid
ไม่ใช่ต้องการคำว่า txtPid


2)
ในช่องที่ไม่ขึ้นชื่อสินค้า ให้ตรวจสอบ ตารางชื่อ Product พิมพ์ผิดตกหรือไม่
ฟิลด์ชื่อ Tradename จริงหรือ
ฟิลด์รหัสสินค้าในตารางดังกล่าว (ไม่ใช่ในคิวรี่ QuProduct) ชื่อฟิลด์ว่าอะไรใช้คำเดียวกันกับทีใช้ในคิวรี่ QuProduct หรือเปล่า
3 @R12583
พิมพ์คำสั่งให้ดูผิดอ่าค่ะ แก้ไปแก้มา มั่วมาก แหะๆ แต่ทำได้แล้วค่าา ^____^ ตรงส่วนให้เลือกรหัสสินค้าแล้วแสดงชื่อสินค้ากับจำนวนที่สั่งซื้อมาเลย ทีนี้มีเรื่องรบกวนอยากถามอีกอะค่ะ เดี๋ยวจะลองอธิบายใหม่แบบละเอียดๆ

คิวรี่ที่ชื่อ QuProduct คิวรี่มาจากตาราง Product ชื่อฟิลด์ก็เหมือนกันหมดเลยค่ะ

แต่ในตาราง Product มันเก็บจำนวนสินค้าmax จำนวนสินค้าmin และจำนวนที่ควรสั่งในแต่ละครั้ง แ้ล้วอยากทำให้จำนวนที่ควรสั่งแต่ละครั้งมาจากฟิลด์ max-min อ่าค่ะ เลยเอามาทำคำนวณในคิวรี่

ทีนี้ก็ทำตารางรายละเอียดใบสั่งซื้อสินค้า มีฟิลด์
productId(รหัสสินค้า ทำเป็นlookup wizard หาจากในตารางProduct)
tradeName(ชื่อสินค้า ทำเป็นlookup wizard หาจากในตารางProduct)
orderQuantity(จำนวนสั่งซื้อ)
cost(ราคา)
total(เป็นเงิน) แล้วสร้างฟอร์มจากตารางนี้

กำหนดชื่อ textbox ของ productId ว่า txtPid
textbox ของ tradeName พิมพ์คำสั่งว่า =DLookUp("tradeName","QuProduct","productId=txtPid")
textbox ของ orderQuantity พิมพ์คำสั่งว่า =DLookUp("orderQuantity","QuProduct","productId=txtPid")
textbox ของ cost ผู้ใช้กรอกเอง
textbox ของ total พิมพ์คำสั่งว่า =[orderQuantity]*[cost]

เสร็จแล้วฟอร์มนี้ก้อใช้งานได้ตามที่คิดแล้ว คือ พิมพ์รหัสสินค้า แล้วให้มันแสดงชื่อสินค้าและจำนวนสั่งซื้อขึ้นมาเลย(ตอนแรกที่ไม่ได้ ลองกลับไปแก้ที่ tradeName ในตารางรายละเอียดใบสั่งซื้อสินค้าให้มันไม่เป็น lookup wizard แล้วมันก็แสดงชื่อสินค้าได้ ไม่รู้ว่ามันเกี่ยวหรือเปล่า)
แล้วพอผู้ใช้พิมพ์ช่อง cost ช่อง total ก็คำวนณราคารวมได้แล้ว แต่มีปัญหาดังนี้

1. ทุกครั้งที่จะให้มันทำงานหลังพิมพ์รหัส หรือพิมพ์cost ต้องคอยกดF9 ลองหาวิธีแก้ เค้าบอกว่าต้องสร้างมาโครขึ้นมา แล้วเลือกแอคชั่น SendKeys แต่ว่าหาแอคชั่นนี้ำไม่เจอ เหมือนว่าแอคชั่นในเครื่องที่มีมันมีแอคชั่นไม่ครบเลยอะค่ะ ทำยังไงได้บ้างอะคะ

2. เราอยากจะเรียกดูรายละเอียดใบสั่งซื้อสินค้าของแต่ละใบสั่งซื้อได้จากหน้าฟอร์ม แต่มันไม่เก็บบันทึกอ่าค่ะ เหมือนว่าทุกครั้งที่เราจะดู access มันต้อง calculateใหม่ตลอด มันมีวิธีบันทึกผลที่แสดงออกมาได้มั้ยอ่าคะ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.1748s