กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
557 19
URL.หัวข้อ /
URL
สงสัยปัญหา รบกวนช่วยตอบด้วยค่ะ
รายละเอียดอย่างคร่าวๆ นะค่ะ สมมุติว่ามี table ชื่อ Stockcard เก็บข้อมูล ลำดับ (Autonumber ) , รหัสสินค้า ,ชื่อสินค้า , หน่วยสินค้า , ราคา , วันที่ , จำนวนสินค้านำเข้า , จำนวนสินค้าส่งออก , จำนวนสินค้าคงเหลือ ลักษณะดังนี้นะค่ะ
==================================================================
ลำดับ รหัส ชื่อ หน่วย วันที่ นำเข้า ส่งออก คงเหลือ
==================================================================
1 111 AAA kg 17/7/46 10 0 10
2 111 AAA kg 18/7/46 0 5 5
3 111 AAA kg 16/7/46 2 0 7
นู๋อยากให้ในช่องของคงเหลือนี้ได้มาจากการคำนวน ( บวก , ลบ )จากการนำเข้าหรือส่งออกค่ะ แล้วนำเก็บไว้ที่ช่องคงเหลือ โดยไม่ว่าเราจะเปลี่ยนข้อมูลตัวเลขในช่องของนำเข้า หรือส่งออก ข้อมูลตัวเลขในช่องคงเหลือก้อจะเปลี่ยนแปลงตามไปด้วย และในเวลาที่จะออกรายงานในรูปแบบหน้าตาแบบนี้ให้มันเรียงตามลำดับ และ วันที่ จากน้อยไปหามาก ด้วยค่ะ ไม่ทราบว่าจะทำอย่างไรดีค่ะ ขอบคุณมากค่ะ
==================================================================
ลำดับ รหัส ชื่อ หน่วย วันที่ นำเข้า ส่งออก คงเหลือ
==================================================================
1 111 AAA kg 17/7/46 10 0 10
2 111 AAA kg 18/7/46 0 5 5
3 111 AAA kg 16/7/46 2 0 7
นู๋อยากให้ในช่องของคงเหลือนี้ได้มาจากการคำนวน ( บวก , ลบ )จากการนำเข้าหรือส่งออกค่ะ แล้วนำเก็บไว้ที่ช่องคงเหลือ โดยไม่ว่าเราจะเปลี่ยนข้อมูลตัวเลขในช่องของนำเข้า หรือส่งออก ข้อมูลตัวเลขในช่องคงเหลือก้อจะเปลี่ยนแปลงตามไปด้วย และในเวลาที่จะออกรายงานในรูปแบบหน้าตาแบบนี้ให้มันเรียงตามลำดับ และ วันที่ จากน้อยไปหามาก ด้วยค่ะ ไม่ทราบว่าจะทำอย่างไรดีค่ะ ขอบคุณมากค่ะ
19 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R04029
นู๋ลองทำตามที่อาจารย์บอกแล้วค่ะ ลักษณะมันจะเป็นการลบบรรทัด ต่อบรรทัดอ่ะค่ะ ซึ่งมันไม่ตรงกับที่นู๋ต้องการอ่ะค่ะ ลักษณะที่นู๋ต้องการคือแบบที่ + หรือ - กันต่อๆไปอ่ะค่ะ อย่างเช่น
=================================================================
ลำดับ รหัส ชื่อ หน่วย วันที่ นำเข้า ส่งออก คงเหลือ
==================================================================
2 111 AAA kg 18/7/46 0 5 5
3 111 AAA kg 16/7/46 2 0 7
รบกวนอาจารย์ช่วยด้วยนะค่ะ
=================================================================
ลำดับ รหัส ชื่อ หน่วย วันที่ นำเข้า ส่งออก คงเหลือ
==================================================================
2 111 AAA kg 18/7/46 0 5 5
3 111 AAA kg 16/7/46 2 0 7
รบกวนอาจารย์ช่วยด้วยนะค่ะ
3 @R04030
ลองดูกระทู้ http://www.thai-access.com/suphap.php?topic_id=765 ประกอบครับ
4 @R04039
เข้าไปดู และโหลดโปรแกรมมาลองดูแล้วค่ะ คือว่าในตัวอย่างมันแต่แต่เฉพาะ sum อย่างเดียว แต่ที่นู๋ต้องการคือ ในช่องคงเหลือจะมาจากการบวก กับข้อมูลนำเข้า และลบออกจากข้อมูลส่งออก
=================================================================
ลำดับ รหัส ชื่อ หน่วย วันที่ นำเข้า ส่งออก คงเหลือ
==================================================================
2 111 AAA kg 18/7/46 0 5 5
3 111 AAA kg 16/7/46 2 0 7
รบกวนอาจารย์ช่วยตอบอีกนะค่ะ นู๋ไม่รู้จะทำยังงัยแล้ว ขอบคุณมาก มาก ค่ะ
=================================================================
ลำดับ รหัส ชื่อ หน่วย วันที่ นำเข้า ส่งออก คงเหลือ
==================================================================
2 111 AAA kg 18/7/46 0 5 5
3 111 AAA kg 16/7/46 2 0 7
รบกวนอาจารย์ช่วยตอบอีกนะค่ะ นู๋ไม่รู้จะทำยังงัยแล้ว ขอบคุณมาก มาก ค่ะ
5 @R04062
อาจารย์ขา รบกวนช่วยหนูด้วยค่ะ
ปัญหาคือจากในตัวอย่างที่ให้นู๋ดู จะเป็นตัวอย่างให้รวมกันอย่างเดียว แต่ว่าที่หนูต้องการคือ ในช่องคงเหลือจะมาจากการบวก กับข้อมูลนำเข้า และลบออกจากข้อมูลส่งออก ลักษณะนี้ค่ะ
=================================================================
ลำดับ รหัส ชื่อ หน่วย วันที่ นำเข้า ส่งออก คงเหลือ
==================================================================
1 111 AAA kg 18/7/46 5 0 5
2 111 AAA kg 16/7/46 2 0 7
3 111 AAA kg 16/7/46 0 4 3
4 111 AAA kg 16/7/46 1 0 4
รบกวนช่วยด้วยนะค่ะ ขอบคุณมาก มากค่ะ
ปัญหาคือจากในตัวอย่างที่ให้นู๋ดู จะเป็นตัวอย่างให้รวมกันอย่างเดียว แต่ว่าที่หนูต้องการคือ ในช่องคงเหลือจะมาจากการบวก กับข้อมูลนำเข้า และลบออกจากข้อมูลส่งออก ลักษณะนี้ค่ะ
=================================================================
ลำดับ รหัส ชื่อ หน่วย วันที่ นำเข้า ส่งออก คงเหลือ
==================================================================
1 111 AAA kg 18/7/46 5 0 5
2 111 AAA kg 16/7/46 2 0 7
3 111 AAA kg 16/7/46 0 4 3
4 111 AAA kg 16/7/46 1 0 4
รบกวนช่วยด้วยนะค่ะ ขอบคุณมาก มากค่ะ
6 @R04064
ให้สร้าง Query แรกตามที่ผมแนะนำในความคิดเห็นที่ 1 ก่อนครับ
โดยให้ค่าคงเหลือไว้ในฟีลด์ใหม่ ชื่อ คงเหลือ ก็ได้
คงเหลือ: [นำเข้า] - [ส่งออก]
แล้วค่อยไปสร้าง Running Sum ใน Query ใหม่ โดยให้สร้างจาก Query อันแรกครับ ก็จะได้ตามที่ต้องการ
โดยให้ค่าคงเหลือไว้ในฟีลด์ใหม่ ชื่อ คงเหลือ ก็ได้
คงเหลือ: [นำเข้า] - [ส่งออก]
แล้วค่อยไปสร้าง Running Sum ใน Query ใหม่ โดยให้สร้างจาก Query อันแรกครับ ก็จะได้ตามที่ต้องการ
7 @R04084
นู๋ ลองทำตามที่อาจารย์บอกแล้วค่ะ ได้ผลตามที่แนบไฟล์มานะค่ะ ซึ่งผลที่ได้ออกมาไม่ตรงกับที่นู๋ต้องการ
รบกวนอาจารย์ช่วยนู๋อีกสักครั้งนะค่ะ ขอบพระคุณมากค่ะ
นู๋ ลองทำตามที่อาจารย์บอกแล้วค่ะ ได้ผลตามที่แนบไฟล์มานะค่ะ ซึ่งผลที่ได้ออกมาไม่ตรงกับที่นู๋ต้องการ
รบกวนอาจารย์ช่วยนู๋อีกสักครั้งนะค่ะ ขอบพระคุณมากค่ะ
8 @R04085
แก้ไขดังนี้ครับ
Running Sum: (SELECT Sum(Balance) FROM [query1] AS Temp Where [Temp].[ID]<=[query1].[ID])
Running Sum: (SELECT Sum(Balance) FROM [query1] AS Temp Where [Temp].[ID]<=[query1].[ID])
9 @R04096
อาจารย์ค่ะ ขอรบกวนอีกสักครั้งนะค่ะ
นู๋ลองทำตามที่อาจารย์บอกแล้วค่ะ ปรากฏว่าได้ผลตามที่ต้องการค่ะ แต่ว่าพอลองมาเช็กค่าดูดีๆๆแล้วจะมีบางค่าข้อมูลที่ผิดไปอ่ะค่ะ แล้วทำให้ข้อมูลผิดต่อๆกันไปด้วยนะค่ะ นู๋ขอความกรุณาอาจารย์ช่วยดูให้นู๋หน่อยนะค่ะ
ข้อมูลที่ผิดไปตัวอย่างเช่น รหัสสินค้าที่ 6 , ID ที่ 250 , 553 , 554 จะได้ค่าใน Balance2 ที่ผิดออกไปนะค่ะ
รหัสสินค้า 8 , ID ที่ 130 , 110 , 131 หรือ ID ที่ 486 , 542 ,488 ก้อจะได้ข้อมูลใน Balance2 ที่ผิดออกไปอ่ะค่ะ
ไม่ทราบว่าเป็นเพราะอะไรค่ะ อาจารย์ช่วยนู๋ด้วยนะค่ะ ขอบพระคุณมากค่ะ
นู๋ลองทำตามที่อาจารย์บอกแล้วค่ะ ปรากฏว่าได้ผลตามที่ต้องการค่ะ แต่ว่าพอลองมาเช็กค่าดูดีๆๆแล้วจะมีบางค่าข้อมูลที่ผิดไปอ่ะค่ะ แล้วทำให้ข้อมูลผิดต่อๆกันไปด้วยนะค่ะ นู๋ขอความกรุณาอาจารย์ช่วยดูให้นู๋หน่อยนะค่ะ
ข้อมูลที่ผิดไปตัวอย่างเช่น รหัสสินค้าที่ 6 , ID ที่ 250 , 553 , 554 จะได้ค่าใน Balance2 ที่ผิดออกไปนะค่ะ
รหัสสินค้า 8 , ID ที่ 130 , 110 , 131 หรือ ID ที่ 486 , 542 ,488 ก้อจะได้ข้อมูลใน Balance2 ที่ผิดออกไปอ่ะค่ะ
ไม่ทราบว่าเป็นเพราะอะไรค่ะ อาจารย์ช่วยนู๋ด้วยนะค่ะ ขอบพระคุณมากค่ะ
10 @R04119
อาจารย์ค่ะ รบกวนช่วยนู๋ด้วยค่ะ
11 @R04120
อาจารย์เป็นลมไปแล้วมั๊ง นู๋
เคยเห็นคนถามไปถามมาแบบหนูนี่แหละ
แล้วก็ถูกหยุดโต้ตอบไปดื้อๆทั้งๆที่เรื่องยังไม่จบ
ไม่รู้ว่าเป็นเพราะไม่ได้อ่านว่ามีคำถามเพิ่มมาอีกหรือเปล่า
ลองตั้งกระทู้ใหม่ดูอีกทีซิ นู๋
ป้าก็อยากรู้เหมือนกัน
เคยเห็นคนถามไปถามมาแบบหนูนี่แหละ
แล้วก็ถูกหยุดโต้ตอบไปดื้อๆทั้งๆที่เรื่องยังไม่จบ
ไม่รู้ว่าเป็นเพราะไม่ได้อ่านว่ามีคำถามเพิ่มมาอีกหรือเปล่า
ลองตั้งกระทู้ใหม่ดูอีกทีซิ นู๋
ป้าก็อยากรู้เหมือนกัน
12 @R04121
อาจารย์เป็นลมไปแล้วมั๊ง นู๋
เคยเห็นคนถามไปถามมาแบบหนูนี่แหละ
แล้วก็ถูกหยุดโต้ตอบไปดื้อๆทั้งๆที่เรื่องยังไม่จบ
ไม่รู้ว่าเป็นเพราะไม่ได้อ่านว่ามีคำถามเพิ่มมาอีกหรือเปล่า
ลองตั้งกระทู้ใหม่ดูอีกทีซิ นู๋
ป้าก็อยากรู้เหมือนกัน
เคยเห็นคนถามไปถามมาแบบหนูนี่แหละ
แล้วก็ถูกหยุดโต้ตอบไปดื้อๆทั้งๆที่เรื่องยังไม่จบ
ไม่รู้ว่าเป็นเพราะไม่ได้อ่านว่ามีคำถามเพิ่มมาอีกหรือเปล่า
ลองตั้งกระทู้ใหม่ดูอีกทีซิ นู๋
ป้าก็อยากรู้เหมือนกัน
13 @R04127
คุณ J ครับ
ลองสลับที่กันใน Query (QQ2) นะครับ ให้ เอา Date มาไว้ข้างหน้า ID นะครับแล้วลองเช็คดูอีกที
ลองสลับที่กันใน Query (QQ2) นะครับ ให้ เอา Date มาไว้ข้างหน้า ID นะครับแล้วลองเช็คดูอีกที
14 @R04131
ทำตามอย่างที่คุณ moo บอกแล้วค่ะ ผลปรากฏว่า ก้อยังผิดเหมือนเดิมค่ะ ทำอย่างไรดีค่ะ รบกวนช่วยด้วยนะค่ะ
15 @R04133
ไม่รู้ว่าผมเข้าใจอย่างที่คุณเข้าหรือเปล่านะครับ ถ้าใช้วิธีตามที่อาจารย์สุภาพทำไว้
รหัสสินค้า6 ID เลขที่ 250 Balance = 7 แล้วต่อมาเป็น 553 In = 1 แทนที่จะเท่ากับ 8 แต่มันดันเท่ากับ 0 (ผลรวมตรงนี้จะไม่ถูกต้องใช้ไหมครับ) ที่เป็นอย่านี้ก็เพราะว่ามันยังมี ID 480 และ 481 อีก แต่มันเป็นเดือน 7 ก็เลยอยู่ที่หลัง ID 553เพราะฉนั้นวิธีแก้ก็คือ ให้เอา Ascending ของ Date ออก ให้มีเฉพาะ ID
รหัสสินค้า6 ID เลขที่ 250 Balance = 7 แล้วต่อมาเป็น 553 In = 1 แทนที่จะเท่ากับ 8 แต่มันดันเท่ากับ 0 (ผลรวมตรงนี้จะไม่ถูกต้องใช้ไหมครับ) ที่เป็นอย่านี้ก็เพราะว่ามันยังมี ID 480 และ 481 อีก แต่มันเป็นเดือน 7 ก็เลยอยู่ที่หลัง ID 553เพราะฉนั้นวิธีแก้ก็คือ ให้เอา Ascending ของ Date ออก ให้มีเฉพาะ ID
16 @R04261
เอางี้มั๊ย...เพิ่มฟิลล์ Numinstock ในตารางสินค้า ไว้เก็บจำนวนคงเหลือ(จริง) เมื่อการเบิก หรือรับ ก็ให้เพิ่มข้อมูลตามปกติในตารางต่างๆ แต่ให้เอาจำนวน มาบวกหรือลบกับ ์Numinstock ก่อน จากนั้น Numinstock ก็จะเป็นค่าคงเหลือในคลังน่ะ แล้วก็สั่งให้เอาค่านี้ไปใส่ในตารางที่ว่าอีกครั้งนึง...แค่นี้น่าจะได้นะ
17 @R04262
ไม่เข้าใจที่คุณ upathum บอกค่ะ รบกวนอธิบายใหม่อีกครั้งได้มั้ยค่ะ ขุอบคุณมากค่ะ
18 @R04264
บอกOrder ของการเรียงไม่ถูกครับให้
เพิ่ม QQ1.ID เข้าไปใน Order จะได้เป็น ORDER BY QQ1.ID, QQ1.Date;ดูSQL Command จะเป็น
PARAMETERS [รหัสสินค้า] Short;
SELECT (Select Count(*) From [QQ1] as Temp Where [Temp].[ID] < [QQ1].[ID]+1) AS [No], QQ1.ID, QQ1.Product, QQ1.ProductName, QQ1.Unit, QQ1.Date, QQ1.Customer, QQ1.Invoice, QQ1.[In], QQ1.Out, (SELECT Sum(Balance1) FROM [QQ1] AS Temp Where [Temp].[ID]<=[QQ1].[ID] and [Temp].[Product] = [QQ1].[Product]) AS Balance2
FROM QQ1
GROUP BY QQ1.ID, QQ1.Product, QQ1.ProductName, QQ1.Unit, QQ1.Date, QQ1.Customer, QQ1.Invoice, QQ1.[In], QQ1.Out, QQ1.Balance1
HAVING (((QQ1.Product)=[รหัสสินค้า]))
ORDER BY QQ1.ID, QQ1.Date;
ครับแล้วผลที่ออกมาก็จะถูก
เพิ่ม QQ1.ID เข้าไปใน Order จะได้เป็น ORDER BY QQ1.ID, QQ1.Date;ดูSQL Command จะเป็น
PARAMETERS [รหัสสินค้า] Short;
SELECT (Select Count(*) From [QQ1] as Temp Where [Temp].[ID] < [QQ1].[ID]+1) AS [No], QQ1.ID, QQ1.Product, QQ1.ProductName, QQ1.Unit, QQ1.Date, QQ1.Customer, QQ1.Invoice, QQ1.[In], QQ1.Out, (SELECT Sum(Balance1) FROM [QQ1] AS Temp Where [Temp].[ID]<=[QQ1].[ID] and [Temp].[Product] = [QQ1].[Product]) AS Balance2
FROM QQ1
GROUP BY QQ1.ID, QQ1.Product, QQ1.ProductName, QQ1.Unit, QQ1.Date, QQ1.Customer, QQ1.Invoice, QQ1.[In], QQ1.Out, QQ1.Balance1
HAVING (((QQ1.Product)=[รหัสสินค้า]))
ORDER BY QQ1.ID, QQ1.Date;
ครับแล้วผลที่ออกมาก็จะถูก
19 @R04272
คุณ J เคยดูตัวอย่าง Project.mdb แล้วนะครับ? ตัดสต๊อกอัตโนมัติด้วย เขียน code เยอะเลยครับ ลองประยุกต์โดยที่หลังจากที่นำค่าที่ได้จากการรับ หรือเบิกสินค้าไปเพิ่มหรือลบแล้ว ก็ให้จำค่าคงเหลือไว้ (อาจกำหนดตัวแปรมารับค่าไว้ก็ได้) แล้วก็นำค่านี้(จากตัวแปร)ไปใส่ในตาราง transanction ที่ต้องการด้วย หลังจากที่ใส่ รหัส,รหัสสินค้า,วันที่,จำนวนรับ,จำนวนเบิก,ค่าคงเหลือ...น่าจะพอได้นะ
==================================================================
ลำดับ รหัส ชื่อ หน่วย วันที่ นำเข้า ส่งออก คงเหลือ
==================================================================
==================================================================
ลำดับ รหัส ชื่อ หน่วย วันที่ นำเข้า ส่งออก คงเหลือ
==================================================================
Time: 0.1107s
คงเหลือ: [นำเข้า] - [ส่งออก]
2. ช่อง Sort ให้เลือก Ascending ในช่อง ลำดับ และ วันที่
3. นำ Query นี้ไปสร้างเป็น รายงาน ครับ