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
:D คุณ suka กำหนดมาให้เลยครับว่าแต่ละประเภทมีกี่หลัก ประกอบด้วยอักขระใดบ้าง หรือตัวเลขล้วน ๆ หากสิ่งการคือให้ Code ทำการ Run เลขที่เมื่อมีการบันทึกไปแล้วไม่ได้ดูเงื่อนไขอื่นใดอีก Code ที่จะใช้นั้นผมคิดว่าไม่น่าจะยากครับ :mrgreen:

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
:D กรณีเป็นตัวเลขทั้งหมดก็สามารถ 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
:D เครื่องหมาย ... นั้นผมละไว้ในฐานที่เข้าใจเนื่องจากเป็น 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
:D เนื่องจาก 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
:D ก็ต้องแปลงให้มาอยู่ในรูปแบบ Database ครับ ลองส่งตัวอย่างมาอีกทีครับ :mrgreen:

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
:D ข้อมูลใน N209 ถึง 211 มาได้อย่างไรครับ มีหลักการได้ให้โปรแกรมเลือกใช้ค่าที่ให้ไว้ไหมครับ และมีแค่ 3 ค่านี้เท่านั้นหรือเปล่าครับ

หลักการที่ถูกต้องคือ จะต้องระบุให้โปรแกรมรู้ว่า ตอนนี้เรากำลังทำงานกับรายการประเภทใด รายการประเภทนั้นในฐานข้อมูลมีรายการล่าสุดอยู่ที่เลขที่ใด แล้วค่อยเอาเลขที่นั้นมาบวกด้วย 1

สำหรับการออกแบบตารางเป็นฐานข้อมูลนั้นผมทำเป็นตัวอย่างให้แล้วในชีท PriceList จะเห็นได้ว่าสามารถเก็บข้อมูลได้จำนวนมาก เพราะเราเก็บลงไปด้านล่าง ไม่ใช่เก็บไปด้านขวาครับ :mrgreen:

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
:D สามารถใช้สูตรดึงมาได้ครับ ส่งไฟล์ตัวอย่างที่ปรับปรุงแล้วมาด้วยครับ จะได้เห็นข้อมูลและเพื่อความสะดวกในการตอบครับ :mrgreen:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Wed Jan 12, 2011 4:25 pm
by suka
อาจารย์คะ ส่งไฟล์ตัวอย่างค่ะ

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Wed Jan 12, 2011 4:36 pm
by snasui
:D ในชีท Enterthedata ต้องระบุ Type ด้วยครับว่า Unit Price และ Discount ที่ดึงมานั่นเป็น ปกติ, พิเศษ, พิเศษ1 ฯลฯ โดยดูจากเซลล์ใด เพื่อจะได้ดึงค่ามาถูกต้อง :mrgreen:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Wed Jan 12, 2011 4:56 pm
by suka
อาจารย์คะ ส่งไฟล์ตัวอย่างอีกรอบค่ะ

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Wed Jan 12, 2011 5:09 pm
by snasui
:D ลองตามไฟล์แนบครับ

ที่ 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
อาจารย์คะ ขอรับไฟล์ตัวอย่างค่ะ

ขอบพระคุณมากค่ะ