วันพฤหัสบดีที่ 29 มิถุนายน พ.ศ. 2560

โปรแกรมบัญชีรายรับรายจ่าย vb2010 ตอน การออกรายรายงาน

คุยกันก่อน ถึงตอนนี้ผมทำโปรแกรมโปรแกรมบัญชีรายรับรายจ่ายที่มีคนมาให้ทำผ่านมาถึงการเรียกดูข้อมูลหรือพูดง่ายๆก็คือรายงานแล้วนะครับ ที่คิดว่าก็คือจะเอาจะเอาง่ายๆครับทำเป็นฟอร์มให้เค้าเลือกวันที่ เลือกรายการว่าเป็นรายได้หรือรายจ่าย แล้วก็ดูข้อมูลได้เลย หลังจากดูเสร็จก็สามารถเอาออกมาเป็นกระดาษหรือพิมพ์ออกมาได้


ตามที่ออกแบบไว้ก็ประมาณนี้ครับ ใช้ RadioButton มาเพื่อเป็นตัวเลือกว่าจะดูข้อมูลรายได้ หรือ รายจ่าย ใช้ Textbox มาเพื่อใช้รับค่าวันที่ จาก MonthCalendar จากนั้นข้อมูลที่ถูกเลือกออกมาจะแสดงผ่าน Datagridview


ใช้คำสั่ง Select เลือกข้อมูลจากตาราง Tb_ReceiveDetail ครับ แล้วตรงท้ายของ Datagridview ก็มีผลรวมของจำนวนเงินด้วย ผมใช้การวนรวมเอาครับจริงๆน่าจะมีวิธีที่ดีกว่านี้แต่ผมหาไม่เจอครับ ก็เลยใช้วิธีวนตั้งแต่แถวแรกจนถึงแถวสุดท้ายแล้วก็เอาผมรวมที่ได้มาแสดงครับ ส่วนเรื่องตัวออกมาเป็นรายงานเตรียมพิมพ์เป็นกระดาษผมใช้ PrintPreviewDialog กับ PrintDocument มาช่วยนะครับ


หลังจากที่เราทำการเลือกข้อมูลแล้วในส่วนของการพิมพ์นั้นก็จะใช้ PrintPreviewDialog กับ PrintDocument จัดการครับ


ตัวโค้ดก็เอาง่ายๆครับ คือใช้ e.Graphics.DrawString วาดเอาครับกำหนดพิกัดแล้วก็วาดไปเลยครับ 

 รายงานก็ออกมาในลักษณะนี้ครับ



วันพุธที่ 28 มิถุนายน พ.ศ. 2560

โปรแกรมบัญชีรายรับรายจ่าย vb2010 ตอน บันทึกรายการรายได้และรายการรายจ่าย

คุยกันก่อนครับ  วันนี้ผมจะมาเขียนเกี่ยวกับการบันทึกรายการรายได้และรายการรายจ่ายครับ ต่อจากความตอนที่แล้วครับ หลังจากเราเลือกวันที่ที่จะบันทึกข้อมูลแล้ว และเลือกรายการรายรับหรือรายจ่ายเรียบร้อยแล้ว ลำดับต่อไปคือการใส่แค่จำนวนเงินเข้าไปในระบบครับ ว่ารายการนี้กี่บาทครับ


การบันทึกข้อมูล  ตรงกรอบสีแดงตรงนี้ครับที่เราจะใส่ข้อมูลจำนวนเงินหลังจากนั้นเรากด Enter หรือ ปุ่มบันทึกเมื่อไหร่การบันทึกจะเริ่มทำงานทันทีครับ เริ่มจากการตรวจสอบก่อนครับว่ามีการเลือกวันที่หรือยัง โดยปกติเมื่อเปิดเข้ามามันก็จะขึ้นวันที่ปัจจุบันอยู่แล้วครับ แต่สามารถเปลี่ยนได้ และการตรวจเช็คว่ามีการเลือกข้อมูลรายการรายได้หรือรายจ่ายหรือยัง กับสุดท้ายครับเช็คว่ามีการใส่จำนวนเงินลงไปหรือยัง ถ้ายังก็มีข้อความบอกผู้ใช้ว่าให้กรอกให้ครบก่อน จากนั้นผมก็เขียนคำสั่งเพิ่มข้อมูลลงไปในฐานข้อมูลที่ตาราง TbReceiveDetail ครับ ด้วยคำสั่ง Insert Into ครับ มีติดนึงครับตรง การบันทึกจำนวนเงินครับมีใช้ฟังก์ชั่น Cdbl แปลงค่าที่รับค่าที่ผู้ใช้กรอกให้เป็นทศนิยมครับเพราะในฐานข้อมูลมันตัวเลขทศนิยม ตัวโค้ดนี้ผมเขียนทั้งตอนกดปุ่มบันทึก และตอนกด Enter ครับ

การลบรายการ ครับเมื่อเราสามารถเพิ่มข้อมูลเข้าไปได้โอกาสการเพิ่มข้อมูลที่ผิดก็มีเกิดขึ้นได้ ผมก็เลยเขียนวิธีการที่จะลบข้อมูลเมื่อเพิ่มรายการผิดครับ โดยผมไปเขียนไว้ที่ Datagridview1_CellDoubleClick ครับ ตอนแรกจะเขียนที่ Click ธรรมดามันก็จะง่ายไปครับเผื่อเค้าคลิกไปโดยแล้วมันขึ้นมาว่าจะลบก็จะเป็นการรำคาญเปล่าก็เลยเอา DoubleClick ก็แล้วกัน ครับเริ่มกันเลย ผมใช้การยืนยันการลบจาก Msgbox ครับตรวจสอบการตอบว่า Yes ไหมถ้าใช่ก็เริ่มลบเลยครับโดยการลบจากข้อมูลใน คอลัมน์ของ Datagridview1 ครับและลบด้วยคำสั่ง Delete ที่ตารางเดิมครับ Tb_receiveDetail ครับ ตรงนี้ค่าตรงการตรวจสอบไม่ต้องใส่ '' หรือ ซิงเกิลโคดครับ


หลังจากทดสอบก็ได้ตามความต้องการของผมล่ะครับ
บทสรุป  คราวนี้เราบันทึกและลบได้ล่ะครับต่อไปเราจะไปดูการเรียกดูข้อมูลกันบ้างครับหรือรายงาน

วันอังคารที่ 27 มิถุนายน พ.ศ. 2560

โปรแกรมบัญชีรายรับรายจ่าย vb2010 ตอน เลือกข้อมูลจาก Datagridview ไปแสดงคอนโทรลอื่น

คุยกันก่อน  เมื่อคราวที่แล้วผมมาเล่าเกี่ยวกับการนำข้อมูลรายการรายได้หรือรายจ่ายมาแสดงใน Datagridview และก็สามารถค้นหาคำบางคำในรายการได้ครับ วันนี้ผมจะมาเขียนต่อครับในส่วนของการเลือกข้อมูลแล้วให้ไปแสดงบน Textbox ครับ


หน้าของโปรแกรมคือเมื่อเราคลิกที่รายการที่แสดงทางซ้ายนะครับ พอเลือกมันก็จะไปแสดงที่ด้านขวา รหัสรายการ และ ชือรายการครับ ผมเขียนโดยเหตุการณ์คลิกของคอนโทรล Datagridview_CellClick ครับ ชื่อDatagridview ของผมที่แสดงรายการชื่อ Datagridveiw2 นะครับ ผมประกาศตัวแปรมา ตัวนึงครับชื่อ ว่า i ให้มีชนิดข้อมูลเป็น จำนวนเต็ม และก็กำหนดค่าเริ่มต้นให้เท่ากับ 0  จากนั้นผมก็กำหนดให้โปรแกรมเอาค่าจาก Datagridview2  ที่เป็นแถวปัจจุบัน หมายถึงที่มีการคลิกน่ะครับ Datagridveiw2.CurrentRow.Index และก็ทำการตรวจสอบค่า i สักหน่อยครับว่ามันเท่ากับ Datagridview2.RowCount - 1 หรือเปล่าหมายถึงแถวสุดท้ายครับเพราะว่าอันนี้มันจะไม่มีข้อมูล ถ้าเท่าจะให้มันออกจาก Sub ไปเลยไม่ต้องทำไรต่อ ถ้าไม่ก็ ลงมาเอาค่าจาก Datagridview2.Rows(i).Cells(0).Value มาแสดงในช่องรหัสครับ และ Datagridview2.Rows(i).Cell(0).Value มาแสดงในช่องชื่อรายการครับ และที่เห็น Textbox4.Focus() ก็คือให้เคอร์เซอร์ไปอยู่ตรงช่อง Textbox4 ครับ เพื่อพร้อมให้ผู้ใช้ใส่จำนวนเงินครับ พูดง่ายๆคือส่วนนี้จะให้คลิกเลือกรายการว่าจะเอารายการไหนแล้วก็ใส่จำนวนเงินครับว่าเป็นรายได้หรือรายจ่ายก็แล้วแต่ โค้ดจริงก็ประมาณนี้ครับ

ในส่วนของช่องวันที่ครับ ผมใช้เครื่องมือคอนโทรล MonthCalendar ครับ เอาใช้โดยกำหนดให้ Visible เป็น Flase ครับ จนกว่าจะมีการคลิกเลือกปุ่มแล้ว MonthCalendar จะแสดงขึ้นมาครับ พอเลือกค่ามันก็จะหายไปครับ


โค้ดการเรียก MonthCalendar มาแสดงก็ไปที่เหตุการณ์คลิกของ ปุ่ม Button2_Click ครับ แล้วก็เขียนโค้ดกำหนดให้ Visible เป็น True คือแสดงให้เห็นครับ
จากนั้นผมก็เขียนโค้ดเพื่อให้เลือกข้อมูลได้จากเหตุการณ์ DataSelected ของ MonthCalendar ครับ เอาค่าวันที่มาแสดงในช่อง Textbox ที่เตรียมไว้ครับ พอคลิกเลือกเสร็จก็ให้ Datagridview Visible เป็น False ครับคือซ่อนไป


เป็นอันเรียบร้อยครับเลือกข้อมูลรายการรายได้หรือรายการรายจ่ายได้เลือกวันที่ได้แล้วครับ


บทสรุป คราวหน้าผมจะเขียนเพื่อให้โปรแกรมบันทึกรายการได้นะครับผม

วันจันทร์ที่ 26 มิถุนายน พ.ศ. 2560

โปรแกรมบัญชีรายรับรายจ่าย vb2010 ตอน ดึงข้อมูลรายการมาแสดงใน Datagridview

คุยกันก่อน  เมื่อคราวที่แล้วผมมมาเล่าให้ฟังว่าผมได้ออกแบบหน้าฟอร์มการลงรายการรายได้และรายการรายรับในกระดาษ จากนั้นผมก็มาจัดการวาดฟอร์มตามแบบที่วาดครับ ในวันนี้ผมจะมาเขียนโค้ดส่วนที่ดึงรายการมาแสดงใน Datagridview ครับเพื่อให้มีข้อมูลรอการเลือกจากผู้ใช้


จากภาพตัดเฉพาะด้านซ้ายที่เป็นที่แสดงข้อมูลของรายการรายได้ หรือ รายการรายจ่ายครับ คอนโทรลที่เกี่ยวข้องก็มี Textbox Button Datagridview ก่อนอื่นเลย ในฟอร์มนี้เราทำการเลือกการติดต่อฐานข้อมูลก่อนเลยครับ 


ทำการเรียก Connectdatabase() จากนั้นผมก็เขียนเพื่อให้ดึงข้อมูลรายการมาแสดงครับ


ผมทำการเขียนเป็นฟังก์ชั่นครับ ว่า SelectReceiveType ครับ เลือก รหัสรายการ ชื่อรายการ และเรียงจาก รหัสรายการ เอามาใส่ไว้ใน Datagridview2 ครับ และทำการปรับลักษณะของ Datagridview2 ให้แสดงหัวข้อภาษาไทย และปรับขนาดของคอลัมน์ให้มีความกว้าง 70 สำหรับ ช่องคอลัมน์รหัสรายการ และ 250 สำหรับช่องคอลัมน์ชื่อของรายการ ปรับแบบตัวอักษรเป็น Verdana ขนาด 10


แล้วให้ฟังก์ชั่น SelectReceiveType เรียกใช้ ฟังก์ชั่นนี้เพื่อให้ทำงานครับ จากนั้นเราก็ไปเขียน เรียกใช้ฟังก์ชั่นที่ ฟอร์มโหลดอีกที่ครับ

เท่านี้ก็ได้ข้อมูลมาแสดงใน Datagridview2 เรียบร้อยแล้วครับ


หลังจากนั้นผมมานั่งนึกถึงว่าในกรณีที่มีจำนวนข้อมูลรายการมากๆเช่น 100 รายการ การเลือกรายการคงลำบากไม่น้อยถ้าต้องเลื่อนสกอบาร์ด้านล่างหาข้อมูลที่เราต้องการ ก็เลยทำส่วนของการค้นหาไว้ด้านบนครับ สามารถค้นหาได้ทั้งรหัสรายการ และรายชื่อของรายการ และการหาไม่จำเป็นต้องใส่ข้อมูลครบขอแค่ใส่บางส่วนเข้าไป โปรแกรมก็จะค้นหามาให้เลือกครับ


ผมเขียนเป็นฟังก์ชั่น Find ครับ ในส่วนของภาษา Sql ที่สำคัญก็คือการใช้ LIKE กับ % มาช่วยทำให้เราสามารถค้นหาได้แบบบางส่วนครับ จากนั้นก็ไปเรียกใช้ฟังก์ชัน Find ในการกดปุ่ม ค้นหานะครับผลของการทำงานของโปรแกรมก็จะออกมาแบบนีครับ


หลังจากผมเลือกค้นหาจากคำว่า อุดหนุน โปรแกรมก็เลือกรายการที่มีคำว่า อุดหนุนมาแสดงครับ เท่านี้ก็สามารถค้นหาได้แบบยื่นหยุ่นแล้วครับ  แล้วพบกันในโอกาสหน้าครับผม

วันอาทิตย์ที่ 25 มิถุนายน พ.ศ. 2560

โปรแกรมบัญชีรายรับรายจ่าย vb2010 ตอน ออกแบบหน้าบันทึกรายการ

คุยกันก่อน ครับวันนี้ผมจะมาเล่าถึงการออกแบบหน้า บันทึกรายการรายได้กับรายจ่ายครับ คือมันหน้าจะเหมือนกันครับ ผมทำแยกเพื่อให้คนใช้ไม่สับสนแยกให้เห็นๆกันไปเลยครับ ไม่ต้องมาเลือกสถานะหรือหรืออะไรที่จะบ่งบอกตอนบันทึกรายการครับเผื่อเค้าลืม หน้าที่ออกแบบก็เอาแบบง่ายๆครับ


การออกแบบ ผมออกแบบว่าฝั่งซ้ายมือให้แสดงรายการของรายได้หรือรายจ่ายที่เพิ่มไว้นะครับเพื่อให้ผู้ใช้ได้เลือกว่าจะบันทึกรายการอะไร พอคลิกเลือกมันก็จะไปแสดงด้านขวาครับที่เป็นช่องๆ ที่จะสร้างด้วย textbox ครับ มีช่องให้เลือกวันที่ที่จะลงรายการ โดยตอนแรกมันจะแสดงวันที่ปัจจุบันก่อนเลยครับถ้าจะเปลี่ยนก็เลือกได้ครับ ช่องล่างสุดเป็นช่องให้กรอกจำนวนเงินครับ เมื่อกรอกเสร็จก็กด Enter มันจะบันทึกได้เลยครับ หรือจะกดจากปุ่ม บันทึกด้านข้างก็ได้ จากนั้นรายการจะมาแสดงด้านล่างครับเป็น Datagridview อีกตัวนึงครับ และใน Datagridview มียอดรวมด้านล่างด้วยครับ เป็นการรวมของรายการวันนี้ ใน Datagridview ตัวรายละเอียดนี้ผมจะให้คลิกแล้วสามารถยกเลิกรายการได้ด้วยครับเผื่อว่ามีการกรอกผิด หรือเลือกรายการมาผิดครับ อันนี้พอออกแบบแล้วก็จะเป็นแบบที่คิดไว้ครับ


โดยหลักๆคอนโทรลที่้ใช้ก็มี Textbox 5 ตัว   Datagridveiw 2 ตัว button 3 ตัวและ MonthCalendar 1 ตัวครับ  หลังจากที่ออกแบบเสร็จผมก็จะไปเขียนโค้ดโปรแกรมครับ เพื่อให้ส่วนนี้มันทำงานได้จริงครับ ในคราวหน้าผมจะมาเล่าให้ฟังอีกครับ

วันเสาร์ที่ 24 มิถุนายน พ.ศ. 2560

โปรแกรมบัญชีรายรับรายจ่าย vb2010 ตอน การเขียนโค้ดเพื่อใช้งาน 2

คุยกันก่อน  ความเดิมตอนที่แล้วผมเขียนเกี่ยวกับการเพิ่มและการแก้ไขฟอร์ม รายการรายรับและรายการรายจ่ายโดยมี Datagridview เป็นตัวแสดงข้อมูลทั้งหมดจากฐานข้อมูล รวมถึงการเลือกข้อมูลเพื่อทำการแก้ไขด้วย วันนี้ผมจะเขียนส่วนที่เหลือครับ ก็คือ การลบข้อมูลครับ จริงๆมันก็ไม่ได้มีอะไรยากครับเพราะในเมื่อผมทำการเลือกข้อมูลเพื่อทำการแก้ไขได้แล้ว ผมก็แค่เพิ่มส่วนของการลบไปก็เท่านั้นเอง

เริ่มทำการเขียนโค้ด เริ่มจากผมก็ทำการตรวจสอบว่ามีการเลือกข้อมูลหรือเปล่า ถ้าจำกันได้ผมได้ทำการเลือกข้อมูลโดยการคลิกข้อมูลจาก Datagridview ครับ วิธีการตรวจสอบก็ง่ายๆครับ คือถ้ามีการคลิกเลือกข้อมูลที่จะทำการลบ ตัวช่อง Textbox จะต้องมีข้อมูลครับ เราใช้ ฟังก์ชั่น Len(คอนโทรล) นับค่าที่อยู่ข้างในถ้าเป็นค่าว่างมันก็จะได้ 0 ครับ หมายถึงไม่ได้เลือกข้อมูลเลย ก็แสดงข้อความสักหน่อยครับว่า กรุณาเลือกข้อมูลที่จะลบ หากตรงนี้ผ่านเรา ก็เริ่มทำส่วนของการลบครับ โดยใช้ Msgbox สอบถามผู้ใช้ว่าเข้าต้องการลบจริงหรือไม่ ตรวจสอบด้วย VbYes ของ Msgbox ถ้าจริงก็หมายถึงกด Yes ก็ลบข้อมูลด้วยคำสั่ง Delete ของ SQL ครับ เขียนจริงก็จะได้แบบด้านล่างครับผม
คราวนี้ผมก็ทำการลบข้อมูลที่ต้องการเอาออกได้แล้วครับ อีกอย่างที่ผมจะเขียนก็คือ การทำปุ่มปิดครับ เมื่อก่อนที่เคยเขียน VB6 ผมจะใช้โค้ด แบบนี้ครับ  Unload me พอมาเขียนใน VB2010 ตอนแรกก็สงสัยว่าทำไมใช้ไม่ได้ ปรากฏว่า ต้องใช้ Me.Close ครับ

แค่นี้ครับปิดได้เลย จริงๆถ้าประยุกต์ใช้ก็ได้นะครับอาจมีการสอบถามว่าต้องการปิดหรือไม่ โดยใช้ Msgbox เหมือนเดิมกับการลบก็ได้นะครับ  มันก็จะได้ประมาณนี้ครับ

                           If   Msgbox("ต้องการปิดหน้านี้",Msgboxstyle.Critical+vbYesNo)=vbYes then
                                        me.Close
                            End if
แบบนี้ครับ มันจะถามก่อนปิด แต่ในโปรแกรมผมไม่ได้ใส่ไปครับอันนีบอกกันเผื่อใครมาอ่านแล้วจะทำ
อ่อ ลืมไปครับ ปุ่มเพิ่มมีไว้ทำไม 55 จริงๆผมมีไว้เพื่อเคลียร์ค่าในช่อง Textbox ครับเผื่อมีการคลิกอะไรค้างอยู่ถ้าจะเพิ่มใหม่กดปุ่มเพิ่มให้มันเคลียร์ค่าช่อง Textbox ให้ว่างก่อนใส่ค่าเพื่อสะดวกต่คนใช้ครับเค้าจะได้ไม่ต้องมานั่งลบก่อนพิมพ์ ส่วนโค้ดก็ไม่ยากครับ แค่
                             ชื่อคอนโทรล.text = ""
แค่นี้ก็สำเร็จเสร็จแล้วครับ


ผมไม่แน่ใจว่าตอนแรกๆที่เขียนผมใช้ชื่อ Textbox ว่าอะไรนะครับเอาเป็นว่าผมตั้งชื่อว่า Txt_no แทนรายการรหัส และ Txt_name แทนรายการชื่อของรายได้และรายจ่ายครับ


บทสรุป คราวนี้ผมก็มีฟอร์ม ที่จะจัดการรายการรายได้ และ รายการรายจ่ายแล้วครับ เพื่อเป็นตัวเลือกในการเขียนโปรแกรมส่วนอื่นต่อไปครับ


วันพฤหัสบดีที่ 22 มิถุนายน พ.ศ. 2560

โปรแกรมบัญชีรายรับรายจ่าย vb2010 ตอน การเขียนโค้ดเพื่อใช้งาน

คุยกันก่อน  คราวก่อนผมออกแบบหน้าจอเรียบร้อยแล้วและก็เขียนโค้ดการติดต่อฐานข้อมูลไว้รอล่ะ คราวนี้ผมก็จะเขียนเพื่อให้ใช้งาน รายการรายรับรายจ่ายให้มันใช้ได้ครับ

เริ่มเขียนโค้ด ก่อนอื่นผมสร้างโค้ดเพื่อให้ดึงข้อมูลมาแสดงใน Datagridview ก่อนครับ ให้ชื่อ SelectPayType โดยดึงมาจากตาราง Tb_Pay ครับเอามาทั้งหมดเลย และให้เรียงตามรหัสรายการจากน้อยไปมากครับหมายถึงใส่ข้อมูลเข้าไปก่อนอยู่บน หลังจากดึงข้อมูลมาใส่ใน Datasource ของDatagridview เรียบร้อยแล้วผมก็ทำการปรับหัวคอลัมน์ให้แสดงข้อความเป็นภาษาไทยครับเพราะถ้าไม่เปลี่ยนมันจะเอาชื่อฟิลด์มาใส่แทนครับ อาจดูไม่ดีสักเท่าไหร่  ปรับขนาดตัวอักษรเป็น 10 และมีรูปแบบอักษรเป็นVerdana ครับ ปรับขนาดคอลัมน์ช่องรหัสเท่ากับ 100 และช่องชื่อรายการเป็น 300 ครับ ส่วนตรงที่เขียนว่า Label9.text=Datagridview1.RowCount-1 & "รายการรายจ่าย" คือผมไปนับจำนวนแถวข้อมูลจาก Datagridview แล้วนำมาแสดงว่ามีข้อมูลอยู่กี่รายการครับ เขียนจริงก็จะได้แบบนี้ครับ


จากนั้นก็เขียนโค้ดที่  Frm_Pay_Load ครับลืมบอกไปในฟอร์รายจ่ายผมตั้งชื่อฟอร์มว่า Frm_Pay ครับ ในฟอร์มโหลดผมก็ทำการเรียกการติดต่อฐานข้อมูลที่เขียนไว้ครับ  Connectdatabase() ที่เขียนไว้ใน Module ครับและก็เรียก SelectPayType .ให้แสดง Datagridview ด้วยครับเขียนจริงก็แบบนี้ครับ


หลังจากนั้นก็ลองทดสอบผมการทำงานของโปรแกรมครับ


สังเกตุดูนะครับว่า การทำงานของโปรแกรมนั้น ตัว Datagridview มี2 คอลัมน์นะครับ มีชื่อหัวคอลัมน์เรียบร้อยตามที่ผมสร้างครับ แต่ไม่มีข้อมูลนะครับเพราะยังไม่ถึงการเพิ่มข้อมูลครับ ด้านล่างจะเขียนว่า 0 รายการรายจ่ายครับ ต่อไปผมก็ทำการเขียนโค้ดที่ปุ่มบันทึกครับ ดับเบิ้ลคลิกและก็เขียนโค้ดครับ ในส่วนของปุ่มบันทึกนะครับ ผมคิดเอาเองว่าการบันทึกมันมีสองรูปแบบครับ คือบันทึกการเพิ่มใหม่และบันทึกจากการแก้ไขครับ แล้วจะแยกกันโดยการเอารหัสเข้าไปหาในฐานครับว่ามีหรือยังถ้ามีก็เป็นการ Update ไป ถ้าไม่มีก็ Insert ไปครับ ผมจะทำการเช็คก่อนว่ามีการใส่ข้อมูลครบไหม ถ้าไม่ครบก็แสดงข้อความเตือน เขียนโค้ดได้แบบนี้ครับ



ลืมไปครับการที่จะแก้ไขนั้นต้องมีการเลือกข้อมูลครับฉะนั้นผมก็เลยเขียนให้สามารถเลือกข้อมูลจาก Datagridview ได้ครับคือจะเอาอันไหนก็คลิกเลือกแล้วให้ไปแสดงข้างบนแล้วแก้ไขได้เลยครับ เขียนใน เหตุการณ์ CellClick ของ Datagridview นั่นล่ะครับ


ผมการทำงานของโปรแกรมก็จะได้ตามที่ผมต้องการล่ะครับ



บทสรุปครับ ถึงตอนนี้ผมก็ได้เขียนติดต่อและแสดงข้อมูล กับ เขียนการเพิ่มใหม่และการแก้ไขเข้าไปครับ คราวหน้าก็เป็นลบละครับวันนี้นอนก่อน ง่วงมากครับไปเตะบอลมา 555 ขอบคุณที่ผ่านมาอ่านนะครับ

วันพุธที่ 21 มิถุนายน พ.ศ. 2560

โปรแกรมบัญชีรายรับรายจ่าย vb2010 ตอน ออกแบบฟอร์มรายการรายได้รายจ่าย

คุยกันก่อน หลังจากที่ผมได้ออกแบบใน Access แล้วก็เขียนโค้ดใน Module ติดต่อกับฐานข้อมูลแล้ว คราวนี้ผมก็จะมาออกแบบหน้าตาของโปรแกรมครับ เริ่มจากหน้าตาของหน้า รายการรายจ่ายและรายได้ครับเพราะจริงๆ 2 ตัวนี้บอกเลยว่าออกแบบเหมือนกันเป๊ะครับ 5555 โค้ดก็เขียนแล้วก็ก๊อปมาใส่อีกตัวได้เลยครับเปลี่ยนแค่รายละเอียดบางอย่างเท่านั้นเอง


เริ่มออกแบบ ผมก็ลองออกแบบ โดยการวาด แบบง่ายๆครับ เหมือนโปรแกรมทั่วๆไป รายละเอียดก็มี ป้ายบอกหน่อยว่าเป็นหน้า รายการรายจ่ายหรือ รายการรายได้ อันนี้ใช้ Label ครับ  ถัดมาก็ ใช้ Label อีก 2 ตัวครับ เขียนบอกรายละเอียดว่า รหัส และ รายการ  นำหน้า Textbox 2 ตัวครับ ช่องแรกก็เอาไว้ใช้เกี่ยวกับรหัส และอีกช่องก็ชื่อรายการครับ ช่องใหญ่ๆที่วาดไว้ก็ใช้ Datagridview ครับ ตัวนี้มีประโยชน์เยอะครับ เอาไว้แสดงข้อมูลที่มีทั้งหมดในฐานข้อมูลเกี่ยวกับ รายการรายได้หรือรายการรายจ่าย ครับ การแก้ไขเราก็เลือกจากตรงนี้ละครับ การลบก็เลือกจาก Datagridview ตรงนี้อีกเหมือนกัน ดังนั้นตรงนี้ผมก็ให้ความสำคัญเยอะหน่อย ล่างสุดก็ออกแบบว่าจะต้องมี สัก 4 ปุ่ม คือ Button ครับ มีปุ่ม เพิ่ม บันทึก(ทั้งเพิ่มใหม่และแก้ไข) ลบ และปุ่มปิดหน้านี้ครับ


จากนั้นผมก็เริ่มสร้างจริงครับมีการตกแต่งให้ดูสบายตาครับ ตัวอักษรทั้งหมดก็ให้เป็น Verdana ขนาด 10 ครับ ในส่วนของช่องรหัสรายการ และรายการจ่าย นั้นผมมีหมายเหตุเป็นดาวสีแดงไว้ด้านหลังหมายความว่าเวลาจะเพิ่มใหม่หรือมีการแก้ไข 2  ช่องนี้ต้องมีข้อมูลครับ ด้านล่างเพิ่ม Total Data คือตรงนี้อยากให้แสดงว่าทั้งหมดมีกี่รายการ  ส่วน ปุ่มก็มีการใส่ทั้งตัวหนังสือ และมีการใส่ไอคอนที่เกี่ยวข้องลงไป เพื่อให้ผู้ใช้เค้าดูง่ายๆครับ คร่าวๆก็มีเท่านี้ครับ
บทสรุป  คราวนี้ผมออกแบบแล้วในคราวต่อไปผมจะมาเขียนโปรแกรมเพื่อให้ฟอร์มทั้ง  2 ใช้งานได้จริงครับ ตอนนี้ก็เหลืออีก ประมาณ 1 อาทิตย์ครับ ที่ต้องให้เค้าดู  ออกตัวก่อนนะครับว่ามีเวลาทำแค่วันละ 1-2 ชั่วโมงครับ มาทำแต่กลางคืน กลางวันต้องทำงานประจำครับ

วันอังคารที่ 20 มิถุนายน พ.ศ. 2560

โปรแกรมบัญชีรายรับรายจ่าย vb2010 ตอน เชื่อมต่อฐานข้อมูล

คุยกันก่อน วันนี้มาดูการเขียนโปรแกรมเพื่อทำการติดต่อฐานข้อมูลที่ผมได้สร้างขึ้นครับ ตอนแรกๆที่ผมเขียนโปรแกรมผมก็เขียนไปแบบแค่พอได้ครับ  หมายถึง หนึ่งฟอร์มก็ติดต่อหนึ่งครั้ง มีสิบฟอร์มก็เขียนติดต่อสิบครั้ง คราวนี้เลยเจอปัญหาว่าเวลาต้องเปลี่ยนค่าอะไรสักอย่าง เช่น เปลี่ยนชื่อฐานข้อมูล คราวนี้ก็ต้องตามไปแก้ยาวเลย หลายที่ก็เลยลองหาวิธีการติดต่อแบบที่เดียว ถ้าจะแก้ก็แก้ทีเดียวจบ ครับในตัว vb2010 ผมใช้วิธีการสร้าง Module มาหนึ่งตัวแล้วเขียนโค้ดติดต่อฐานข้อมูล แล้วจากนั้น แต่ละฟอร์มก็เรียกใช้จาก Module นี้ครับ คราวนี้ก็สบายขึ้นเยอะแก้ไขอะไรก็ไวหน่อยครับ

การสร้าง Module คือเข้าไปที่ Project->Add Window Form->Module


หลังจากได้ Module แล้วก็ทำการเขียนโค้ดให้โปรแกรมเราติดต่อฐานข้อมูลให้ได้ครับ เรา Import System.Data.Oledb ครับเพื่อให้ใช้การติดต่อแบบ Oledb ได้ครับ ติดต่อด้วยโปรแกรม Access ในที่นี้ผมใส่รหัสฐานข้อมูลไว้ครับ จึงจำเป็นที่จะต้องกำหนดรหัสผ่านเข้าไปด้วยถ้าไม่กำหนดมันจะไม่สามารถติดต่อได้ครับ  จากนั้นก็ทำการติดต่อโดยการเขียนโค้ดด้านล่างเลยครับ



เราใช้ Connectdatabase ที่เราสร้างขึ้นเป็นการเปิดฐานข้อมูลครับ ตรวจสอบครับว่าสถานะของฐานข้อมูลนั้นมีการปิดอยู่หรือไม่ถ้าปิดอยู่ก็เปิดครับ

คราวนี้ในฟอร์มที่เราจะสร้างเพื่อจัดการข้อมูลในงานของเราก็แค่ เรียก Connectdatabase แค่นั้นครับเราก็สามารถติดต่อได้แล้วครับ

บทสรุป  บทความนี้ก็ง่ายๆครับ จริงก็จะมีการติดต่อวิธีอื่นๆอีกนะครับ แต่ลองใช้เป็นตัวเลือกนึ่งก็แล้วกันครับผม อันนี้ผมใช้งานของผมจริงครับ ผิดพลาดยังไงก็แนะนำกันด้วยนะครับ

วันจันทร์ที่ 19 มิถุนายน พ.ศ. 2560

โปรแกรมบัญชีรายรับรายจ่าย vb2010 ตอน สร้างฐานข้อมูล

คุยกันก่อน คราวที่แล้วผมได้ทำการออกแบบฐานข้อมูลกันมาแล้วนะครับ ในวันนี้ผมจะมาสร้างฐานข้อมูลนะครับเพื่อให้เป็นฐานข้อมูลสำหรับโปรแกรมบัญชีรายรับรายจ่ายที่รับมาทำครับโปรแกรมเล็กๆครับ ผมใช้โปรแกรม Access 2013 เป็นตัวสร้างฐานข้อมูลนะครับ

เริ่มสร้างฐานข้อมูล ตามที่ผมได้ออกแบบไว้มี 4 ตารางครับ คือ รายการรายรับ  รายการรายจ่าย  กับ การลงรายการรับ  และ การลงรายการจ่าย (* ขอแก้ไขบทความที่ผ่านมา ตัวที่ออกแบบนะครับ ผมเขียน Entity หรือ ตาราง ชื่อซ้ำกันนะครับขออภัย)

เริ่มจาก รายการรายรับ ตัวตารางนี้ผมจะสร้างขึ้นเอาไว้เก็บรายการรายรับทั้งหมดที่จะมีของผู้ใช้นะครับ เช่น  ยอดรายหัวนักเรียน  เงินค่าบำรุงการศึกษา  เงินสมทบจากกองทุนโรงเรียนเอกชน  และอีกมากมายครับ ผมตั้งชื่อ รายการรายรับว่า  Tb_Receive (เอาแบบสื่อตรงๆครับ เพราะภาษาผมอ่อนแอ) มีรายละเอียดคือ

ชื่อตาราง  Tb_Receive  มี 2 ฟิลด์คือ Rec_id คือ รหัสรายการรายรับ และ Rec_name ชื่อรายการรายรับครับ อันนี้ออกแบบให้มีชนิดข้อมูลเป็นตัวอักษรทั้งคู่เลยครับ ขนาดข้อความสั้น 255 ครับ


ชื่อตาราง Tb_Pay มี 2 ฟิลด์เช่นกันครับ คือ Pay_id คือ รหัสรายการรายจ่าย และ Pay_name ชื่อรายการรายจ่ายครับ และมีชนิดข้อมูลเป็นตัวอักษรทั้ง 2 อันเช่นกัน มีขนาด 255 ครับ


ชื่อตาราง Tb_ReceiveDetail เป็นตารางลงรายการรายรับประจำวันครับ มี 4 ฟิลด์ครับ คือ ReD_id รหัสการลงรายการรายรับ มีชนิดข้อมูลแบบอัตโนมัติครับ  Rec_id เป็นรหัสรายการรายรับเป็นข้อความสั้นเหมือนกับตารางของตัวมันเองครับ ReD_Date วันที่ลงรายการมีชนิดเป็นวันที่ขนาดสั้นครับ และ ReD_Money จำนวนเงินครับ ผมให้ชนิดข้อมูลเป็นตัวเลขครับ แบบทศนิยมครับ

ชื่อตาราง Tb_PayDetail เป็นตารางลงรายการรายจ่ายประจำวันครับจะคล้ายกับตารางที่แล้วครับคือ มี PaD_id เป็นรหัสการลงรายการจ่ายเป็นชนิดอัตโนมัติครับ  Pay_id อันนี้เป็นข้อความสั้นให้เหมือนตาราง Tb_Pay ครับ PaD_Date เป็นวันที่ขนาดสั้นครับและ PaD_Money เป็นตัวเลขทศนิยมครับ

หลังจากเราสร้างเรียบร้อยเราก็จะได้ตารางในฐานข้อมูลด้วยโปรแกรม Access2013 แบบนี้ครับ

บทสรุป ผมสร้างฐานข้อมูลแบบง่ายๆ ในโปรแกรม Access2013 สร้างจากการออกแบบในแบบของตัวเองนะครับ จริงๆก็มีวิธีที่คนอื่นคิดที่อาจจะง่ายและรวดเร็วกว่านี้นะครับ หากดูแล้วได้อะไรเป็นประโยชน์บ้างก็ดีใจครับ แค่อยากเล่าให้ฟังครับ

วันอาทิตย์ที่ 18 มิถุนายน พ.ศ. 2560

โปรแกรมบัญชีรายรับรายจ่าย vb2010 ตอน ออกแบบระบบ

คุยกันก่อน สวัสดีครับกลับมาพบกันอีกเช่นเคยครับ ทุกวันผมจะเขียนเรื่องราวของการเขียนโปรแกรมในแบบของผมลงไป เผื่อท่านใดผ่านมาพบมาอ่านจะได้อะไรกลับไปบ้าง วันนี้ก็เช่นเคยครับ ในช่วงนี้บทความของผมจะมาแชร์ประสบการณ์การเขียนโปรแกรมแบบใช้งานจริงที่เขียนให้ที่ทำงานบ้าง เค้ามาจ้างบ้าง หรือเขียนใช้เองบ้าง

เริ่มเรื่อง  เรื่องก็มีอยู่ว่าเมื่อวันที่ 16 มิ.ย. 2560 ที่ผ่านมาพี่ที่ทำงานด้วยกันมาบอกว่าจะมีคนมาจ้างให้เขียนโปรแกรมให้เป็นระบบ ตรวจสอบและเก็บข้อมูลค่าบริการรถรับส่งนักเรียน เสร็จแล้วผมก็เลยบอกให้มาคุยกัน ตอนช่วงบ่าย 3 โมงก็เลยได้คุยกัน คนที่จะมาจ้างมา 2 คนครับ ปรากฏว่า จะให้ทำ 2  ระบบ คือ ระบบที่บอกครับ ตรวจสอบและเก็บข้อมูลค่าบริการรถรับส่งนักเรียน กับ บัญชีรายรับรายจ่ายของโรงเรียน คือทั้งสองคนมาจากโรงเรียนเดียวกันเป็นโรงเรียนเอกชนครับ ขั้นแรกผมก็ถามก่อนเลยว่า ระบบไหนต้องการใช้งานก่อนหรือจำเป็นก่อน เค้าบอกว่า บัญชีรายรับรายจ่ายต้องใช้ก่อน ขอให้เสร็จก่อนสิ้นเดือนเพราะจะมีการตรวจสอบโรงเรียนในเรื่องนี้ นั่นหมายความว่าผมจะมีเวลาทำคร่าวๆ 2 อาทิตย์ คราวนี้ก็ถามถึงเนื้อหาและความต้องการของงานละครับ เพราะฟังตอนแรกมันคือโปรแกรมบัญชีนะครับ รายละเอียดต้องเยอะมากแน่ๆ เพราะเอกสารตัวอย่างที่เอามาเป็นปึ้งเลย  ....... จะทันไหมน้อ คิดในใจ แต่พอได้พูดคุยถึงความต้องการแล้ว มันไม่ใช่ครับ พี่แกบอกแค่ว่าอยากได้โปรแกรมที่มาเก็บข้อมูลในแต่ละวันว่า มีรายรับเข้ามาเท่าไหร่อะไรบ้าง และรายจ่ายออกไปเท่าไหร่อะไรบ้าง แล้วออกรายงานเป็น วันได้ เดือนได้ ปีได้  เท่านี้เองครับ  โอ้ววววววววโล่งเลยครับ ก็เลยรับปากไปว่าทันครับเพราะดูแล้วมันก็เหมือนโปรแกรมรายรับรายจ่ายธรรมดาครับ

เริ่มงาน หลังจากนั้นผมก็เริ่มออกแบบต่างๆเช่น ออกแบบระบบฐานข้อมูล แบบคร่าวๆครับ ในแบบของผมเอง 5555 หลักการณ์เริ่มน้อยลง เอาแบบง่ายๆเข้าใจพอ แล้วก็เริ่มออกแบบหน้าจอ ทั้งหมดที่ออกแบบทำในกระดาษครับ จะได้ง่ายๆต่อการเพิ่มเติมแก้ไข ผมออกแบบมาเป็นแบบนี้ครับ


บางคนที่มาอ่านอาจจะร้องอะไรว้า ทำไมเป็นแบบนี้ล่ะ ก็บอกแล้วผมออกแบบเอาง่ายผมไง 5555 จริงๆ มันเป็นแบบนี้ก็ได้ครับ


แบบแรกผมออกแบบแบบแยกเลยครับ มี 4 Table ส่วนแบบที่ 2 ก็ แค่ 2 Table ก็ใช้ได้ครับ แต่ทั้งสองอย่างผมละตัวระบบอื่นๆเช่น ผู้ใช้ เอาไว้นะครับอันนั้นถือว่ามันเป็นพื้นฐานอยู่แล้วเดี๋ยวมาเขียนใส่ได้เลยครับ
เหตุผลแบบส่วนตัวที่ใช้ตัวข้างบนในการออกแบบฐานข้อมูลอันนี้ส่วนตัวจริงๆครับ 55 อย่าว่ากันนะ อิอิ เริ่มออกแบบเสร็จมีรายละเอียดดังนี้ครับ
Table รายการรายรับ ก็มีฟิลด์ รหัสรายการรับ ชื่อรายการ
Table รายการรายจ่าย ก็มีฟิลด์  รหัสรายการจ่าย ชื่อรายการ
Table รายรับ มีฟิลด์ รหัสรายรับ รหัสรายการรับ วันที่ จำนวนเงิน
Table รายจ่ายมี ฟิลด์ รหัสรายจ่าย รหัสรายการจ่าย วันที่ จำนวนเงิน
จากนั้นผมก็เข้าไปออกแบบฐานข้อมูลโดยใช้โปรแกรม Access เหตุผลที่ใช้ Access ก็เพราะพี่คนที่มาจ้างเค้าบอกว่าจะใช้แค่ไม่กี่คนไม่จำเป็นต้อง ไคเอน เซิรฟเวอร์ครับ งั้นก็ Access นี่แหละง่ายดี 55 ระบบมันก็ไม่ใหญ่นิดเดียวเองครับ (เอาง่ายอีกล่ะ) ฐานข้อมูลผมก็ตั้งชื่อเป็น Accounting ครับ ติต่างว่าเป็นระบบบัญชีตามที่เค้าชอบพูดแต่จริงๆมันคือรายรับจ่ายธรรมดาเอง(อันนี้ตามความต้องการของเค้านะครับ)  ยังไงเดี๋ยวตอนหน้าผมจะเอาการสร้างฐานข้อมูลของโปรแกรมตัวนี้ใน Access มาคุยกันครับ

บทสรุป เนื้อหาที่เขียนเป็นเพียงวิธีการของผู้เขียนเอง อาจจะไม่ตรงตามทฤษฎีเป๊ะ แต่จุดประสงค์คืออยากให้ผู้ผ่านมาอ่านได้ไอเดียหรือแนวคิดในด้านอื่นบ้าง หวังว่าคงเข้าใจกันนะครับ มันอาจจะคร่าวๆๆๆๆๆๆๆๆมากไปหน่อยก็อภัยให้ผมนะครับ ของคุณที่เข้ามาอ่านครับ


วันเสาร์ที่ 17 มิถุนายน พ.ศ. 2560

CheckedListbox กับ ฐานข้อมูล vb2010

คุยกันก่อน  วันนี้เราจะมาลองใช้ คอนโทรล CheckedListbox ใน vb2010 ทำการดึงข้อมูลจากฐานข้อมูลที่เราเตรียมไว้ โดยฐานข้อมูลสามารถคนหาวิธีการออกแบบและสร้างแบบคร่าวๆในบทความก่อนหน้านะครับ ผมจะไม่พูดถึงนะครับ

การสร้างคอนโทรล CheckedListbox ในฟอร์ม  ก็เหมือนคอนโทรลอื่นทั่วๆไป จริงแล้วผมก็เคยเขียนไว้แล้วอีกนั่นแหละครับ ลองคนดูในบทความเก่าๆนะครับ ในบทความนี้เราสร้างแบบนี้ครับ


การติดต่อฐานข้อมูลก็แบบเดิมเหมือนที่เราคุยกันนะครับ


ผมจะให้ดูตรงการติดต่อเพือเรียกข้อมูลมาแสดงเลยนะครับ มันเป็นการเรียกข้อมูลจากฐานข้อมูลครับ
เลือกโดยใช้คำสั่ง Select * from tb_Student order by st_code desc หมายถึงการเลือกข้อมูลทั้งหมดนะครับจากฐาน เลือกทุกฟิลด์เลย และให้เรียงตาม รหัสนักเรียน แบบมากไปน้อยครับ ตัวที่แสดงใน CheckedListbox เป็น ชื่อสกุลนักเรียนครับเขียนจริงก็แบบนี้ครับ ผมเขียนเป็นฟังก์ชั่น Add_Combo แล้วเรียกใช้จากฟอร์มโหลด จากโค้ดด้านบนครับ


ผลของโปรแกรมก็จะให้เห็นเป็นชื่อสกุลนักเรียนดังภาพครับ


บทสรุป ตัวคอนโทรล CheckedListbox สามารถใช้เป็นตัวเลือกในการเขียนโปรแกรมแบบดึงข้อมูลมาเป็นสมาชิกได้ครับ ไม่ยากด้วย เหมาะกับการเลือกข้อมูลแบบเป็นกลุ่ม หรือเลือกหลายๆตัวครับ ลองประยุกต์ใช้กันดูนะครับ

โปรแกรมตั้งเวลา เข้าแถว เปิดเสียงหมดเวลา หมดคาบเรียน หรือชั่วโมงเรียน

สวัสดีครับในรอบ 2 ปี ผมหายไปตั้งแต่ปี 2560 ไม่ได้มาเขียน Blog เลย วันนี้กลับมา พร้อมกับโปรแกรมตัวนึงที่เขียนขึ้นเพื่อใช้งาน เล่านิดนึงครับ ผ...