กระทู้เก่าบอร์ด อ.Yeadram
3,376 10
URL.หัวข้อ /
URL
คำนวนคลังสินค้า
ขอรบกวนถามเกี่ยวกับการคำนวนระบบคลังสินค้าในaccessนะครับ คือว่า ผมมี Field productnumberในtblproduct และordernumberในtblorder
การคำนวนที่ผมอยากได้คือ productnumber=productnumber-ordernumber ผลลัพท์คือจำนวนสินค้าที่เหลือจริงครับ แต่ผมลองคำนวนผ่านqryแล้ว หลังจากที่มันคำนวนให้แล้วมันไม่ยอมเก็บค่าหรือupdateให้ครับ เช่น มีสินค้าA 10หน่วย ส่งลูกค้าA 5หน่วย มันคำนวนแล้วเหลือสินค้าA 5หน่วย แต่มันไม่ยอมเก็บค่าไว้ พอลูกค้าฺBสั่งอีก 5 หน่วย มันก็เอาข้อมูลเก่าหรือจำนวนเดิมคือ10ไปตั้งลบครับ ผมก็ไม่รู้ว่าจะทำอย่างไรเพื่อให้มันupdateข้อมูลหลังคำนวน รบกวนขอท่านผุ้รุ้ชีแนะด้วยครับ ขอแบบเข้าใจง่ายที่สุดนะครับ ผมไม่ค่อยได้ใช้accessและเป็นคนหัวช้ามาก ขอบคุณครับ
การคำนวนที่ผมอยากได้คือ productnumber=productnumber-ordernumber ผลลัพท์คือจำนวนสินค้าที่เหลือจริงครับ แต่ผมลองคำนวนผ่านqryแล้ว หลังจากที่มันคำนวนให้แล้วมันไม่ยอมเก็บค่าหรือupdateให้ครับ เช่น มีสินค้าA 10หน่วย ส่งลูกค้าA 5หน่วย มันคำนวนแล้วเหลือสินค้าA 5หน่วย แต่มันไม่ยอมเก็บค่าไว้ พอลูกค้าฺBสั่งอีก 5 หน่วย มันก็เอาข้อมูลเก่าหรือจำนวนเดิมคือ10ไปตั้งลบครับ ผมก็ไม่รู้ว่าจะทำอย่างไรเพื่อให้มันupdateข้อมูลหลังคำนวน รบกวนขอท่านผุ้รุ้ชีแนะด้วยครับ ขอแบบเข้าใจง่ายที่สุดนะครับ ผมไม่ค่อยได้ใช้accessและเป็นคนหัวช้ามาก ขอบคุณครับ
10 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R11500
"มันคำนวนให้แล้วมันไม่ยอมเก็บค่าหรือupdateให้ครับ"
แล้วคุณสั่งให้มันเก็บค่าหรือ update แล้วหรือยังครับ ?
แล้วคุณสั่งให้มันเก็บค่าหรือ update แล้วหรือยังครับ ?
3 @R11509
ขอบคุณทุกท่านที่พยายามช่วยเหลือ ถึงแม้ว่าคำถามมันงงมาก ผมจะพยายามเอาคำตอบไปทำดู แล้วท่านPichaiTcครับ T_T นั่นแหละครับปัญหา คือผมทำไม่เป็น
4 @R11510
ผมมีตัวอย่างโปรแกรมสินค้าคงคลัง หากต้องการ add มาได้ที่ sutee789@gmail.com (ลองนำไปศึกษาดูนะครับ)
5 @R11511
ขอบคุณมากๆครับ คนไทยใจดี
6 @R11512
จะเป็นการรบกวนหรือเปล่าครับ ถ้าขอ Function ในหัวข้อ ของคุณ (Krathok-man
(R11497) เผื่อประยุกต์ใช้ได้ครับ
ปัญหาคือ....
1. รับของ Lot. ที่่ 1 หน่วยละ 10 บาท จำนวน 10 หน่วย เป็นเงิน 100 บาท
2. รับของ Lot. ที่่ 2 หน่วยละ 12 บาท จำนวน 10 หน่วย เป็นเงิน 120 บาท
แล้วเก็บของเข้าไปรวมกัน ตอนนี้จะแยกไม่ออกล่ะครับว่า อันไหน 10 บาท อันไหน 12 บาท
3.เวลาจ่ายออก
ครั้งที่ 1 = 5 หน่วย เป็นเงิน (จะคูณ 10 หรือ 12 ตรงนี้ กรอกข้อมูลไม่ได้ เพราะไม่รู้ว่าชิ้นไหนราคาเท่าไหร่)
ครั้งที่ 2 = 7 หน่วย (จะคูณ 10 หรือ 12 ตรงนี้ กรอกข้อมูลไม่ได้ เพราะไม่รู้ว่าชิ้นไหนราคาเท่าไหร่)
ครั้งที่ 3 = 4 หน่วย (จะคูณ 10 หรือ 12 ตรงนี้ กรอกข้อมูลไม่ได้ เพราะไม่รู้ว่าชิ้นไหนราคาเท่าไหร่)
ครั้งที่ 4 = 4 หน่วย (จะคูณ 10 หรือ 12 ตรงนี้ กรอกข้อมูลไม่ได้ เพราะไม่รู้ว่าชิ้นไหนราคาเท่าไหร่)
4. จะมีวิธีไหนบ้างครับ ที่จะทำให้เรารู้ว่า เราสั่งจ่ายของ Lot.ที่ 1 ราคา 10 บาท ไปครบ 10 ชิ้นแล้ว ต่อไปก็จ่าย Lot.ที่ 2 ราคา 12 บาท
(ตอนนี้ที่แก้ปัญหาคือ ต้องติดราคาทุกชิ้นว่า ชิ้นไหน ราคาเท่าไหร่ เวลาจ่ายออกก็ ต้องลงราคาตามที่ติดไว้ ซึ่งสิ้นเปลืองและเสียเวลามากครับ)
ProductCode InOut Qty Unit Amont NetAmont
001 In 10 10 100 100
001 In 12 10 120 220
001 Out 10 5 50 170
001 Out 10 7 70..................(ตรงบบรทัดนี้แหละครับ พอเรากรอกข้อมูล ตรง Unit = 7 ให้เตือนว่า ของราคา 10 บาทยังเหลือจ่ายได้อีก 5 ชิ้น )
ต้องขออภัยด้วยนะครับ หากไม่เข้าใจ พยายามจะอธิบายให้เข้าใจ แต่ไม่รู้จะอะบายยังไงครับ.....
(R11497) เผื่อประยุกต์ใช้ได้ครับ
ปัญหาคือ....
1. รับของ Lot. ที่่ 1 หน่วยละ 10 บาท จำนวน 10 หน่วย เป็นเงิน 100 บาท
2. รับของ Lot. ที่่ 2 หน่วยละ 12 บาท จำนวน 10 หน่วย เป็นเงิน 120 บาท
แล้วเก็บของเข้าไปรวมกัน ตอนนี้จะแยกไม่ออกล่ะครับว่า อันไหน 10 บาท อันไหน 12 บาท
3.เวลาจ่ายออก
ครั้งที่ 1 = 5 หน่วย เป็นเงิน (จะคูณ 10 หรือ 12 ตรงนี้ กรอกข้อมูลไม่ได้ เพราะไม่รู้ว่าชิ้นไหนราคาเท่าไหร่)
ครั้งที่ 2 = 7 หน่วย (จะคูณ 10 หรือ 12 ตรงนี้ กรอกข้อมูลไม่ได้ เพราะไม่รู้ว่าชิ้นไหนราคาเท่าไหร่)
ครั้งที่ 3 = 4 หน่วย (จะคูณ 10 หรือ 12 ตรงนี้ กรอกข้อมูลไม่ได้ เพราะไม่รู้ว่าชิ้นไหนราคาเท่าไหร่)
ครั้งที่ 4 = 4 หน่วย (จะคูณ 10 หรือ 12 ตรงนี้ กรอกข้อมูลไม่ได้ เพราะไม่รู้ว่าชิ้นไหนราคาเท่าไหร่)
4. จะมีวิธีไหนบ้างครับ ที่จะทำให้เรารู้ว่า เราสั่งจ่ายของ Lot.ที่ 1 ราคา 10 บาท ไปครบ 10 ชิ้นแล้ว ต่อไปก็จ่าย Lot.ที่ 2 ราคา 12 บาท
(ตอนนี้ที่แก้ปัญหาคือ ต้องติดราคาทุกชิ้นว่า ชิ้นไหน ราคาเท่าไหร่ เวลาจ่ายออกก็ ต้องลงราคาตามที่ติดไว้ ซึ่งสิ้นเปลืองและเสียเวลามากครับ)
ProductCode InOut Qty Unit Amont NetAmont
001 In 10 10 100 100
001 In 12 10 120 220
001 Out 10 5 50 170
001 Out 10 7 70..................(ตรงบบรทัดนี้แหละครับ พอเรากรอกข้อมูล ตรง Unit = 7 ให้เตือนว่า ของราคา 10 บาทยังเหลือจ่ายได้อีก 5 ชิ้น )
ต้องขออภัยด้วยนะครับ หากไม่เข้าใจ พยายามจะอธิบายให้เข้าใจ แต่ไม่รู้จะอะบายยังไงครับ.....
7 @R11513
ขอบคุณครับที่พยายามอธิบายให้ผมเข้าใจ ซึ้งใจมากครับ แต่ผมก็ยังไม่เข้าใจอยู่ดี คือไม่ใช่เพราะท่านอธิบายไม่เข้าใจ แต่ด้วยพื้นฐานของผมไม่ค่อยมีเองครับ เด๋ยวผมขออณุญาติ ศึกษาการเขียนคำถามให้เข้าใจกว่านี้ ท่านผู้รู้จะได้ตอบได้ง่ายขึ้น ผมลองพยายาม อ่านกระทู้เก่าๆเรื่องการเขียนfunctionหรือการupdate qryแล้ว แต่ก็ไม่เข้าใจครับ ตอนนี้ผมติดปัญหานี้อย่างเดียวถ้าแก้ได้โปรแกรมคงจะมีประโยช์นมากขึ้น ซึ่งผมคิดว่ามันจะเป็นประโยช์นต่อสิ่งที่ผมทำอย่างมากจึงขอให้ทุกท่าน อย่าเพิ่งเบื่อผมก่อนนะครับ ขอบพระคุณอีกครั้งครับ
8 @R11514
To คุณ เอกชัย
ผมเดาว่าคุณใช้ Select Query ในการดูข้อมูล
Select productnumber - ordernumber as CurrentStock
From tblproduct
Inner Join tblOrder
On tblproduct.ProductNo = tblOrder.ProductNo
Where ProductName = "A" And OrderNo = 1
ตรงนี้เป็นแค่ Select Query คือดูข้อมูลเฉยๆ ไม่ได้ แก้ไขข้อมูล
เมื่อจะดู ProductNumber ครั้งต่อไปที่ได้ order ใบที่ 2 คุณก็ใช้ query เดิมแต่เปลี่ยน where
Where ProductName = "A" And OrderNo = 2
เมื่อคุณ query อีกที ข้อมูลเดิม คือ ProductNumber ยังไม่เคยถูก update ย่อมไม่เปลี่ยนครับ
ซึ่งที่จริงแล้ว คุณไม่ควร update ข้อมูลทันที (ต้องอธิบายเรื่องหลักการอีกยาว ลองศึกษาจากหนังสือ หรือ คำถาม/ตอบ ในกระทู้เก่า)
ให้ใช้ query แบบนี้ครับ
Select productnumber - SumOfOrderNumber as CurrentStock
From tblproduct
Inner Select Join
(Select ProductNo, Sum(OrderNumber) as SumOfOrderNumber
From tblOrder
Group By ProductNo) as Order
On tblproduct.ProductNo = Order.ProductNo
Where ProductName = "A" And OrderNo <= 2
ผมเดาว่าคุณใช้ Select Query ในการดูข้อมูล
Select productnumber - ordernumber as CurrentStock
From tblproduct
Inner Join tblOrder
On tblproduct.ProductNo = tblOrder.ProductNo
Where ProductName = "A" And OrderNo = 1
ตรงนี้เป็นแค่ Select Query คือดูข้อมูลเฉยๆ ไม่ได้ แก้ไขข้อมูล
เมื่อจะดู ProductNumber ครั้งต่อไปที่ได้ order ใบที่ 2 คุณก็ใช้ query เดิมแต่เปลี่ยน where
Where ProductName = "A" And OrderNo = 2
เมื่อคุณ query อีกที ข้อมูลเดิม คือ ProductNumber ยังไม่เคยถูก update ย่อมไม่เปลี่ยนครับ
ซึ่งที่จริงแล้ว คุณไม่ควร update ข้อมูลทันที (ต้องอธิบายเรื่องหลักการอีกยาว ลองศึกษาจากหนังสือ หรือ คำถาม/ตอบ ในกระทู้เก่า)
ให้ใช้ query แบบนี้ครับ
Select productnumber - SumOfOrderNumber as CurrentStock
From tblproduct
Inner Select Join
(Select ProductNo, Sum(OrderNumber) as SumOfOrderNumber
From tblOrder
Group By ProductNo) as Order
On tblproduct.ProductNo = Order.ProductNo
Where ProductName = "A" And OrderNo <= 2
9 @R11526
ขอบพระคุณครับท่าน ผมลองใข้วิธีนี้แล้ว (ยังงงๆอยู่) แต่มันerrorอะครับ ตอนนี้กำลังพยายามศึกษาเรื่อง VB อยุ่ครับ ขอท่านชี้แนะวิธีเพิ่มเติมหน่อยนะครับ
ขออธิบายสักนิดนะครับ ฟิลที่ขึ้นต้นด้วย minus,plus (+ตอนซื้อ[ใบสั่งซื้อBuy]ส่วน-ตอนขาย[ใบสั่งสินค้าOrder]ครับ) ซื่งเราต้องกรอกเองครับ ส่วนในใบสั่งสินค้ามีminusproduct,minusinventoryนั้น เราต้องเลือกกรอกครับว่าจะให้หักจากproductหรือinventoryเพราะเวลาไปซื้อของเราไม่สามารถเลือกรุ่นได้ครับแต่เวลาขายเราต้องแยกรุ่นครับ ถ้าเราไม่มีสต๊อกสินค้าไว้ เราก็ต้องตัดจากinventoryโดยตรงครับ อันนี้เป็นเงือนไขของการทำงาน ไม่ทราบว่าผมอธิบายงงมากไปไหม และผมอยากให้ข้อมูลมันอับเดตหลังจากที่เรากำหนดตัดสินค้าหรือวัตถุดิบเลยครับ รบกวนทุกท่านอีกแล้ว ขอความกรุณาด้วยนะครับ
ขออธิบายสักนิดนะครับ ฟิลที่ขึ้นต้นด้วย minus,plus (+ตอนซื้อ[ใบสั่งซื้อBuy]ส่วน-ตอนขาย[ใบสั่งสินค้าOrder]ครับ) ซื่งเราต้องกรอกเองครับ ส่วนในใบสั่งสินค้ามีminusproduct,minusinventoryนั้น เราต้องเลือกกรอกครับว่าจะให้หักจากproductหรือinventoryเพราะเวลาไปซื้อของเราไม่สามารถเลือกรุ่นได้ครับแต่เวลาขายเราต้องแยกรุ่นครับ ถ้าเราไม่มีสต๊อกสินค้าไว้ เราก็ต้องตัดจากinventoryโดยตรงครับ อันนี้เป็นเงือนไขของการทำงาน ไม่ทราบว่าผมอธิบายงงมากไปไหม และผมอยากให้ข้อมูลมันอับเดตหลังจากที่เรากำหนดตัดสินค้าหรือวัตถุดิบเลยครับ รบกวนทุกท่านอีกแล้ว ขอความกรุณาด้วยนะครับ
10 @R11527
ขออภัยครับภาพมันเล็กเกินไป
Time: 0.3200s
แล้วค่อยต่อด้วยการบันทึกของ B แต่ไม่ชัวนะครับ เพราะที่ผมทำเองมีการเก็บค่าสะสมการจ่ายไว้อีกตาราง และบางส่วนมีเหมือนกันที่ ลูกค้าคนเดียวซื้อสินค้า
5 ชิ้น แต่ของเราเก็บเป็น Lot เราก็ต้องจ่าย Lot ที่ 1 ก่อน เช่น 2 ชิ้น(ของหมด มีแค่ 2 ) แล้วก็ต่อ Lot ที่ 2 อีก 3 ชิ้น ถ้าแบบนี้ก็ต้องเขียน Function มาช่วย
เอาใจช่วยครับ พยายามนึกถึงหลักความจริงครับ แล้วค่อยๆออกแบบไปครับ