การทำการเบิกหลายรายการโดยที่เราทำการเลือกโดยเหมือนการติ๊กเลือกแล้วลิ้งค์ไปยังฟอร์มการเบิกค่ะ



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

21 เม.ย. 62 , 22:19:38
ตอบกลับ #16

Supanida

เอาอย่างนี้ดีกว่า ตอบผมมาว่า ในหน้า [การค้นหา] คุณทำยังไงถึงได้ผลการค้นหาตามเงื่อนไขที่ใส่บนหน้าฟอร์ม ใช้คิวรี่ หรือใช้อะไร แล้ว expression ที่ใช้ค้นหาคืออะไร ช่วยอธิบายอย่างละเอียดด้วย

ให้หน้าค้นหาใช้คิวรี่ค่ะ แล้วก็นำมาสร้างเป็นฟอร์มค่ะ ส่วนที่ใช้ค้นหาใช้คอมโบบ็อกซ์ในการค้นหาค่ะ กำหนดเงื่อนไขโดยการเขียนโค้ดเป็นตัวกำหนดค่ะ กำหนดว่าให้สามารถเลือกการค้นหาได้จาก sku ,p/n หรือ valuable ค่ะ

 

21 เม.ย. 62 , 22:59:09
ตอบกลับ #17

สันติสุข

"กำหนดเงื่อนไขโดยการเขียนโค้ดเป็นตัวกำหนดค่ะ"  ก็เงื่อนไขอันเดียวกันนั้นแหล่ะครับ เหมือนๆกัน 100% เลย

ลองเอาคิวรี่และโค้ดส่วนนี้มาแสดงให้ดูหน่อยครับ ถ้าแสดงเป็นรูปง่ายกว่าเขียนอธิบาย ก็เอารูปมาให้ดูประกอบด้วยก็ได้
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Supanida

22 เม.ย. 62 , 07:32:09
ตอบกลับ #18

Supanida

"กำหนดเงื่อนไขโดยการเขียนโค้ดเป็นตัวกำหนดค่ะ"  ก็เงื่อนไขอันเดียวกันนั้นแหล่ะครับ เหมือนๆกัน 100% เลย

ลองเอาคิวรี่และโค้ดส่วนนี้มาแสดงให้ดูหน่อยครับ ถ้าแสดงเป็นรูปง่ายกว่าเขียนอธิบาย ก็เอารูปมาให้ดูประกอบด้วยก็ได้

รูปนี้คือคิวรี่หน้าค้นหาค่ะ

ส่วนอันนี้เป็นเงื่อนไขคำสั่งการค้นหาค่ะ

 

22 เม.ย. 62 , 13:09:59
ตอบกลับ #19

สันติสุข

ใน Update Query (B) ก็จะมีลักษณะเงื่อนไขเป็นตามรูปข้างล่างนี้ (ไปเติมอีกเงื่อนไขเองนะครับ) เห็นไหมครับว่าเงื่อนไขก็เหมือนกับที่คุณทำ


ทีนี้ ต้องมีอีก Update Query (A) ที่ไม่ต้องมีเงื่อนไขใดๆ แต่ให้แก้ไขค่าฟิลด์ Yes/No เป็น False ให้หมดก่อนเพื่อเคลียร์การทำเครื่องหมายที่มีมาก่อน แล้วก่อนที่จะรันโค้ด 3 บรรทัดของคุณใน SearchCombo ก็ให้โปรแกรมก็เรียกคิว A ตัวนี้ทำงานเสียก่อน

ต่อไปก็เรียกคิวรี่ B ทำงานเพื่อทำเครื่องหมายให้ฟิลด์ Yes/No

แล้วค่อยต่อท้ายด้วยโค้ด 3 บรรทัดเดิมของคุณ เพื่อแสดงผลการค้นออกมาบนฟอร์ม

ทีนี้ถ้าอยากให้ดูกระชับ ใช้โค้ดเพียงอย่างเดียวโดยไม่ต้องสร้าง Update Query ก็ให้ใช้คำสั่ง DoCmd.RunSQL "คำสั่ง SQL UPDATE statement" แทนก็ได้ อันนี้ไปศึกษาเองครับ ไม่ได้ยากอะไร
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Supanida

23 เม.ย. 62 , 21:35:05
ตอบกลับ #20

Supanida

ใน Update Query (B) ก็จะมีลักษณะเงื่อนไขเป็นตามรูปข้างล่างนี้ (ไปเติมอีกเงื่อนไขเองนะครับ) เห็นไหมครับว่าเงื่อนไขก็เหมือนกับที่คุณทำ


ทีนี้ ต้องมีอีก Update Query (A) ที่ไม่ต้องมีเงื่อนไขใดๆ แต่ให้แก้ไขค่าฟิลด์ Yes/No เป็น False ให้หมดก่อนเพื่อเคลียร์การทำเครื่องหมายที่มีมาก่อน แล้วก่อนที่จะรันโค้ด 3 บรรทัดของคุณใน SearchCombo ก็ให้โปรแกรมก็เรียกคิว A ตัวนี้ทำงานเสียก่อน

ต่อไปก็เรียกคิวรี่ B ทำงานเพื่อทำเครื่องหมายให้ฟิลด์ Yes/No

แล้วค่อยต่อท้ายด้วยโค้ด 3 บรรทัดเดิมของคุณ เพื่อแสดงผลการค้นออกมาบนฟอร์ม

ทีนี้ถ้าอยากให้ดูกระชับ ใช้โค้ดเพียงอย่างเดียวโดยไม่ต้องสร้าง Update Query ก็ให้ใช้คำสั่ง DoCmd.RunSQL "คำสั่ง SQL UPDATE statement" แทนก็ได้ อันนี้ไปศึกษาเองครับ ไม่ได้ยากอะไร


คิวรี่ B ต้องกำหนดเป็น true ไหมคะ

 

23 เม.ย. 62 , 21:38:06
ตอบกลับ #21

สันติสุข

แน่นอนครับ คิวรี่ B ต้องกำหนดค่าของฟิลด์ Yes/No เป็น True
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Supanida

23 เม.ย. 62 , 21:49:15
ตอบกลับ #22

Supanida

แน่นอนครับ คิวรี่ B ต้องกำหนดค่าของฟิลด์ Yes/No เป็น True

กำหนดใส่ตรงเกณฑ์เลยใช่ไหมคะ ต้องเป็น true = -1 หรือ false = 0 ไหมคะ

 

23 เม.ย. 62 , 22:47:49
ตอบกลับ #23

สันติสุข

ไม่ใช่เกณฑ์ (Criteria) แต่เป็นบรรทัดที่เขียนว่า Update To (ไม่รู้ภาษาไทยเขาใช้คำว่าอะไร) ของคอลัมน์ฟิลด์ Yes/No ซึ่งบรรทัดนี้จะมีใน Update Query เท่านั้น โดยใส่เป็นคำว่า True ไปตรงๆเลย
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Supanida

24 เม.ย. 62 , 09:00:18
ตอบกลับ #24

Supanida

ไม่ใช่เกณฑ์ (Criteria) แต่เป็นบรรทัดที่เขียนว่า Update To (ไม่รู้ภาษาไทยเขาใช้คำว่าอะไร) ของคอลัมน์ฟิลด์ Yes/No ซึ่งบรรทัดนี้จะมีใน Update Query เท่านั้น โดยใส่เป็นคำว่า True ไปตรงๆเลย

โอเคค่า ขอบคุณมากๆๆๆๆๆๆๆเลยนะคะ

 

24 เม.ย. 62 , 23:39:03
ตอบกลับ #25

Supanida

ไม่ใช่เกณฑ์ (Criteria) แต่เป็นบรรทัดที่เขียนว่า Update To (ไม่รู้ภาษาไทยเขาใช้คำว่าอะไร) ของคอลัมน์ฟิลด์ Yes/No ซึ่งบรรทัดนี้จะมีใน Update Query เท่านั้น โดยใส่เป็นคำว่า True ไปตรงๆเลย

ขอสอบถามค่ะ พอดีว่าทำตามที่แนะนำมาแล้ว แต่ก็ยังติ๊กเลือกไม่ได้อ่ะค่ะ

 

25 เม.ย. 62 , 00:10:22
ตอบกลับ #26

สันติสุข

ก็ตรวจสอบโดยดับเบิลคลิกที่คิวรี่ A และ B ที่ละตัวตามลำดับสิครับ รันแต่ละตัวแล้วก็มาเปิดดูค่าในเทเบิลว่าเปลี่ยนแปลงไปตามการทำงานของคิวรี่หรือไม่ อันไหนไม่ ก็แปลว่าคิวรี่ตัวนั้นผิด ก็เอามาแก้ไข คุณต้องมีตรรกกะในการหาวิธีตีวงของปัญหาให้แคบลง หาจุดที่ผิดเอง ลองดูครับ

ถ้าหาที่ผิด (เรียกว่าการ debug โปรแกรม) อย่างมืออาชีพหน่อย ก็ใช้วิธีให้โค้ดทำงานทีละคำสั่งทีเราเรียกว่า การ trace การทำงานของโค้ดแบบ step by step แล้วตรวจดูค่าในเทเบิลเช่นกัน
« แก้ไขครั้งสุดท้าย: 25 เม.ย. 62 , 00:21:57 โดย สันติสุข »
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Supanida

25 เม.ย. 62 , 07:39:06
ตอบกลับ #27

Supanida

ก็ตรวจสอบโดยดับเบิลคลิกที่คิวรี่ A และ B ที่ละตัวตามลำดับสิครับ รันแต่ละตัวแล้วก็มาเปิดดูค่าในเทเบิลว่าเปลี่ยนแปลงไปตามการทำงานของคิวรี่หรือไม่ อันไหนไม่ ก็แปลว่าคิวรี่ตัวนั้นผิด ก็เอามาแก้ไข คุณต้องมีตรรกกะในการหาวิธีตีวงของปัญหาให้แคบลง หาจุดที่ผิดเอง ลองดูครับ

ถ้าหาที่ผิด (เรียกว่าการ debug โปรแกรม) อย่างมืออาชีพหน่อย ก็ใช้วิธีให้โค้ดทำงานทีละคำสั่งทีเราเรียกว่า การ trace การทำงานของโค้ดแบบ step by step แล้วตรวจดูค่าในเทเบิลเช่นกัน


ขออีกคำถามเดียวค่ะ ถ้าต้องการให้ข้อมูลที่เราเลือกลิ้งค์ยังไปยังฟอร์มเบิก เมื่อเรากดทำการเบิกตรงฟอร์มค้นหา มีวิธีเขียนคำสั่งยังไงคะ

 

25 เม.ย. 62 , 11:26:31
ตอบกลับ #28

สันติสุข

ตามที่ผมตอบในคำตอบแรกเลย
อ้างถึง
พอกดปุ่ม [ทำการเบิก] ก็ให้เขียนทุกเรคอร์ดในเทเบิล T ที่ฟิลด์ S มีค่าเป็น True ลงในเทเบิลการเบิกจ่ายและเทเบิลรายการเบิกจ่าย (RI)   แล้วค่อยเปิดฟอร์มเบิก/จ่ายตามเอกสารที่เพิ่งสร้างอีกที

การเขียนเรคอร์ด ก็คือสร้าง Append Query
ส่วนเปิดฟอร์มก็บอกไปแล้วเหมือนกัน คือ DoCmd.OpenForm
เปิดแล้วก็กำหนด .RecordSource ของฟอร์มเบิก/จ่าย เป็นเอกสารเลขที่ที่เพิ่งสร้าง
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Supanida


บอร์ดเรียนรู้ Access สำหรับคนไทย