กระทู้เก่าบอร์ด อ.Yeadram
1,590 10
URL.หัวข้อ /
URL
การสร้าง recocrd ใหม่ แบบมีเงื่อนไข
ขอคำแนะนำจากอาจารย์หน่อยคับ ผมอยากสร้าง record ใหม่ โดยมีเงื่อนไขด้วยคับ เช่น tbl01 มีข้อมูล
id code Part qty
1 a a1 1
2 a a2 2
3 b b1 1
4 c c1 1
5 c c2 3
ผมมีฟอร์ม ที่ใช้เรียกแสดงข้อมูล โดยป้อนชื่อ Code แล้วก้อแสดงรายละเอียดว่าแต่ละโค๊ดมี part อะไรบ้าง สิ่งที่ต้องการคือ ป้อน พาร์ทใหม่ผ่านฟอร์มนี้ โดยใช้เงื่อนไขคือโค๊ดคับ เช่น
โค๊ด a ประกอบด้วย
id code Part qty
1 a a1 1
2 a a2 2
แล้วป้อนพาร์ทที่ 3 code a ,part a3,qty 2 ต่อลงไป แล้วให้เก็บใน tbl01 ที่โค๊ด a เลยคับ รบกวนขอคำแนะนำจากอาจารย์หน่อยคับ
id code Part qty
1 a a1 1
2 a a2 2
3 b b1 1
4 c c1 1
5 c c2 3
ผมมีฟอร์ม ที่ใช้เรียกแสดงข้อมูล โดยป้อนชื่อ Code แล้วก้อแสดงรายละเอียดว่าแต่ละโค๊ดมี part อะไรบ้าง สิ่งที่ต้องการคือ ป้อน พาร์ทใหม่ผ่านฟอร์มนี้ โดยใช้เงื่อนไขคือโค๊ดคับ เช่น
โค๊ด a ประกอบด้วย
id code Part qty
1 a a1 1
2 a a2 2
แล้วป้อนพาร์ทที่ 3 code a ,part a3,qty 2 ต่อลงไป แล้วให้เก็บใน tbl01 ที่โค๊ด a เลยคับ รบกวนขอคำแนะนำจากอาจารย์หน่อยคับ
10 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R03462
ฟอร์มหลัก--------------------------------------------
-----------[ textbox for enter code (txtcode) ]--
--------------------------------------------------------
--*** [ ฟอร์มย่อย child1 ]**********************--
--*** [ id ]**[ code ] ** [ part ] ** [ qty ] *****--
--*** [ id ]**[ code ] ** [ part ] ** [ qty ] *****--
--*** [ id ]**[ code ] ** [ part ] ** [ qty ] *****--
--*** [ id ]**[ code ] ** [ part ] ** [ qty ] *****--
--*** [ id ]**[ code ] ** [ part ] ** [ qty ] *****--
--------------------------------------------------------
--------------------------------------------------------
--------------------------------------------------------
-----------[ textbox for enter code (txtcode) ]--
--------------------------------------------------------
--*** [ ฟอร์มย่อย child1 ]**********************--
--*** [ id ]**[ code ] ** [ part ] ** [ qty ] *****--
--*** [ id ]**[ code ] ** [ part ] ** [ qty ] *****--
--*** [ id ]**[ code ] ** [ part ] ** [ qty ] *****--
--*** [ id ]**[ code ] ** [ part ] ** [ qty ] *****--
--*** [ id ]**[ code ] ** [ part ] ** [ qty ] *****--
--------------------------------------------------------
--------------------------------------------------------
--------------------------------------------------------
txtcode_afterupdate(cancel as integer)
me.child1.rowsource="select * from tbl01 where code like '" & txtcode & "'"
me.child1.form.requery
me.child1.controls("code").defaultvalues="""" & txtcode & """"
end sub
3 @R03465
ช่อง qty เปนจำนวนที่ใช้เฉยๆครับ จะป้อนกี่ตัวก้อได้คับ
ทำเปนฟอร์มย่อยง่ายกว่าเหรอคับ ขอบคุณคับ
ทำเปนฟอร์มย่อยง่ายกว่าเหรอคับ ขอบคุณคับ
4 @R03466
คือที่ผมทำ เปนฟอร์ม แบบ Continuous Forms คับ ผมสร้าง txtbox ไว้แถวเดียว
แล้วกดปุ่มก้อจะแสดงข้อมูลออกมาเลยคับ มีวิธีสำหรับฟรอ์มแบบ Continuous Forms โดยที่ไม่ต้องสร้าง subform น่ะคับ รบกวนด้วยคับ
แล้วกดปุ่มก้อจะแสดงข้อมูลออกมาเลยคับ มีวิธีสำหรับฟรอ์มแบบ Continuous Forms โดยที่ไม่ต้องสร้าง subform น่ะคับ รบกวนด้วยคับ
5 @R03470
txtcode_afterUpdate(
me.code.defaultvalues="""" & me.code & """"
End sub
6 @R03478
ขอบคุณมากๆเลยคับ อาจารย์ yeadram ทำได้แล้วคับ แต่ก้อติดปัญหาอีกคับ (เจ้าปัญหา รบกวนด้วยคับ อิๆ) หลังจากเพิ่มได้แล้ว พอเปิด report ดู มันกลับขึ้นมาซ้ำซ้อนกันน่ะคับ ดังนี้คับ
Code a
_______________________________
id code Part qty
1 a a1 1
2 a a2 2
6 a a3 1
3 b b1 1
4 c c1 1
5 c c2 3
id code Part qty
1 a a1 1
2 a a2 2
6 a a3 1
3 b b1 1
4 c c1 1
5 c c2 3
____________________________
total 9
จากตัวอย่าง จะเหนว่าพอผมเพิ่ม โค๊ด a เข้าไปอีกตัว มันจะแสดงข้อมูล 2 ครั้งซ้ำกันคับ แล้วค่อยแสดง total ให้ ปัญหาคือทำยังไงให้มันแสดงข้อมูลทีเดียวแล้วแสดง total ได้เลยคับ เพราะก่อนที่จะเพิ่มมันก้อแสดงครั้งเดียวคับ รบกวนชี้แนะด้วยคับ ขอบคุณคับ
Code a
_______________________________
id code Part qty
1 a a1 1
2 a a2 2
6 a a3 1
3 b b1 1
4 c c1 1
5 c c2 3
id code Part qty
1 a a1 1
2 a a2 2
6 a a3 1
3 b b1 1
4 c c1 1
5 c c2 3
____________________________
total 9
จากตัวอย่าง จะเหนว่าพอผมเพิ่ม โค๊ด a เข้าไปอีกตัว มันจะแสดงข้อมูล 2 ครั้งซ้ำกันคับ แล้วค่อยแสดง total ให้ ปัญหาคือทำยังไงให้มันแสดงข้อมูลทีเดียวแล้วแสดง total ได้เลยคับ เพราะก่อนที่จะเพิ่มมันก้อแสดงครั้งเดียวคับ รบกวนชี้แนะด้วยคับ ขอบคุณคับ
7 @R03482
ต้องแน่ใจด้วยว่า ข้อมูลในตารางมีซ้ำซ้อนกันหรือไม่ ถ้าในตารางไม่ซ้ำ แต่พอออกรายงานแล้วซ้ำ แสดงว่า ปัญหาอยู่ที่ตัวรายงาน
ต้องดู source ของรายงานครับ ว่า มายังไง
statement มันเป็นอย่างไร
ต้องดู source ของรายงานครับ ว่า มายังไง
statement มันเป็นอย่างไร
8 @R03489
ผมขออธิบายสาเ??ตุที่พึ่งเจอนะคับ report นี้ ใช้แหล่งระเบียนมาจาก tb01 เพราะตรงท้ายรายงานใช้แสดงผลรวมจาก ระเบียนtb01 และส่วนรายละเอียดจะแสดงรายงานย่อย ก้อคือข้อมูล จาก tb01 ดูแล้วอาจจะงงนะคับว่าทำไมต้องทำเปนรายงานย่อย เพราะข้อมูลแค่นี้
..งานจิงนั้นมันต้องแสดงหลายรีพอร์ทน่ะคับ เลยยกตัวอย่างง่ายๆข้างต้นให้ดูก่อนนะคับ
คือ ถ้าผมลบตรงแหล่งระเบียนออกไป มันก้อจะไม่แสดงซ้ำคับ แต่ไม่สามาราถรวม total ได้ ผมไม่เข้าใจตรงที่ว่าพอเพิ่ม record ใหม่เข้าไปแล้ว report จะแสดงซ้ำทันทีเลยคับ
..งานจิงนั้นมันต้องแสดงหลายรีพอร์ทน่ะคับ เลยยกตัวอย่างง่ายๆข้างต้นให้ดูก่อนนะคับ
คือ ถ้าผมลบตรงแหล่งระเบียนออกไป มันก้อจะไม่แสดงซ้ำคับ แต่ไม่สามาราถรวม total ได้ ผมไม่เข้าใจตรงที่ว่าพอเพิ่ม record ใหม่เข้าไปแล้ว report จะแสดงซ้ำทันทีเลยคับ
9 @R03494
ถ้า "รายงานย่อย" มันสร้างปัญหา ก็เอามันออกครับ
ปัญหาต่อมาคือ ถ้าไม่มีรายงานย่อย คุณหาผลรวมไม่ได้
- ถ้าจะหาผลรวมเฉพาะกลุ่ม ให้ใช้วิธี Group record (ทำได้ในรายงาน)
- ถ้าจะหาผลรวมทุกๆ เรคคอร์ดที่แสดงในรายงาน ในทำช่อง sum ไว้ที่ส่วนท้ายรายงาน
- ถ้าจะหาผลรวมทุกๆ เรคคอร์ดที่แสดงในหน้านั้นๆ ให้ทำในส่วนท้ายรายงาน
- ถ้าจะหาผลรวมทุกๆ เรคคอร์ดจากตาราง (แม้จะมีบางเรคคอร์ดที่ไม่ได้นำมาแสดงในรายงานก็รวมด้วย) ให้ใช้คำสั่ง Dsum() ฝั้งไว้ใน สักเหตุการณ์ใด เหตุการณ์หนึ่งในรายงานนั่นแหละครับ
- ถ้าไม่อยากให้มันแยกไปอยู่อื่นคืออยากให้มัน อยู่ในเฉพาะส่วน Details เท่านั้น ให้เขียน statement ใหม่ คือใช้วิธีรวมผลมาตั้งแต่ คิวรี่เลยครับ
ปัญหาต่อมาคือ ถ้าไม่มีรายงานย่อย คุณหาผลรวมไม่ได้
- ถ้าจะหาผลรวมเฉพาะกลุ่ม ให้ใช้วิธี Group record (ทำได้ในรายงาน)
- ถ้าจะหาผลรวมทุกๆ เรคคอร์ดที่แสดงในรายงาน ในทำช่อง sum ไว้ที่ส่วนท้ายรายงาน
- ถ้าจะหาผลรวมทุกๆ เรคคอร์ดที่แสดงในหน้านั้นๆ ให้ทำในส่วนท้ายรายงาน
- ถ้าจะหาผลรวมทุกๆ เรคคอร์ดจากตาราง (แม้จะมีบางเรคคอร์ดที่ไม่ได้นำมาแสดงในรายงานก็รวมด้วย) ให้ใช้คำสั่ง Dsum() ฝั้งไว้ใน สักเหตุการณ์ใด เหตุการณ์หนึ่งในรายงานนั่นแหละครับ
- ถ้าไม่อยากให้มันแยกไปอยู่อื่นคืออยากให้มัน อยู่ในเฉพาะส่วน Details เท่านั้น ให้เขียน statement ใหม่ คือใช้วิธีรวมผลมาตั้งแต่ คิวรี่เลยครับ
select code, part, qty from table1
union
select code,"Total.. = ." as part, sum(qty) from table1 group by code order by code, part;
10 @R03512
ขอขอบคุณสำหรับคำตอบมากเลยคับ เด๋วผมลองตรวจดูก่อนนะคับ ขอบคุณมากๆเลยคับ
Time: 0.3529s
จากโจทย์ อยากให้เจ้าของกระทู้ตรวจสอบ id ที่ 5 นิดนึ่ง
ว่าเขียนถูกหรือเปล่าดยเฉพาะfield qty น่ะ 3 หรือ2
...........
ขอคำแนะนำจากอาจารย์หน่อยคับ ผมอยากสร้าง record ใหม่ โดยมีเงื่อนไขด้วยคับ เช่น tbl01 มีข้อมูล
id code Part qty
1 a a1 1
2 a a2 2
3 b b1 1
4 c c1 1
5 c c2 3
............................
ลองตรวจสอบใหม่ครับ