มาเริ่มต้นทำฐานข้อมูลกัน: Ep.7 (การยกยอดจำนวนสินค้าคงเหลือ)
HTML-код
- Опубликовано: 22 июл 2017
- แก้บัค: กรณีหากขึ้นปีใหม่ แล้วเลขปีต่างกัน การจัดเรียงข้อมูลจะผิด
วิธีแก้ไขแบบง่ายๆ คือ หากคุณทำเหมือนในคลิปที่ qry_สินค้าเข้า, qry_สินค้าออก ที่ฟิลด์ วันที่ จะใช้คำสั่งแบบนี้
วันที่: Format([วันที่นำเข้า],"mm/yyyy")
วันที่: Format([วันที่สั่งซื้อ],"mm/yyyy")
ให้เปลี่ยนเป็น
วันที่: Format([วันที่นำเข้า],"yyyy/mm")
วันที่: Format([วันที่สั่งซื้อ],"yyyy/mm")
คือไล่จาก ปี/เดือน แต่หากต้องการยกยอดคงเหลือทุกวันแบบ ว/ด/ป ก็ให้ตัดฟังก์ชั่น Format() ออกได้เลย เป็น
วันที่: [วันที่นำเข้า]
วันที่: [วันที่สั่งซื้อ]
ประมาณนี้ครับ
#ยกยอดคงเหลือ #สินค้าคงเหลือ #Stock
อาจารย์สอนละเอียด ดีมากค่ะ
ขอบคุณมากครับ เรียนรู้ได้ประโยชน์ มากครับ
ทำดีมากเลยครับ
ขอบคุณครับ
ผมอยากได้สรุปคิวรี่เป็นสินค้าทุกรายการ(รายการที่ไม่ได้นำเข้าหรือขายออกก็อยากให้แสดงด้วยครับ)อยากทราบว่าต้องแก้ตรงไหนครับ
สวัสดีค่ะ สอบถามค่ะ ตอนสร้างปุ่มเรียงลำดับ โปรแกรมเค้าไม่รันให้ค่ะ
สอบถามครับ จากตาราง ยกยอด-คงเหลือ ทำแบบมีราคาด้วยต้องแก้งยังไงครับ
สอบถามไปในเพจเฟสบุ๊คเเล้วค่ะ อยากรู้ว่าพอมีวิธีเเก้ไหมคะ
สวัสดีครับ คือใน frm_คงเหลือ อยากให้มี สรุปยอดรายวันด้วยต้องเพิ่มอะไรมั่งครับ
สวัสดีครับ มีปัญหาจะรบกวนสอบถาม ผมจะทำระบบสต็อกสินค้า แบบยกยอด และ ยอดคงเหลือ แต่มี ปัญหา ตรง ของผมมีทั้งรหัสสินค้า และบาร์โค้ด แล้ว ยังมีข้อมูล ที่มากกว่าในตัวที่แสดง คือ สินค้าเข้าใหม่ และ ยอดแก้ไขเพิ่มเติมขาเข้า ส่วนขาออกมี ใบเบิก ใบจอง และสุดท้าย ใบตัดของเสีย ไม่ทราบว่าผมจะทำเช่น หรือใช้คำแบบไหนดีครับ
สอบถามมีปัญหาในการบันทึกฟอร์มครับ ขึ้นฟ้อง " microsoft access cannot save the form or report because it displays characters from a language that cannot be saved in your current system locale.
Switch your system locale to the language in the form or report and then try again. จะแก้อย่างไรครับ
วันที่จ่ายสินค้าหลายๆเจ้าเป็นสินค้าตัวเดียวกันแต่ยกยอดตัดไม่ตรงครับ แก้ไขยังไงดีครับ วันที่1 สินค้าa มี10 วันที่2จ่ายa ไป1 คงเหลือ9 เจ้าถัดไปจ่ายaอีก2 ต่อคงเหลือ7 แต่มันคงเหลือ8 เพราะยกยอดยังคงยกมา10เหมือนเดิมครับ ขอบคุณครับ
มีโปรแกรมสำเร็จขายไหม
อาจารย์ค่ะ ทำตามในคลิปแล้ว ทำไม Header มันไม่ขึ้นเหมือนของอาจารย์ค่ะ จะต้องไปตั้งค่าตรงไหนค่ะ
ต้องเลือก Form Header นะครับ ถ้าเลือก Page Header จะไม่แสดงผลใดๆ บนฟอร์ม
สอบถามครับ เรื่องการ Filter ตั้งให้กรองตัวที่สองแล้วพอรัน มันไม่ขึ้นอ่ะครับ
อื่ม ช่วงนาทีไหนของคลิปครับ และเขียนคำสั่ง Filter ว่าอะไร ขอดูหน่อยครับ
อยากให้ลองออกแบบฐานข้อมูล รายรับรายจ่ายครัวเรือน บ้างครับจะเป็นประโยชน์ต่อทุกๆคนเลย
ขอบคุณที่แนะนำนะครับ ไว้จะลองศึกษาดูก่อนครับ
Access-Creator แบบที่เราสามารถกรองแต่ละรายการได้ว่าเราใช้จ่ายแต่ละรายการได้ ว่าอันใหนใช้จ่ายมากน้อยมันจะได้นำไปสู่การวางแผนการใช้จ่ายว่าอันใหนควรประหยัด
สารภาพตามตรงนะครับ ผมยังไม่รู้เลยว่าเค้าบันทึกข้อมูลอะไรกันบ้าง เคยได้ยินแต่ชื่อ รู้ว่าเป็นโครงการที่สอนให้ชาวบ้านรู้จักการทำบัญชีรับจ่าย ยังไม่รู้รายละเอียดมากเลยครับ ไว้จะลองไปหาข้อมูลดูก่อน แต่ตอนนี้เนื้อหาที่ผมจะทำยังมีคิวอีกเยอะ แต่ยังไม่มีเวลาเลย ต้องของเวลายาวหน่อยครับ
ปล. ถ้ามีคลิปไหนแนะนำก็ส่งลิ้งค์มาให้ดูได้นะครับ
ผมเห็นในโปรแกรม สำเร็จรูป nsmoney ครบเครื่องดีแต่แพง ถ้ามาใช้accesทำใช้ให้ได้ไกล้เคียงกับโปรแกรมนั้นก็น่าจะดี
โอ้ว! คือทำได้นะครับ แต่คงต้องใช้เวลาในการพัฒนานานพอดู แถมก็ต้องมีความรู้ แนวคิดว่าเค้ามีวิธีคิดกันยังไงบ้าง การที่นักพัฒนา พัฒนาโปรแกรมได้ไม่ง่ายนะครับ ดูจากคลิปผมทำเป็นแค่แบบพื้นฐานธรรมดานะครับ ยังต้องใช้เวลาแค่ไหน และถ้ากว่าจะพัฒนาเป็นโปรแกรมที่มีครบครอบคลุมได้ต้องยอมจ่ายให้เค้าหละครับ ส่วนที่ผมคิดหากจะทำให้ดูก็คงเป็นแค่พื้นฐานแค่นั้นเองนะครับ แล้วคงต้องไปต่อยอดกันเอง ผมเคยเห็นโปรแกรมนี้แล้วเป็นโปรแกรมเก่ามากเหมือนกัน MS Access ทำได้ครับ ยังไงลองศึกษาการเขียนดูจะได้นำไปพัฒนาแบบที่เราต้องการใช้ได้
พอใส่ข้อมูลลงไปเยอะๆ หน้าคงเหลือค้างไปเลยค่ะ ไม่ทราบว่าเป็นเพราะอะไรคะ
ถ้าเกิดฐานข้อมูลเป็นในลักษณะของจำนวนมากๆ เป็นระดับหมื่นๆ แสนๆ เรคคอร์ดขึ้นไป วิธีนี้อาจมีผลทำให้ข้อมูลคำนวณได้ช้าลงไปเรื่อยๆตามจำนวนข้อมูลที่มากขึ้น หากเป็นอย่างนั้นแนะนำให้ทำฐานข้อมูลสรุปเป็นรายเดือนหรือรายปีก่อนแล้วจึงนำข้อมูลนั้นมาทำเป็นแบบยกยอดคงเหลือแทน จะช่วยลดเวลาในการคำนวณลงไปได้มากครับ
ขอความรู้หน่อยครับกรณีเรานำเข้าเป็นหลัง เป็นแพ็ค แล้วเราขายเป็นขวดขายย่อยแล้วเวลาตัดสต๊อกมันตัดไม่ตรงต้องตัดตามบาร์โค้ดหรือ ตัดตามชื่อสินค้าครับ ขอบคุณครับ
ลองดูคลิปนี้ ruclips.net/video/LBFIQ5H9Pm0/видео.html
อาจารย์คับ ถ้าต้องการตัดสต๊อคแบบรายสัปดาห์ต้องทำอย่างไรคับ
ช่วยชี้แนะด้วยคับ ขอบคุณครับ
ที่ qry_สินค้าเข้า และ qry_สินค้าออก จากเดิมฟิลด์ วันที่ เราเขียนโค้ดว่า
วันที่: Format([วันที่นำเข้า],"mm/yyyy")
ตรง mm/yyyy ให้เพิ่มเป็น mm/yyyy/ww ทั้ง 2 คิวรี่
วันที่: Format([วันที่นำเข้า],"mm/yyyy/ww")
วันที่: Format([วันที่สั่งซื้อ],"mm/yyyy/ww")
ww จะเป็นการบอกเลขว่าเป็นสัปดาห์ที่เท่าไหร่ของปี ประมาณนี้ครับ ปรับใช้ดู
Access-Creator ขอบคุณคัย อาจารย์
@@0899004612 ww/mm/yyyy วันเดือนปี
อาจารย์ครับ ผมทำตามอาจารย์ในขั้นตอนกานเขียนsql แต่ของผมมันRunไม่ได้ครับ มันเป็นเพราะอะไรครับ
ลองไล่คำสั่งดูดีๆครับ เพราะปัญหาการอ้างชื่อฟิลด์ผิดมักเกิดขึ้นเป็นประจำครับ
Access-Creator ขอบคุณครับ
สวัสดีครับ ผมต้องการทำเป็นรายงานครับ พอสร้างรายงานจาก query คงเหลือ ยกยอด แล้วเกิดข้อผิดพลาดคือ "ไม่อนุญาตให้ใช้ส่วนคำสั่ง Group by แบบหลายระดับในคิวรี่ย่อย" เป็นเฉพาะค่ายกยอดครับ ถ้าลบค่ายกยอดออกก็จะแสดงผลเป็นรายงานออกมาได้ครับ คำถามคือ ผมจะแสดงค่ายกยอดในรายงานได้ยังไงครับ ขอบคุณครับ
แสดงข้อความ Multi-level GROUP BY clause is not allowed in a subquery อย่างนี้ใช่ป่าวครับ ถ้าใช่ให้แก้ไขโดยใส่ SELECT * FROM (...) AS [TEMP_Table]; คล่อมที่ SQL statement เดิม ดังนี้ ไปที่ SQL ในคิวรี่เรานะครับ สมมุติ SQL ในคิวรี่เราเขียนแบบนี้
SELECT ชื่อ, นามสกุล, ที่อยู่, (SELECT Sum(เงินเดือน) FROM Table2 WHERE ...) FROM Table1
อะไรประมาณนี้ ที่มันทำกรุ๊ปในรายงานไม่ได้เพราะ รายงานมันมองเห็นว่าเรามีการใช้ซับคิวรี่ ดังนี้นเราก็ทำให้มันมองคิวรี่เราเป็นแค่คิวรี่อีกตัวที่เราเรียกมาใช้งานโดยการใส่ SELECT * FROM (...) AS [TEMP_Table]; คล่อมที่ SQL statement เป็น
แก้ไขโดยใส่ SELECT * FROM (SELECT ชื่อ, นามสกุล, ที่อยู่, (SELECT Sum(เงินเดือน) FROM Table2 WHERE ...) FROM Table1) AS [TEMP_Table];
คล่อมที่ SQL statement เดิม แล้วนำตัวนี้ไปใช้งานก็จะทำ Group ในรายงานได้ครับ
@@AccessCreator แก้ไขแล้ว ใช้ฟิลด์ยกยอดในรายงานได้แล้วครับ แต่ขึ้นเป็น #Error แทนครับ ซึ่งในคิวรี่และฟอร์มแสดงผลได้ปกติครับ
อื่ม! ผมลองทดสอบดูแล้ว เหมือนว่าในรายงานถ้าแบ่งเป็น Group มันจะใช้ซับคิวรี่มายกยอดอย่างนี้ไม่ได้ วิธีแก้นะครับ คือ แก้ที่คิวรี่ qry_คงเหลือยกยอด ที่ฟิดล์ ยกยอด จากเดิมผมเขียนอย่างนี้
ยกยอด: (SELECT nz(Sum([นำเข้า])) - nz(Sum([ขายออก])) FROM [qry_สินค้าเข้าออก] AS T1 WHERE [qry_สินค้าเข้าออก].[วันที่] > T1.[วันที่] AND [qry_สินค้าเข้าออก].[รหัสสินค้า] = T1.[รหัสสินค้า])
ให้แก้เป็น
ยกยอด: DLookUp("nz(sum([นำเข้า]))-nz(sum([ขายออก]))","qry_สินค้าเข้าออก","[รหัสสินค้า]=" & [qry_สินค้าเข้าออก].[รหัสสินค้า] & " AND cstr([วันที่])
ใช้ได้แล้วครับ ขอบคุณมากนะครับ
พอจะมี file ที่ทำ ให้ download ใน gg drive ไหมครับ
ถ้าหมายถึงไฟล์ตัวอย่าง โหลดได้ที่นี่ครับ
...
@@AccessCreator ขอบคุณมากครับ
ใน frm_คงเหลือ พอดีลงข้อมูลเปนปีนี้กับปีหน้า แล้ววันที่ มันนกลายเป็นปีหน้าขึ้นอยู่ด้านบน ต้องแก้ยังไงคะ ขอบคุณค่ะ
ไม่เข้าใจคำถามครับ
คือใน frm_คงเหลือ วันที่มันไม่เรียงกันค่ะ ขอบคุณค่ะ
อีกนิดนึงคะ ตรงพนักงานค่ะ เราสามารถทำlogin ผู้ใช้งานได้มั้ยคะ
อื่ม! อันนี้ตรวจสอบดูแล้ว เป็นสิ่งที่ผมลืมคิดไปครับ ถือว่าเป็น Bug ขอบคุณที่ติดตาม(แต่ยังไม่ได้กดติดตามช่องผมเลย 555) จนทำให้เห็นข้อผิดพลาดนะครับ คืออธิบายที่มันเป็นแบบนี้เพราะว่า การแปลงรูปแบบวันที่ด้วยฟังก์ชั่น Format() มันจะ Return ค่ากลับมาเป็นรูปแบบของ String (ตัวอักษร) ไม่ใช่ตัวเลขเหมือนค่าของวันที่ ทำให้การเรียงข้อมูลเป็นแบบตัวอักษร โดยเมื่อเรามีจัดรูปแบบเป็น เดือน/ปี เช่น 01/2560, 02/2560, 01/2561 มันจะเรียงโดยนับจาก 01 จนหมดก่อนแล้วค่อยนับ 02 ตามค่า Ascii ไม่ได้ตามค่าวันที่
วิธีแก้ไขแบบง่ายๆ คือ หากคุณทำเหมือนในคลิปที่ qry_สินค้าเข้า, qry_สินค้าออก ที่ฟิลด์ วันที่ จะใช้คำสั่งแบบนี้
วันที่: Format([วันที่นำเข้า],"mm/yyyy")
วันที่: Format([วันที่สั่งซื้อ],"mm/yyyy")
ให้เปลี่ยนเป็น
วันที่: Format([วันที่นำเข้า],"yyyy/mm")
วันที่: Format([วันที่สั่งซื้อ],"yyyy/mm")
คือไล่จาก ปี/เดือน แต่หากต้องการยกยอดคงเหลือทุกวันแบบ ว/ด/ป ก็ให้ตัดฟังก์ชั่น Format() ออกได้เลย เป็น
วันที่: [วันที่นำเข้า]
วันที่: [วันที่สั่งซื้อ]
ประมาณนี้ครับ
ผมทำคลิปสำหรับเรื่องของการ Login เข้าใช้งานแบบที่น่าจะพอใช้งานได้ระดับนึงไว้แล้วครับ น่าจะพอตอบคำถามนี้ได้ แต่ยังไม่มีเวลาตัดต่อเพราะมันยาวเหมือนกัน รอก่อนนะครับ ยังไงฝากกด ซับ แล้วกดกระดิ่งแจ้งเตือนไว้ด้วยก็ดีนะครับ เพราะคลิปต่อไปก็จะลงเรื่องนี้แหละครับ แต่ยังไม่ทราบว่าจะเสร็จวันไหน
ขอใอดีลายติดต่องานหน่อยค่ะ
ไม่สะดวกครับ ขออภัย
พอดี ผมจะต้อง ปริ้นส่ง หัวหน้า เป็นรายวัน อยากมาทำคงเหลือยกยอด และให้แสดงเป็นรายวันปัจจุบันเท่านั้น ผมลองทำ และตอนนี้ทำได้แล้ว แต่ผมอยากได้ สิ้นค้าที่ไม่ได้ขายในวันปัจุจบัน โชว์ ขึ้นมาด้วยครับ เช่น ผมมีสินค้า A,B,C,D และวันนี้ วันที่ 19/11/60 ผมได้ขาย A ,B ,D ออกไป แต่ รายการในฟอร์ม คงเหลือ ไม่มีรายการสินค้า C ขึ้นมาครับ ซึ่งผมอยากจะโชว์สินค้าทั้งหมดครับ แม้ไม่ได้ขายในวันนั้นครับ ขอคำแนะนำหน่อยครับ อออีกเรื่องครับ ขอโค้ดที่จะสั่งปริ้นหน้านี้ด้วยได้ไหมครับ
ปล. ผมได้ดูคลิปที่ 13 เรียบร้อย แล้วครับ และทำได้แล้วครับ ขอบคุณมากๆครับ
ผมลองผิดลองถูก จนทำปริ้น รีพอร์ท วันปัจจุบันได้แล้วครับ แต่ติด ตรง ผมอยากให้โชว์สินค้าทั้งหมดแม้วันนั้นไม่ได้ขายครับ พยายามอยู่นานเลยครับ
โค้ดสั่งปริ้น หมายถึง ให้สั่งพิมพ์เลยโดยไม่ต้อง Preview ใช่ไม๊ครับ ถ้าใช้ก็คือ จากในคลิป หากเราจะสั่งให้พิมพ์ตั้งแต่วันที่ 1/1/2017 ถึง 15/1/2017 เราจะสั่งประมาณนี้
DoCmd.OpenReport "rpt_ใบสั่งซื้อ", acViewPreview, , "[วันที่สั่งซื้อ] Between #1/1/2017# AND #15/1/2017#", , "1/1/2017 ถึง 15/1/2017"
ให้เปลี่ยนคำว่า acViewPreview เป็น acViewNormal แทนครับ
ส่วนเรื่องการแสดงรายชื่อสินค้าทั้งหมด อันนี้ค่อนข้างอยากนะครับ เพราะจากการทำมันต้องการตัวเลขในการคำนวณของสินค้าก่อนมันถึงจะแสดง ยังคิดไม่ออกเหมือนกัน อาจต้องใช้วิธีการใส่ข้อมูลหลอกลงไป เอาเป็นว่าตอนนี้วิธีที่ง่ายที่สุดเท่าที่คิดออกตอนนี้ก็คือ ให้เราทำการนำเข้าสินค้าทุกตัวในฟอร์มนำเข้า โดยใส่จำนวนนำเข้าของสินค้าแต่ละตัวเป็น 0 มันก็จะแสดงทุกตัว คือแค่มีข้อมูลนำเข้าสินค้าในวันนั้นๆ หรือเดือนนั้นๆ แล้วแต่การสรุปก็จะแสดงครับ
โดย Preview ครับ ผมทำได้แล้วครับ โดบใช้สูตรนี้ครับ
DoCmd.OpenReport "Rpt_คงเหลือรายวัน", acViewPreview, , "[วันที่] = Date()"
ผมใช้เงื่อนไขกรอง คือ "[วันที่] = Date()" ถ้าผมยากได้เงื่อนไขตรงนี้ เป็นแบบ กรองเฉพาะรายการขายล่าสุด ของสินค้านั้นๆ โชว์ขึ้นมา มันจะโชว์สินค้าทั้งหมดที่มีในร้าน หรือไม่ครับ จะมีโค้ตแนวแบบนี้ไหมครับ จะเขียนว่าอะไรดีครับ ขอบคุณครับ
ผมทำคลิปเป็นแนวทางให้ดูแล้วนะครับ ไม่รู้ว่าจะตรงกับความต้องการหรือไม่ ลองดูที่นี่นะครับ
ruclips.net/video/CDSulCqtVLw/видео.html