Page 4 of 7
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Wed Jan 05, 2011 9:50 am
by suka
แยกเอกสารเป็นตัวเลขก็ได้ค่ะ คือต้องการดูแค่ตัวนำหน้าเอกสารแล้วรู้ประเภทของงานค่ะ
เช่นงานผลิต ขึ้นต้นเป็น 1xxx เบิก = 2 ปรับปรุง = 3 ใบส่งสินค้าชั่วคราว = 4 ใบกำกับภาษี = 5 ประมาณนี้ค่ะ
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Wed Jan 05, 2011 11:40 am
by snasui
คุณ suka กำหนดมาให้เลยครับว่าแต่ละประเภทมีกี่หลัก ประกอบด้วยอักขระใดบ้าง หรือตัวเลขล้วน ๆ หากสิ่งการคือให้ Code ทำการ Run เลขที่เมื่อมีการบันทึกไปแล้วไม่ได้ดูเงื่อนไขอื่นใดอีก Code ที่จะใช้นั้นผมคิดว่าไม่น่าจะยากครับ
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Wed Jan 05, 2011 5:26 pm
by suka
ขอมีเงื่อนไขค่ะ คือสามารถเลือกประเภทเอกสารได้และไม่ทำการบันทึกซ้ำ หากมีการกรอกข้อมูลผิดสามารถเรียกกลับเพื่อแก้ไขหรือทำการยกเลิกได้ค่ะ
เลขที่เอกสารแต่ละประเภทมีดังนี้
ผลิต 100001 ใบส่งสินค้าชั่วคราว 4001001
เบิก 200001 ใบกำกับภาษี 54001001
รับคืน 300001
อาจารย์คะขอทำความเข้าใจการทำงานของระบบโปรแกรมก่อนค่ะ
หากมีการเบิกหรือรับคืนให้กรอกข้อมูลบันทึกไปก่อน แล้วค่อยใช้สูตรมาลบจากยอดการผลิตภายหลังใช่หรือไม่คะ
ขอบพระคุณค่ะ
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Wed Jan 05, 2011 9:53 pm
by snasui
กรณีเป็นตัวเลขทั้งหมดก็สามารถ Run ตัวเลขได้ง่ายครับ หากว่ามีการเปลี่ยนประเภทของของเอกสาร ก็ให้ทางผู้ใช้งานเปลี่ยนเองครับ ไม่เช่นนั้นก็ต้องระบุว่าให้โปรแกรมดูจากค่าในเซลล์ใด เพื่อนำเลขที่เอกสารถัดไปมาไว้ล่วงหน้า และเมื่อกดปุ่มบันทึกแล้ว ลำดับถัดไปก็จะแสดงมารอไว้ให้เลย
สำหรับการแก้ไข ปรับปรุง เปลี่ยนแปลง โดยหลักการแล้วเราจะไม่แก้ที่ใบเดิมโดยตรงแต่ให้เพิ่มรายการเข้าไปใหม่เพื่อปรับปรุงใบเดิม
ยกตัวอย่างเช่น ยกเลิกรายการที่บันทึกผิด จะมีการบันรายการเข้าไปใหม่ด้วย
ค่าที่ตรงกันข้ามเพื่อล้างให้เป็น 0
สำหรับไฟล์นี้คงต้องออกแบบฟอร์มสำหรับการปรับปรุงรายการมาเพิ่ม เนื่องฟอร์มปัจจุบันใช้สูตรในการดึงข้อมูลมาแสดง
สำหรับ Code เพื่อ Run Po.No ดูตัวอย่างตามด้านล่าง เครื่องหมาย ... คือ Code เดิมครับ
Code: Select all
Option Explicit
Sub PasteData()
...
Sheets("Enterthedata").Range("B204:B219,D204:D219, E204:F219").ClearContents
With Worksheets("Enterthedata")
.Range("L2") = .Range("L2") + 1
End With
Application.ScreenUpdating = True
End Sub
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Thu Jan 06, 2011 9:32 am
by suka
อาจารย์คะ ให้นำ Code นี้ต่อท้าย Code เดิมใช่มั้ยคะ
Sheets("Enterthedata").Range("B204:B219,D204:D219, E204:F219").ClearContents
With Worksheets("Enterthedata")
.Range("L2") = .Range("L2") + 1
End With
Application.ScreenUpdating = True
End Sub
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Thu Jan 06, 2011 9:48 am
by snasui
เครื่องหมาย ... นั้นผมละไว้ในฐานที่เข้าใจเนื่องจากเป็น Code ทั้งหลายก่อนแทรกครับ
มี Code เดิมอยู่ในคำตอบของผมด้วย ผมแสดงให้เห็นว่า
แทรกเข้าไประหว่างบรรทัดไหนถึงบรรทัดไหน ซึ่งอยู่ส่วนท้ายของ Code ทั้งหมด สังเกต
End Sub จะต้องอยู่บรรทัดท้ายสุดของแต่ละ Procedure
ที่ถามมา ถ้าคำว่า
ต่อท้ายหมายถึงต่อท้ายคำว่า End Sub คำตอบคือ
ไม่ใช่ครับ
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Thu Jan 06, 2011 12:06 pm
by suka
อาจารย์คะ ขอรบกวนช่วยดูให้อีกทีค่ะ เมื่อกดปุ่มบันทึกแล้ว ลำดับเลขที่เอกสารถัดไปแสดงรอ เพิ่มทีละ 2 หมายเลขค่ะ
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Thu Jan 06, 2011 12:13 pm
by snasui
เนื่องจาก Code ด้านล่างซ้ำักัน 2 ชุด เอาออกไป 1 ชุดครับ
Code: Select all
Sheets("Enterthedata").Range("B204:B219,D204:D219, E204:F219").ClearContents
With Worksheets("Enterthedata")
.Range("L2") = .Range("L2") + 1
End With
Application.ScreenUpdating = True
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Fri Jan 07, 2011 7:22 pm
by suka
อาจารย์คะ
แจ้งผลการใช้งานค่ะ การใช้ฟอร์มโดยใช้สูตรดึงข้อมูลช่วยลดปัญหากรอกผิดได้มาก และใช้ Code เพื่อ Run Po.No
ได้เพิ่มความสะดวก รวดเร็ว ในการบันทึกงาน
สรุปผลจากการเรียนรู้การใช้งาน Excel จากฟอรั่มนี้ช่วยให้รู้ประโยชน์ของฟอร์มกรอกข้อมูล และ เพิ่งรู้จักเจ้า Database ค่ะ
ไว้ได้แบบฟอร์มสำหรับการปรับปรุงรายการค่อยส่งมาให้อาจารย์ช่วยดูให้นะคะ
ตอนนี้ที่ชีท PriceList ใช้ถึงคอลัมน์สุดท้ายแล้ว IV ยังไม่พอค่ะจะต่อยังไงคะ
ขอบคุณค่ะ
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Fri Jan 07, 2011 8:14 pm
by snasui
ก็ต้องแปลงให้มาอยู่ในรูปแบบ Database ครับ ลองส่งตัวอย่างมาอีกทีครับ
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Sat Jan 08, 2011 11:39 am
by suka
อาจารย์คะ
1.ที่ชีท Enterthedata ได้ทำพักค่าเอกสารสุดท้ายในเซลล์ N209:N211 หากจะระบุว่าให้โปรแกรมดูจากค่าในเซลล์ N209:N211 เพื่อ Run Po.No ที่ L2 ได้มั้ยคะ
2.ที่ชีท PriceList ใช้ถึงคอลัมน์สุดท้ายแล้ว IV จะทำการเพิ่มคอลัมน์ได้อย่างไรคะ
ขอบคุณค่ะ
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Sat Jan 08, 2011 11:57 am
by snasui
ข้อมูลใน N209 ถึง 211 มาได้อย่างไรครับ มีหลักการได้ให้โปรแกรมเลือกใช้ค่าที่ให้ไว้ไหมครับ และมีแค่ 3 ค่านี้เท่านั้นหรือเปล่าครับ
หลักการที่ถูกต้องคือ จะต้องระบุให้โปรแกรมรู้ว่า ตอนนี้เรากำลังทำงานกับรายการประเภทใด รายการประเภทนั้นในฐานข้อมูลมีรายการล่าสุดอยู่ที่เลขที่ใด แล้วค่อยเอาเลขที่นั้นมาบวกด้วย 1
สำหรับการออกแบบตารางเป็นฐานข้อมูลนั้นผมทำเป็นตัวอย่างให้แล้วในชีท PriceList จะเห็นได้ว่าสามารถเก็บข้อมูลได้จำนวนมาก เพราะเราเก็บลงไปด้านล่าง ไม่ใช่เก็บไปด้านขวาครับ
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Sat Jan 08, 2011 12:19 pm
by suka
ขอบพระคุณมากค่ะ
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Wed Jan 12, 2011 10:32 am
by suka
ตัวอย่างการเก็บข้อมูลที่ควรจะเป็นสังเกตตามด้านล่างครับ
ไฟล์ Inventory.7(2).xls
จากการดูตัวอย่างของอาจารย์มีคำถามขอคำแนะนำเพิ่มค่ะ หากที่ชีท Products แทรกเซลล์เพิ่ม Type เข้าไปเพื่อกำหนดระดับราคา ราคาปกติ , ราคาพิเศษ , ระดับ 1 ,ระดับ 2 ,ระดับ 3 ,ฯลฯ และที่ชีท PriceList เซลล์ Type เป็นตัวกำหนดให้เลือกใช้ราคาแบบระดับไหน ของแต่ละร้านค้าได้ไหมค่ะ
ขอบคุณค่ะ
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Wed Jan 12, 2011 1:06 pm
by snasui
สามารถใช้สูตรดึงมาได้ครับ ส่งไฟล์ตัวอย่างที่ปรับปรุงแล้วมาด้วยครับ จะได้เห็นข้อมูลและเพื่อความสะดวกในการตอบครับ
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Wed Jan 12, 2011 4:25 pm
by suka
อาจารย์คะ ส่งไฟล์ตัวอย่างค่ะ
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Wed Jan 12, 2011 4:36 pm
by snasui
ในชีท
Enterthedata ต้องระบุ Type ด้วยครับว่า Unit Price และ Discount ที่ดึงมานั่นเป็น ปกติ, พิเศษ, พิเศษ1 ฯลฯ โดย
ดูจากเซลล์ใด เพื่อจะได้ดึงค่ามาถูกต้อง
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Wed Jan 12, 2011 4:56 pm
by suka
อาจารย์คะ ส่งไฟล์ตัวอย่างอีกรอบค่ะ
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Wed Jan 12, 2011 5:09 pm
by snasui
ลองตามไฟล์แนบครับ
ที่ J204 คีย์
=IF(ISBLANK($D204)," ",SUMPRODUCT(--($B204=Products!$A$2:$A$33),--($C204=Products!$B$2:$B$33),--($D204=Products!$C$2:$C$33),--($G$1=Products!$D$2:$D$33),INDEX(Products!$E$2:$F$33,0,MATCH(J$203,Products!$E$1:$F$1,0))))
Enter > Copy ไปยัง K219
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Wed Jan 12, 2011 5:32 pm
by suka
อาจารย์คะ ขอรับไฟล์ตัวอย่างค่ะ
ขอบพระคุณมากค่ะ