กระทู้เก่าบอร์ด อ.Yeadram
2,531 6
URL.หัวข้อ /
URL
ให้คลิก record ในตารางหนึ่ง ไปปรากฏอีกตารางหนึ่ง
ขอความรู้หน่อยคร?บ คือทำนองว่ามี 2 ตาราง ตารางที่ 1 จะโชว์ บิลที่ค้างชำระ แล้วเราเลือกชำระบิลไหน ก็ให้คลิก record bill นั้น และrecord bill ที่ถูกเลือก ไปอยู่อีกตาราง
ท่านผู้ใดพอจะตัวอย่างทำนองนี้ไหมครับ
ท่านผู้ใดพอจะตัวอย่างทำนองนี้ไหมครับ
6 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R01331
งง จริงครับ ผมจะรอท่านหายป่วย
3 @R01332
ขออภัย แก้จาก UPDATE QUERY เป็น APPEND QUREY
เนื่องจากผมเขียน CODE ไม่เก่ง แต่ขออธิบายโดยใช้ QUERY ดังนี้
1.ใช้ SELECT QUERY ก่อน ถ้าเลขบิล เป็นแบบ CONTINUE FORM
การที่จะรู้ว่าเลือก เลขบิลไหน QUERY นั้นจะต้อง อ้างมาที่ FORM
นั้นด้วย เช่น =[FORM]![BILL].[ID] (id เป็น primary key)
ถ้าคุณ RUN FORM ขึ่นมาแล้วลองเลือกดู ขณะเดียวกัน ก็ลอง RUN QUERY
ดู ถ้ามันถูก QUERY จะต้องได้ RECORDSET เช่น เดียวกับ FORM ที่เลือก
เมื่อ FORM เปลี่ยนตัวเลือก(ID) ลอง RUN QUERY ดู มันจะเปลี่ยนตามกัน
2.เอา QUERY จาก 1 ไป ทำ APPEND QUERY เพื่อให้ ไปต่อข้อมูลเข้าอีกตาราง ขั้นตอนไม่ขออธิบาย ต้องเล่นดูก่อนแล้วจะเข้าใจ ที่แน่นอนคือ
TABLE ปลายทางต้องมี FIELD ที่รองรับข้อมูลที่จะใส่ จะใส่อะไรบ้าง
ก็เอามาจากข้อ 1
3.ผูก EVENT เข้ากับ FORM
กำหนดให้ RUN QUERY 2
ส่วน EVENT จะเกิดตอนไหน ก็แล้วแต่คุณจะกำหนดครับ
แต่ถ้าเป็นผม จะผูกเข้ากับ COMMAND BOTTON ซักต้ว
เมื่อ CLINK แล้วจึงค่อย APPEND QUERY
เนื่องจากผมเขียน CODE ไม่เก่ง แต่ขออธิบายโดยใช้ QUERY ดังนี้
1.ใช้ SELECT QUERY ก่อน ถ้าเลขบิล เป็นแบบ CONTINUE FORM
การที่จะรู้ว่าเลือก เลขบิลไหน QUERY นั้นจะต้อง อ้างมาที่ FORM
นั้นด้วย เช่น =[FORM]![BILL].[ID] (id เป็น primary key)
ถ้าคุณ RUN FORM ขึ่นมาแล้วลองเลือกดู ขณะเดียวกัน ก็ลอง RUN QUERY
ดู ถ้ามันถูก QUERY จะต้องได้ RECORDSET เช่น เดียวกับ FORM ที่เลือก
เมื่อ FORM เปลี่ยนตัวเลือก(ID) ลอง RUN QUERY ดู มันจะเปลี่ยนตามกัน
2.เอา QUERY จาก 1 ไป ทำ APPEND QUERY เพื่อให้ ไปต่อข้อมูลเข้าอีกตาราง ขั้นตอนไม่ขออธิบาย ต้องเล่นดูก่อนแล้วจะเข้าใจ ที่แน่นอนคือ
TABLE ปลายทางต้องมี FIELD ที่รองรับข้อมูลที่จะใส่ จะใส่อะไรบ้าง
ก็เอามาจากข้อ 1
3.ผูก EVENT เข้ากับ FORM
กำหนดให้ RUN QUERY 2
ส่วน EVENT จะเกิดตอนไหน ก็แล้วแต่คุณจะกำหนดครับ
แต่ถ้าเป็นผม จะผูกเข้ากับ COMMAND BOTTON ซักต้ว
เมื่อ CLINK แล้วจึงค่อย APPEND QUERY
4 @R01333
ตารางเอกสารขาย tbInvMain
- invNO text
- invDate date/time
- invAmount double
- invPerson text
ตารางใบวางบิล tbBillMain
- BilNo
- BilDate
- BilPerson
- BilFlagPay
ตารางรายละเอียดใบวางบิล tbBillSub
- BilNo
- invNo
ฟอร์มออกเอกสารใบวางบิล
- txtBillNo textbox unbound
- txtBillDate textbox unbound
- cbPerson combobox unbound
- lbPerson Label
- lstInv Listbox unbound
- lstBill Listbox unbound
- txtAmount txtbox unbound
- cmdBill command button
- cmdSave command button
วิธีการ + แนวคิด + ลำดับงาน
1 เปิดฟอร์มออกเอกสารใบวางบิล
2 กรอกเลขที่ใบวางบิล (หรือจะเพิ่มระบบรันเลขที่อัตโนมัติเข้าช่วยก็ได้ .. ขอละไว้)
3 กรอกวันที่ "ออกใบวางบิล" (อาจใช้คอนโทรลปฎิทินเข้าช่วย เพื่อป้องกันการกรอกผิดรูปแบบ)
4 เลือกลูกค้า จากคอมโบ จะให้เกิดเหตุการณ์ ...
- ที่คอมโบจะแสดงผลเป็นรหัสลูกค้า
- ที่ lbPerson จะแสดงชื่อลูกค้า
- ที่ lstInv จะแสดงเลขที่เอกสารขาย ทั้งหมด ของ ลูกค้าคนนี้ ที่ยังไม่ได้วางบิล
5 เลือกเลขที่บิลที่ต้องการจะวางบิล จาก ลิสต์เอกสารขาย (lstInv) โดยให้เลือกได้สองแบบ
5.1 การดับเบิ้ลคลิ๊ก ที่เลขที่เอกสารขาย จะเกิดเหตุการณ์
- นำเลขที่บิลขายที่ถูกคลิ๊ก ไปแสดงผลใน ลิสต์บิล (lstBill)
- รวมยอดขาย แล้วแสดงผลในช่องยอดรวมของฟอร์ม ( txtAmount )
5.2 การคลิ๊กเลือกทีละตัว หรือการคลิ๊กเลือกแบบ multi selection
- เลือกจนพอใจ
- กดปุ่ม cmdBill จะเกิดเหตุการณ์
- 1) นำเลขที่บิลขายทุกเลขที่ ที่ถูกเลือกไปแสดงผลในลิสต์บิล
- 2) รวมยอดขาย แล้วแสดงผลในช่อง Amount
6 กดปุ่ม cmdSave จะเกิดเหตุการณ์
- สั่งรัน sql เพื่อบันทึก เลขที่ใบวางบิล, วันที่ , รหัสบุคคล เข้าตาราง tbBillMain
- สั่งรัน sql เพื่อบันทึก เลขที่ใบวางบิล, เลขที่เอกสารขาย เข้าตาราง tbBillSub
...จบงาน .............
ลองเอาไปทำตามดูครับ ติดขัดกระบวนงานไหน ถามเพิ่มมาได้ครับ
ได้ประโยชน์หลายฝ่ายครับ
- คนถามได้ลองเองสร้างเอง คล่องขึ้น
- คนอ่านอื่นได้รู้แนวทางการ ออกแบบ การวางลำดับงาน การวางแผน
- คนตอบต่อไปจะได้รู้จุดว่าคุณไปถึงไหนแล้ว ตอบครั้งต่อไปจะเจาะจงได้มากขึ้น
- invNO text
- invDate date/time
- invAmount double
- invPerson text
ตารางใบวางบิล tbBillMain
- BilNo
- BilDate
- BilPerson
- BilFlagPay
ตารางรายละเอียดใบวางบิล tbBillSub
- BilNo
- invNo
ฟอร์มออกเอกสารใบวางบิล
- txtBillNo textbox unbound
- txtBillDate textbox unbound
- cbPerson combobox unbound
- lbPerson Label
- lstInv Listbox unbound
- lstBill Listbox unbound
- txtAmount txtbox unbound
- cmdBill command button
- cmdSave command button
วิธีการ + แนวคิด + ลำดับงาน
1 เปิดฟอร์มออกเอกสารใบวางบิล
2 กรอกเลขที่ใบวางบิล (หรือจะเพิ่มระบบรันเลขที่อัตโนมัติเข้าช่วยก็ได้ .. ขอละไว้)
3 กรอกวันที่ "ออกใบวางบิล" (อาจใช้คอนโทรลปฎิทินเข้าช่วย เพื่อป้องกันการกรอกผิดรูปแบบ)
4 เลือกลูกค้า จากคอมโบ จะให้เกิดเหตุการณ์ ...
- ที่คอมโบจะแสดงผลเป็นรหัสลูกค้า
- ที่ lbPerson จะแสดงชื่อลูกค้า
- ที่ lstInv จะแสดงเลขที่เอกสารขาย ทั้งหมด ของ ลูกค้าคนนี้ ที่ยังไม่ได้วางบิล
5 เลือกเลขที่บิลที่ต้องการจะวางบิล จาก ลิสต์เอกสารขาย (lstInv) โดยให้เลือกได้สองแบบ
5.1 การดับเบิ้ลคลิ๊ก ที่เลขที่เอกสารขาย จะเกิดเหตุการณ์
- นำเลขที่บิลขายที่ถูกคลิ๊ก ไปแสดงผลใน ลิสต์บิล (lstBill)
- รวมยอดขาย แล้วแสดงผลในช่องยอดรวมของฟอร์ม ( txtAmount )
5.2 การคลิ๊กเลือกทีละตัว หรือการคลิ๊กเลือกแบบ multi selection
- เลือกจนพอใจ
- กดปุ่ม cmdBill จะเกิดเหตุการณ์
- 1) นำเลขที่บิลขายทุกเลขที่ ที่ถูกเลือกไปแสดงผลในลิสต์บิล
- 2) รวมยอดขาย แล้วแสดงผลในช่อง Amount
6 กดปุ่ม cmdSave จะเกิดเหตุการณ์
- สั่งรัน sql เพื่อบันทึก เลขที่ใบวางบิล, วันที่ , รหัสบุคคล เข้าตาราง tbBillMain
- สั่งรัน sql เพื่อบันทึก เลขที่ใบวางบิล, เลขที่เอกสารขาย เข้าตาราง tbBillSub
...จบงาน .............
ลองเอาไปทำตามดูครับ ติดขัดกระบวนงานไหน ถามเพิ่มมาได้ครับ
ได้ประโยชน์หลายฝ่ายครับ
- คนถามได้ลองเองสร้างเอง คล่องขึ้น
- คนอ่านอื่นได้รู้แนวทางการ ออกแบบ การวางลำดับงาน การวางแผน
- คนตอบต่อไปจะได้รู้จุดว่าคุณไปถึงไหนแล้ว ตอบครั้งต่อไปจะเจาะจงได้มากขึ้น
5 @R01335
เยี่ยมจริง ๆ
6 @R01547
สุดยอดไปเล้ย
Time: 0.3159s
และอาจต้องใช้ SELECT QUERY ก่อนเพื่อให้ได้ RECORD ที่คุณว่า
เขียนเป็นชุด RUN QUERY ต่อกัน
ตอบสั้นหน่อยครับ วันนี้ไม่ค่อยสบาย