การดึงรหัสสินค้า ของเฉพาะผู้ขายรายนั้นๆ
กระทู้เก่าบอร์ด อ.Yeadram

 2,246   7
URL.หัวข้อ / URL
การดึงรหัสสินค้า ของเฉพาะผู้ขายรายนั้นๆ

ต่อจากหัวข้อเดิมเกี่ยวกับ ขอคำแนะนำแนวคิดการเก็บข้อมูลใบเสร็จ ครับ ตอนนี้ผมทำมาถึงการสั่งซื้อสินค้าจากผู้ขาย

ผมมี Table อยู่ 2 ตัว ตัวแรกเก็บรายชื่อผู้ขาย อีกตัวเก็บรายการสินค้าซึ่งมีรหัสผู้ขายกำกับอยู่ครับ คราวนี้ผมสร้าง Form แบบ main / sub Form ขึ้นมา ตัว Main Form จะให้เลือกรายชื่อผู้ขาย ส่วน Sub Form จะให้แสดงรายการสินค้าทั้งหมดของผู้ขายนั้นๆ โดยด้านท้ายของสินค้าแต่ละรายการจะมี textbox ให้ใส่จำนวนที่ต้องการสั่งครับ

ผมพยายามตั้งสติลองผิดลองถูกอยู่นานแต่ก็ยังไม่สำเร็จ รบกวนขอคำชี้แนะด้วยนะครับ

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

1 @R14220
ผมค้นจากในบอร์ดดู แล้วลองเอามาปรับใช้ดู ได้ออกมาเป็นแบบนี้ครับ แต่ก็ยังใช้งานไม่ได้ ตัวรหัสสินค้าที่ทำเป็น Combo Box โชว์รหัสสินค้าทุกตัวเลย

Private Sub Vd_id_LostFocus()
Form_frmOrderDetail.Pd_id.RowSource = "SELECT Pd_id FROM tblProduct WHERE tblProduct.Vd_id LIKE Vd_id"
Form_frmOrderDetail.Pd_id.Requery
End Sub


frmOrder = Main Form
frmOrderDetail = Sun Form
Vd_id = รหัสผู้ขาย
Pd_id = รหัสสินค้า
tblProduct = ตารางเก็บรายการสินค้า

โค้ดนี้ใส่ไว้ตอน LostFocus หลังจากใส่รหัสผู้ขายใน Main Form ครับ
เจ้า Form_frmOrderDetail.Pd_id นี่เป็น Combo Box อยู่ใน Sub Form นะครับ รบกวนช่วยตรวจสอบให้นิดนึงนะครับว่ามีตรงที่ไม่ถูกต้องบ้าง
2 @R14222
ทำได้แล้วครับผม งงกับวิธีใช้ SELECT FROM WHERE อยู่นานเลย

Private Sub Pd_id_GotFocus()
Pd_id.RowSourceType = "Table/Query"
Pd_id.RowSource = "SELECT tblProduct.Pd_id FROM tblProduct WHERE (([Vd_id]=[Forms]![frmOrder]![Vd_id]))"
Pd_id.Requery
End Sub
3 @R14223
1.แสดงว่าคุณจะต้องมี   ตารางเก็บรหัสของสินค้า ที่มี รหัสของผู้ขายกำกับอยู่ ด้วยใช่หรือไม่ครับ ถ้าใช่ ขอแนะนำว่า คุณต้องมี ตารางใบสั่งซื้อที่เก็บ รหัสใบสั่งซื้อ รหัสผู้ขาย วันที่สั่ง และ ตารางที่เก็บรายการสินค้าที่สั่งซื้อ เก็บรหัสใบสั่งซื้อ และรหัสสินค้า จำนวนที่สั่ง (ถ้าเก็บราคาสินค้าด้วยก็ดีครับ เราจะได้รู้ว่าราคาเท่าไหร่ หากมีการเปลี่ยนราคาสินค้าที่สั่ง ราคาที่สั่งแล้วจะไม่ถูกเปลี่ยนครับ)
2.เอาตารางใบสั่งซื้อ เป็น MainForm และเอาตารางที่เก็บสินค้าที่สั่ง เป็น SubForm โดยเอา รหัสใบสั่งซื้อจาก MainForm เชื่อม กับ รหัสใบสั่งซื้อ SubForm (เพื่อเวลาเลือกสินค้าที่สั่งจาก SubForm แล้ว รหัสใบสั่งซื้อของSubForm จะขึ้น อัตโรมัต)
3.สร้าง Combo Box เพื่อเลือกสินค้า โดยให้ Control Source = รหัสสินค้า และให้ Row Source จาก ตารางสินค้า (ต้องเลือกมาอย่างน้อย 2 Field Fieldแรกเป็นรหัสสินค้า Fieldที่สอง เป็น รหัสผู้ขาย (จะเอาเครื่องหมายแสดงออกก็ได้นะครับ)โดยให้ กรองจาก รหัสผู้ขายจาก MainForm ครับ
4.เขียน โค๊ด Got Focus ที่ Combo Box ที่จะเลือกสินค้าในSubForm ให้ Requery
5.นี่เป็นเพียงแนวคิด ผมยังไม่ได้ทดลองทำ
6.ถ้าคุณทำได้แล้ว ดีใจด้วยครับ มีคนบอกผมว่า ถ้าเราพัฒนาโปรแกรมเพื่อให้เราใช้เอง แล้วได้ผลตามที่เราต้องการ มันก็ Ok ครับ เพราะมันเป็นแบบของเรา ที่เราเข้าใจ ตามความรู้เท่าที่เรามี ถ้าเราพยายามหาความรู้เพิ่มเติม โปรแกรมที่พัฒนาอยู่ มันก็จะพัฒนาตามเองครับ
4 @R14258
ขอบคุณมากครับ คุณ Viboon
ตอนนี้ผมทำส่วนของการสั่งสินค้าเข้าร้าน / การรับสินค้าเข้าร้าน / การขายสินค้าให้สมาชิก เสร็จแล้ว คราวนี้อยากจะเอาทั้ง 3 Table นี้มารวมกันเป็นตารางเดียว โดยให้เรียงลำดับตามวันที่

สินค้า A : คงเหลือ: 6
--------------------------------------
|    วันที่   | สั่งซื้อ | รับเข้า | ขาย |
--------------------------------------
1/10/12      10
2/10/12                 10
2/10/12                            1
3/10/12                            2
3/10/12                            1
---------------------------------------

เหมือน Stock Card น่ะครับ แนวคิดแบบนี้ต้องทำอย่างไรบ้างครับ
ผมพยายามใช้คิวรี่ดู แต่ก็ยังไม่ได้ตามที่ควรจะเป็นครับ
5 @R14260
ขอบคุณคุณ Viboon มากครับที่ให้แนะนำ เดี๋ยวจะลองทำตามดูนะครับ
ผมรบกวนขอถามหน่อยครับ ผมมี textbox อยู่ใน from แล้วต้องการถึงข้อมูลจากใน query มาแสดง ผมเขียนโค้ดแล้ว แต่รู้สึกยังไม่ถูกต้อง รบกวนช่วยดูให้นิดนึงครับว่าผิดตรงไหนบ้าง

Pd_onhand = SELECT qryOnhand.Pd_onhand FROM qryOnhand WHERE Pd_id=qryOnhand.Pd_id

แล้วก็ผมลองใช้ Dlookup แทน ปรากฎว่าค่ามาแสดงผลใน textbox นะครับ แต่ textbox นี้ทั้งหมด จะแสดงค่าเดียวกันหมด ซึ่งจริงๆ แล้วควรจะเปลี่ยนไปตาม Pd_id

Pd_onhand = DLookup("[Pd_onhand]", "[qryOnhand]", "[Pd_id]=[qryOnhand].[Pd_id]")

รบกวนชี้แนะด้วยครับ
6 @R14263
ลองดูนะครับ
1. ที่ Query พารามิเตอร์ ตรง Pd_id ให้พิมพ์ว่า [Forms]![ชื่อฟอร์มที่อ้าง]![Pd_id]
2. Pd_onhand = DLookup("[Pd_onhand]", "[qryOnhand]")
7 @R14265
ยังไม่ค่อยเข้าใจเลยครับ ผมขอส่งไฟล์ไปให้ทางอีเมลนะครับ
รบกวนคุณ Viboon ช่วยดูให้นิดนึงนะครับ ขอบคุณมากครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3230s