กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
        
           733   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.0620s
    
      
		
คงเหลือ: [นำเข้า] - [ส่งออก]
2. ช่อง Sort ให้เลือก Ascending ในช่อง ลำดับ และ วันที่
3. นำ Query นี้ไปสร้างเป็น รายงาน ครับ