การสร้าง recocrd ใหม่ แบบมีเงื่อนไข
กระทู้เก่าบอร์ด อ.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 เลยคับ รบกวนขอคำแนะนำจากอาจารย์หน่อยคับ




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

1 @R03460
ขออนุญาตน่ะครับ
จากโจทย์ อยากให้เจ้าของกระทู้ตรวจสอบ 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
............................
ลองตรวจสอบใหม่ครับ
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 ] *****--
--------------------------------------------------------
--------------------------------------------------------
--------------------------------------------------------

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 น่ะคับ รบกวนด้วยคับ
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 ได้เลยคับ เพราะก่อนที่จะเพิ่มมันก้อแสดงครั้งเดียวคับ รบกวนชี้แนะด้วยคับ ขอบคุณคับ
7 @R03482
ต้องแน่ใจด้วยว่า ข้อมูลในตารางมีซ้ำซ้อนกันหรือไม่ ถ้าในตารางไม่ซ้ำ แต่พอออกรายงานแล้วซ้ำ แสดงว่า ปัญหาอยู่ที่ตัวรายงาน

ต้องดู source ของรายงานครับ ว่า มายังไง
statement มันเป็นอย่างไร
8 @R03489
ผมขออธิบายสาเ??ตุที่พึ่งเจอนะคับ report นี้ ใช้แหล่งระเบียนมาจาก tb01 เพราะตรงท้ายรายงานใช้แสดงผลรวมจาก ระเบียนtb01 และส่วนรายละเอียดจะแสดงรายงานย่อย ก้อคือข้อมูล จาก tb01 ดูแล้วอาจจะงงนะคับว่าทำไมต้องทำเปนรายงานย่อย เพราะข้อมูลแค่นี้
..งานจิงนั้นมันต้องแสดงหลายรีพอร์ทน่ะคับ เลยยกตัวอย่างง่ายๆข้างต้นให้ดูก่อนนะคับ

คือ ถ้าผมลบตรงแหล่งระเบียนออกไป มันก้อจะไม่แสดงซ้ำคับ แต่ไม่สามาราถรวม total ได้ ผมไม่เข้าใจตรงที่ว่าพอเพิ่ม record ใหม่เข้าไปแล้ว report จะแสดงซ้ำทันทีเลยคับ

9 @R03494
ถ้า "รายงานย่อย" มันสร้างปัญหา ก็เอามันออกครับ
ปัญหาต่อมาคือ ถ้าไม่มีรายงานย่อย คุณหาผลรวมไม่ได้
- ถ้าจะหาผลรวมเฉพาะกลุ่ม ให้ใช้วิธี 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
ขอขอบคุณสำหรับคำตอบมากเลยคับ เด๋วผมลองตรวจดูก่อนนะคับ ขอบคุณมากๆเลยคับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3529s