บทความ

การแยกคำนำหน้าชื่อ ชื่อ และนามสกุล ไว้คนละเซลล์ ด้วย Excel VBA

รูปภาพ
ใน Excel ถ้าต้องการแยกคำนำหน้าชื่อ ชื่อจริง และนามสกุล ออกจากกัน ถ้าจะใช้สูตรที่มีในแผ่นงานของ Excel ก็ต้องสร้างเงื่อนไขจำนวนมาก ซึ่งไม่สะดวก เพราะคำนำหน้าชื่อของไทยมีจำนวนมาก เช่น นาย นาง ด.ช., ม.ล., ดร. เป็นต้น และถ้ายิ่งมีการใช้ยศทหาร ตำรวจด้วยแล้ว การตรวจสอบด้วยเงื่อนไขจากสูตร จะทำได้ไม่สะดวกเลย อย่างนี้ จำเป็นต้องใช้ VBA ช่วย จะสามารถทำได้สะดวกมากกว่า อย่างไรก็ตาม ต้องมีเงื่อนไขว่า ชื่อและนามสกุลต้องเขียนแยกกัน โดยมีช่องว่าง เพราะใน VBA ข้างล่างนี้ ใช้ช่องว่างเป็นหลักในการแยกชื่อ และนามสกุล ตัวอย่าง ให้ท่านแยกคำนำหน้าชื่อ ชื่อ และนามสกุล จากข้อมูลข้างล่างนี้ ออกเป็นคนละเซลล์กัน วิธีการ มีดังนี้ เปิดหน้าต่าง VBA ของ Excel โดยกดปุ่ม Alt + F11 ไปที่เมนู Insert > Module (แทรก > โมดูล) คลิกที่ Module1 และพิมพ์โค้ดข้างล่างนี้ Function getTitle(thisFullName As String) As String Dim Titles As Variant Dim myCount As Integer ' สร้างตัวแปร Array ชื่อ Titles เพื่อเก็บคำนำหน้าชื่อ สามารถเพิ่มได้อีกไม่จำกัด ' ต้องให้ นางสาว มาก่อน นาง มิฉะนั้นจะตรวจสอบนางสา

การใช้ INDEX และ MATCH ของ Excel

รูปภาพ
INDEX ใช้สำหรับแสดงข้อมูล ในช่วงที่ระบุ MATCH ใช้ค้นหาตำแหน่ง ในช่วงข้อมูลที่ระบุ ตามเงื่อนไขที่กำหนด รูปแบบการใช้ INDEX( array, row_num, [ column_num ] )      array  คือช่วงข้อมูลที่กำหนด      row_num คือ ตำแหน่งเริ่มต้นลงมากี่แถว ในช่วงที่กำหนด      column_num คือ ตำแหน่งถัดเข้าไปกี่คอลัมน์ ในช่วงที่กำหนด MATCH( lookup_value, lookup_array, match_type )      lookup_value คือ ข้อมูลที่ต้องการค้นหา      lookup_array คือ ช่วงข้อมูลที่กำหนดให้ค้นหาภายในนี้      match_type คือ ลักษณะการค้นหา มีค่าได้ 3 ค่า คือ 0, +1 และ -1           ถ้าเป็น 0 หมายถึงต้องเหมือนกับข้อมูลที่ต้องการค้นหา           ถ้าเป็น +1 หมายถึง ให้หาข้อมูลที่มากที่สุด ซี่งน้อยกว่าหรือเท่ากับข้อมูลที่กำหนด และต้องเรียงข้อมูลจากน้อยไปหามาก เช่น -2 -1 0 1 2 3 หรือ ก - ฮ หรือ A-Z           ถ้าเป็น -1  ให้หาข้อมูลที่น้อยน้อยที่สุด ซึ่งมากกว่าหรือเท่ากับข้อมูลที่กำหนด และต้องเรียงข้อมูลจากมากไปหาน้อย      เมื่อนำมาใช้ด้วยกัน ทำให้สามารถค้นหาข้อมูลได้ โดยการหาตำแหน่ง ด้วย MATCH เสียก่อน จากนั้น จึงนำมาแสดงด้วยค

การใช้คำสั่ง OFFSET ของ Excel กำหนดช่วงข้อมูล

รูปภาพ
OFFSET ใช้กำหนดช่วงข้อมูล โดยใช้ร่วมกับสูตรอื่น ๆ ที่ต้องการช่วงของข้อมูล จะมีประโยชน์มากในกรณีที่ข้อมูลมีการเปลี่ยนแปลง และไม่ทราบว่ามีความยาวเท่าไร รูปแบบ OFFSET( reference,rows,cols,height,width) reference: คือตำแหน่งที่ใช้อ้างอิง เสมือนหนึ่งปักหมุดแล้วใช้อ้างอิงจากจุดนี้ไป rows: คือตำแหน่งเริ่มต้นช่วงข้อมูลว่า จะอยู่เหนือ หรือต่ำกว่าจุดอ้างอิง จำนวนกี่แถว ถ้าเป็น + คือต่ำกว่า และค่าเป็น - คือตำแหน่งที่อยู่เหนือขึ้นไป cols คือตำแหน่งเริ่มต้นช่วงข้อมูลว่าจะเริ่มห่างจากจุดอ้างอิงไปทางซ้าย หรือทางขวา กี่คอลัมน์ ถ้าเป็น + คือทางขวา และค่าเป็น - คือทางซ้าย height: ช่วงความสูง คือจำนวนแถวว่าจะให้มีความสูงในส่วนที่เลือกกี่แถว width: ช่วงความกว้างของบริเวณที่จะเลือกว่าจะให้กว้างกี่คอลัมน์ ตัวอย่าง ให้หาผลรวมของจำนวนข้างล่างนี้ โดยกำหนดให้สามารถเพิ่มข้อมูลได้อีก และให้ปรับผลรวมโดยอัตโนมัติ จากภาพ เซลล์ C2 คือผลรวมของตัวเลขในเซลล์ C4 ถึง C6 และถ้ามีการเพิ่มข้อมูลในเซลล์ C7 C8 หรือ C9 ก็ให้ปรับผลรวมโดยอัตโนมัติ วิธีการ ต้องใช้คำสั่ง OFFSET เพื่อกำหนดช่วงให้รวมข้อมูลด้วยค

SUBSTITUTE และ REPLACE ใน Excel

รูปภาพ
SUBSTITURE และ REPLACE ของ Excel ใช้แทนที่ข้อความเหมือนกัน ต่างกันที่ ถ้าเราทราบตำแหน่งของข้อความเดิมที่จะไปแทนที่ ให้ใช้ Replace แต่ถ้าเราไม่ทราบตำแหน่ง ให้ใช้ Substitute รูปแบบการใช้งาน SUBSTITUTE(text, "old_text", "new_text", instance_num)    text:  ตำแหน่งข้อความที่จะนำมาเปลี่ยน เช่น A1    old_text: ข้อความเดิมที่ต้องการจะเปลี่ยน    new_text:  ข้อความที่ต้องการให้เปลี่ยนเป็นข้อความนี้    instance_num:  ระบุจำนวนครั้งของข้อความที่เกิดขึ้นในข้อความที่จะนำมาเปลี่ยน ที่ต้องการเปลี่ยน (งง เหมือนกัน อ่านต่ออีกซักหน่อยนะครับ)  ถ้าไม่ระบุ Excel จะเปลี่ยนข้อความนั้น ๆ ทีมีอยู่ในข้อความทุกครั้ง เช่น ข้อความเดิมคือ 24122341225 ถ้าต้องการเปลี่ยนเลข 41 เป็น 55 จะมีการเปลี่ยน 2 ครั้ง เพราะหมายเลข 41 มีปรากฏในข้อความที่ระบุ 2 ครั้ง คือ ปราฏครั้งที่ 1 ตำแหน่งที่ 2 และ ปรากฏครั้งที่ 2 ตำแหน่งที่ 7 (ดังนี้ 2 41 223 41 225) ดังนั้น ถ้าไม่ระบุ instance_num โปรแกรม Excel จะระบุให้ทั้ง 2 แห่ง แต่ถ้าต้องการเปลี่ยนเฉพาะ แต่ถ้าต้องการเปลี่ยนเฉพาะแห่งแรก ต้องระบุเป็น 1 เพราะเท่าก

SUMPRODUCT

รูปภาพ
เมื่อต้องการหาผลรวมของรายการหลายรายการ โดยมีเงื่อนไขหลายเงื่อนไข ให้ใช้ สูตร SUMPRODUCT เช่น ต้องการหาผลรวมการขายของพนักงาน ตามข้อมูลข้างล่างนี้ จะเห็นว่า สุดาขายสินค้าหลายอย่าง แต่เราต้องการทราบเฉพาะจานเท่านั้น ดังนั้น ในกรณีนี้ จะมี 2 เงื่อนไข คือ ชื่อ และสินค้า แล้วให้นำเงินที่ขายได้มารวมกัน ในเซลล์ D12 ให้เขียนสูตร ดังนี้ =SUMPRODUCT(--(B2:B9="สุดา"),--(C2:C9="จาน"),D2:D9) ข้อความ --(B2:B9="สุดา") จะได้ผลเป็น 0 ถ้าช่วงที่กำหนดไม่มีคำว่า "สุดา" และ เป็น 1 ถ้ามีคำว่า "สุดา" ข้อความ --(C2:C9="จาน")จะได้ผลเป็น 0 ถ้าช่วงที่กำหนดไม่มีคำว่า "จาน" และ เป็น 1 ถ้ามีคำว่า "จาน" ส่วน D2:D9 คือค่าที่จะให้นำมารวมกัน ผลที่ออกมาจะได้ ดังภาพ ในกรณีที่มีการระบุจำนวนสินค้า และราคาสินค้าด้วย ดังภาพข้างล่างนี้ จะเห็นว่า สุดา ขายจานได้ 5 ใบวันที่ 1/4/2555 และ ขายได้อีก 8 ใบ เมื่อวันที่ 6/4/2555 จานราคาใบละ 20 บาท ดังนั้น การคำนวณ จึงต้องเอาจำนวนที่ขายได้ ไปคูณกับราคาแต่ละชิ้น แล้วจึงนำไปบวกกันอีกที ลัก

การวิเคราะห์ข้อสอบ ด้วย Excel 2010

ครูกับข้อสอบเป็นของคู่กัน ครูดีต้องรู้จักการวิเคราะห์ข้อสอบ เพื่อให้ได้ข้อสอบที่ดี และถ้าวิเคราะห์แล้วเก็บข้อสอบที่ดี ๆ ไว้ใช้งาน ก็จะทำให้ประหยัดได้ทั้งเวลา มีข้อสอบที่ดีให้เลือกใช้ได้อย่างรวดเร็ว การวิเคราะห์ข้อสอบ เป็นกระบวนการหาคุณภาพของข้อสอบ โดยการพิจารณาเป็นรายข้อ ว่า ข้อสอบแต่ละข้อที่ออกนั้นมีความยากง่าย และสามารถแยกแยะนักเรียนอ่อนออกจากนักเรียนเก่งได้มากเพียงใด ข้อสอบที่มีค่าความยากมาก ๆ หรือง่ายมาก ๆ เป็นข้อสอบที่ไม่ควรนำมาใช้งาน หรือข้อสอบที่เด็กอ่อนตอบถูกกันมาก แต่เด็กเก่งตอบผิดกันมาก เรียกว่าไม่มีค่าอำนาจจำแนก ข้อสอบประเภทนี้ก็ใช้ไม่ได้เหมือนกัน ส่วนคุณภาพของข้อสอบทั้งฉบับต้องพิจารณา ความเชื่อมั่น ( reliability ) ความเที่ยงตรง ( validity ) ความเทียงตรง ( validity ) เป็นการตรวจสอบว่า ข้อสอบมีความสมบูรณ์ถูกต้องตรงตามเนื้อหาหลักสูตร ครอบคลุมทุกจุดประสงค์หรือไม่ ซึ่งอาจจะใช้ผู้รู้ หรือครูที่สอนวิชานั้น ๆ มาช่วยกันวิเคราะห์เนื้อหา จัดทำเป็นผังข้อสอบ สำหรับการนำไปออกข้อสอบ และเมื่อได้ข้อสอบแล้วก็มาช่วยกันวิเคราะห์ว่า ข้อสอบนั้น ๆ เป็นไปตามจุดประสงค์หรือไม่อย่างไร ส่วนคว

คำสั่ง Dos ที่มีประโยชน์

วันก่อน ต้องการคัดลอกชื่อไฟล์ใน directory เพื่อนำมาใช้เป็นชื่อสำหรับเรียกใน MP3 Flash Player วิธีการที่ง่ายที่สุด ก็คือการใช้คำสั่ง Dos ซึ่งมีมาช้านานแล้ว สำหรับ Windows 7 แม้ว่าจะไม่มีคำสั่ง MS-Dos ให้ใช้แล้วก็ตาม แต่มี Command line ให้ใช้ได้เหมือนกับคำสั่ง Dos เช่นเดียวกัน การเข้าใช้งาน ให้ไปที่ Start พิมพ์คำว่า cmd.exe แล้วกด Enter จะเข้าสูหน้าจอ Command Prompt คำสั่ง Dos/Command line ที่มีประโยชน์ cd\ ถอยหลังออกจาก Directory กลับไปที่ root cd ชื่อ Directory เข้าห้อง Directory ที่ระบุ dir แสดง Directory copy *.txt myText.txt คัดลอกข้อมูลในไฟล์ที่เป็น Text file (มีนามสกุล txt) ทุกไฟล์ ไปไว้ในไฟล์ myText.txt คำสั่งจะรวมข้อความในไฟล์ txt ทุกไฟล์ไปไว้ใน myText.txt สำหรับนามสกุลของ text file ที่จะคัดลอก จะเป็นนามสกุลอะไรก็ได้ แต่ขอให้เป็น Text file ก็แล้วกัน เช่น บางโปรแกรมอาจจะเก็บ text file โดยใช้นามสกุล dat เป็นต้น dir *.* > myDir.txt พิมพ์ชื่อไฟล์ รายละเอียดของไฟล์ และ ชื่อ Directory ทั้งหมดใน directory ปัจจุบัน ลงในไฟล์ ชื่อ myDir.txt สามารถให้พิมพ์เฉพาะชื่อไฟล์บางไ

กินผักช่วยลดคอเลสเตอรอล

รูปภาพ
ก่อนอื่น มารู้จักเส้นใยอาหาร หรือ fiber กันก่อนนะครับ เส้นใยอาหาร มี 2 ชนิดคือ ละลายในน้ำได้(Soluble fiber) กับที่ละลายในน้ำไม่ได้ (Insoluble fiber) ละลายน้ำได้ แบ่งออกเป็น 2 ชนิดคือ ละลายแบบสมบูรณ์ (Completely soluble fiber) Viscous soluble fiber เส้นใยชนิดนี้ มีประโยชน์เพราะสามารถก่อตัวเป็นวุ้น(gel) และจับ/ขจัดของเสีย และคอเลสเตอรอลได้ นอกจากนั้นยังจับคาร์โบไฮเดรท และช่วยชะลอการดูดซึมน้ำตาลของร่างกายได้ ชนิดที่ละลายน้ำไม่ได้ เส้นใยอาหารประเภทนี้ มีความสามารถต่ำในการจับน้ำตาลและคอเรสเตอรอล ไม่ค่อยมีการแปรสภาพ(fermentation) เคลื่อนผ่านระบบการย่อยอาหารอย่างรวดเร็ว เพิ่มปริมาณเนื้ออุจจาระ จะเห็นว่า เส้นใยอาหารมีหลายชนิด แต่ละชนิดให้ประโยชน์ไม่เท่ากัน ดูเหมือนว่า ชนิด Viscous soluble fiber จะให้ประโยชน์มากกว่าชนิดอื่น อาหารอะไรที่มี Viscous soluble fiber สูง อาหารที่มี Viscous soluble fiber สูง ได้แก่ ถั่วแดง(kidney beans) ข้าวโอ๊ต(whole grain oats) และขนมปังที่ทำจากแป้งข้าวโอ๊ต (breads made with whole grain oat flour) นอกจากนี้ อาหารที่มี Viscous soluble fiber ค่อนข้างสูง

ปวดหลัง ปวดข้อ เอ็นอักเสบ กล้ามเนื้ออักเสบ รักษาด้วย PRP

รูปภาพ
PRP ในที่นี้ หมายถึง Protein Rich Plasma หรือ Platelet Rich Plasma  เป็นกระบวนการที่กระตุ้นให้ร่างกายรักษาตนเองโดยวิธีธรรมชาติ เป็นทางเลือกหนึ่งโดยไม่ต้องใช้วิธีการผ่าตัด ต้องบอกก่อนว่า ผมไม่ใช่หมอ ที่จะเอามาเล่านี้เป็นจากการฟัง และการอ่าน ใครจะนำไปรักษาด้วยตัวเองไม่ได้นะครับ ต้องปรึกษาหมอเท่านั้น แนวคิดเบื้องหลังคือ มีข้อค้นพบใหม่ว่า เกล็ดเลือด (platelet) นอกจากจะทำหน้าที่ก่อตัวรวมกันเป็นก้อนเพื่อทำให้เลือดหยุดไหลแล้ว ยังทำหน้าที่อื่น ๆ ที่สำคัญอีกด้วย คือเป็นตัวช่วยกระตุ้นการสร้าง(growth factors) หรือ ที่เรียกว่าcytokines ซึ่งช่วยให้ร่างกายสร้างซ่อมแซมเนื้อเยื่อที่เสียหายหรือบาดเจ็บ วิธีการคือ ใช้เลือดของท่านประมาณ 20 ซี.ซี. แล้วนำมาปั่นในเครื่องปั่น ประมาณ 15 นาที จนมีลักษณะเป็นเจล และนำเจลเกล็ดเลือดฉีดกลับเข้าไปยังบริเวณที่บาดเจ็บ หรือบริเวณที่เอ็นอักเสบ จะช่วยให้ร่างกายสร้าง/ซ่อมส่วนที่เสียหาย และรักษาตัวเองได้ Dr. David Wang อาจารย์หมอ มหาวิทยาลัย Harvard (Harvard Medical School) บอกว่า วิธีการนี้ เป็นวิธีการรักษาโดยธรรมชาติ สามารถใช้รักษา กล้ามเนื้อ เส้นเอ็นอักเสบ กล้ามเ

การซ่อน VBA Code ของ Access 2010

รูปภาพ
ถ้าไม่ต้องการให้ผู้ใช้แก้ไข VBA Code ของ Access 2010 สามารถทำได้ 2 วิธี คือ แปลงไฟล์ จาก .accdb  เป็น .accde หรือ .mde วิธีนี้ ผู้ใช้จะไม่สามารถแก้ไข VBA Code ตลอดจน ฟอร์ม และรายงาน ได้ อีกอย่าง คือ จะต้องเปิดด้วยโปรแกรม Access รุ่นเดียวกับที่ใช้ Compile เช่นสร้างด้วย Windows 7 ก็ต้องใช้ Office 2010 กับ Windows7 จะใช้บน Vista หรือ XP จะไม่สามารถเปิดไฟล์ .accde ได้ ป้องกันการเปิด VBA Code ด้วย Password วิธีนี้ ผู้ใช้สามารถปรับเปลี่ยน ฟอร์ม และรายงานได้ แต่ไม่สามารถเปิด VBA Code ได้ ถ้าไม่มีรหัสผ่าน วิธีนี้ ดูเหมือนจะยืดหยุ่นกว่าวิธีแรก การแปลงไฟล์ จาก .accdb เป็น accde มีวิธีการ ดังนี้ ไปที่ File > Save & Publish เลือก Make ACCDE จะเกิดแถบแสดงการเลือก คลิกปุ่ม Save As ระบุห้องที่จะจัดเก็บไฟล์ เป็นอันเสร็จ การสร้างรหัสป้องกัน VBA Code มีวิธีการ ดังนี้ เปิด Access 2010 แล้วกด ALT+F11 เพื่อเปิดหน้าจอของ VBA ไปที่เมนู Tools เลือก <ชื่อฐานข้อมูล>Properties... ไปที่แท็บ Protection คลิกเติมเครื่องหมายถูก หน้า Lock project for viewing พิมพ์รหัสผ่าน และพิมพ์

ดอกอัญชัน

รูปภาพ
วันนี้เห็นคนเก็บดอกอัญชัน ถามเขาว่าเก็บเอาไปทำไม เขาบอกว่า เอาไปตากแดดและชงกินเหมือนน้ำชา ทำให้ตาที่เคยมืดมัว มองเห็นได้ดีขึ้น เอาไปหุงกับข้าวก็ได้ ได้ข้าวสีม่วง สวยดี ดอกอัญชันแห้ง ซื้อ-ขายกัน กิโลกรัมละ 200 บาท ก็เลยลองหาข้อมูลดู ดอกอัญชัน (Butterfly Pea, Blue Pea หรือ Clitoria ternatea) มีสารแอนโธไซยานิน ซึ่งมีคุณสมบัติเพิ่มการไหลเวียนของเลือดในหลอดเล็กๆ ทำให้เลือดไปเลี้ยงรากผมและนัยน์ตามากขึ้น สารแอนโทรไซยานินนี้จะพบในผลไม้และดอกไม้ที่มีสีน้ำเงิน สีแดง หรือสีม่วง มีคุณสมบัติเป็นสารต้านอนุมูลอิสระจากธรรมชาติ โดยที่พืชจะสร้างสารนี้ขึ้นมา เพื่อป้องกันดอกหรือผลตัวเอง จากอันตรายของแสงแดดหรือโรคภัย ดอกสด นำมาทาศีรษะเพื่อใช้เป็นยาปลูกผม ใช้รักษาอาการผมร่วง แก้ฟกช้ำบวม ใช้ผสมอาหารให้สีม่วง เช่น ข้าวดอกอัญชัน ขนมดอกอัญชัน เป็นต้น นอกจากนี้ยังมีสรรพคุณ บำรุงตา ลดอาการของโรคทางสายตา แก้ตาฟาง ตาแฉะ รากมีรสเย็นจืดใช้เป็นยาขับปัสสาวะพิการ เป็นยาระบาย รากใช้ถูฟันแก้ปวดฟันทำให้ฟันคงทนแข็งแรง เมล็ดใช้เป็นยาระบายแต่จะทำให้คลื่นไส้อาเจียน คุณค่าทางอาหาร สารอาหารให้สารสีฟ้า ซึ่งเป็นสารต้านอ

มะเร็งต่อมลูกหมาก (Prostate Cancer)

รูปภาพ
วันนี้ขอเป็นเรื่องของผู้ชายโดยเฉพาะ นั่นคือ มะเร็งต่อมลูกหมาก ผู้ชายเป็นกันมาก ในอเมริกา ปีนี้ 2012 (2555) มีรายงาน ของ สถาบันมะเร็งแห่งชาติ (National Cancer Institute) ว่ามีคนเป็นโรคนี้กัน จำนวน 241,740 คน และเสียชีวิต จำนวน 28,170 คน อะไรที่เป็นสาเหตุของโรคนี้ ยังไม่มีใครรู้ว่าอะไรคือต้นเหตุของโรค แต่พอรู้ว่าโอกาสเสี่ยงที่จะเกิดเป็นโรคนี้ มีดังนี้ อายุเกิน 65 ปีขึ้นไป มีโอกาสเป็นโรคนี้สูง ยิ่งอายุมากขึ้นยิ่งมีโอกาสเป็นสง ในประเทศอเมริกา ผู้ที่เป็นโรคนี้ส่วนใหญ่อายุเกิน 65 ปี ผู้ที่อายุต่ำกว่า 45 ปี มีน้อยมาก เกือบไม่พบเลย ประวัติการเป็นโรคนี้ของคนในครอบครัว ถ้าท่านเคยมี พ่อ พี่ หรือ ลูก เคยเป็นโรคนี้ ท่านมีความเสี่ยงที่จะเป็นโรคนี้สูงกว่าผู้อื่น เชื้อชาติ คนผิวดำ (นิโกร) จะมีความเสี่ยงต่อโรคนี้ มากกว่าคนผิวขาว คนลาตินอเมริกา ยิ่งถ้าพวกเราชาวเอเซีย และหมู่เกาะแปซิฟิกแล้ว ความเสี่ยงต่อโรคนี้ น้อยกว่าพวกผิวขาวเสียอีก พวกอินเดียแดง และชาวพื้นเมืองรัฐอะลาสก้า ก็มีความเสี่ยงน้อย การที่มีความเสี่ยงต่อโรคสูง ไม่ได้แปลว่าจะต้องเป็นโรคนี้ ผู้ที่มีความเสี่ยงสูง แต่ไม่เป็นก็มีเยอะนะค

เฝ้าระวัง Triclosan ในสบู่ ยาสีฟัน ของท่าน

Triclosan เป็นสารที่มีคุณสมบัติยับยั้งแบคทีเรีย (Antibacteria) จึงนิยมใช้เป็น ส่วนผสมในผลิตภัณฑ์เพื่อความสะอาดหลายชนิด เช่น สบู่ ครีมอาบน้ำ ผลิตภัณฑ์ระงับกลิ่นกาย ยาสีฟัน น้ำยาบ้วนปาก ตลอดจนน้ำยาล้างจานด้วย โดยพบว่ามีการใช้เพื่อวัตถุประสงค์ต่างๆ เช่น เป็นสารกันเสีย และเป็น สารยับยั้งแบคทีเรีย เป็นต้น มีข้อถกเถียงกันว่า สารนี้ อาจจะมีผลเสียต่อร่างกาย และสิ่งแวดล้อม เช่น อาจมีผลต่อการทำงานของต่อมไร้ท่อ อาจทำให้เชื้อแบคทีเรียดื้อต่อยาปฏิชีวนะ และ เป็นสารตกค้างในดินและน้ำ โดยเฉพาะในน้ำอาจเป็นผลเสียต่อพืชและจุลินชีพในน้ำ (aquatic organisms) EPA (Environmental Protection Agency) องค์กรสิ่งแวดล้อมของอเมริกา จัด สาร Triclosan อยู่ในกลุ่มยาฆ่าแมลง!!! FDA (the U.S. Food & Drug Administration) องค์กรอาหารและยา ระบุว่า ผลิตภัณฑ์สบู่ เครื่องสำอางที่มีสาร Triclosan ไม่มีผลต่างจากการใช้สบู่และน้ำธรรมดาในการกำจัดเชื้อแบคทีเรีย หนังสือพิมพ์ WashingtonPost รายงาน เมื่อ 8 เมษายน 2553 ว่ากำลังศึกษาถึงผลของสาร Tricolsan ขณะนี้ ยังไม่มีข้อสรุปที่ชัดเจน บริษัทที่ใช้ Triclosan เป็นส่วนผสมของผล

คัดลอกข้อมูลที่ไม่ซ้ำกัน ของ Excel 2010

รูปภาพ
ถ้ามีข้อมูลที่ซ้ำ ๆ กัน ดังนี้ ถ้าต้องการคัดลอกเอาเฉพาะที่ไม่ซ้ำกัน  สามารถทำได้ โดยการใช้ตัวกรอง หรือ Filter โดยมีวิธีการดังนี้ ลากดำคลุมพื้นที่ข้อมูลทั้งหมด ไปที่ ข้อมูล (Data) ตัวกรอง และเลือก ขั้นสูง เลือกคัดลอกไปยังที่อื่น และเลือก Unique Record Only พร้อมทั้งระบุช่วงที่จะวางข้อมูล จะได้ข้อมูลที่ไม่ซ้ำกัน ดังภาพ

อาหารบำรุงหัวใจ

รูปภาพ
ฟังรายการ Health Talk Radio ของ Melanie Cole วันนี้ เป็นเรื่องเกี่ยวกับอาหารบำรุงหัวใจ น่าสนใจมาก ในรายการได้สัมภาษณ์ Dr. James Beckerman ซึ่งเป็นผู้เชี่ยวชาญด้านหัวใจ (Cardiologist) ผู้เขียนหนังสือ The Flex Diet Dr. James Beckerman บอกว่า อาหารที่สำคัญคือ 4F ได้แก่ อาหารที่มีเส้นใยอาหาร(Fiber) ปลา(Fish)  ผลไม้ (Fruit) และไขมันที่มีประโยชน์ต่อสุขภาพ(healthy Fat) อาหารที่มีเส้นใย เช่น ผัก ธัญญพืช ธัญพืชที่ผ่านกระบวนการขัดสีน้อย(whole grain) ของเราคงได้แก่พวกข้าวกล้องนั่นแหละครับ อาหารเส้นใยอย่างน้อยควรได้รับวันละประมาณ 25 - 30 กรัม ปลา ให้ประโยชน์หลายอย่าง เช่น กรดไขมันโอเมก้า 3 ควรรับประทาน 1 - 2 ครั้งต่อสัปดาห์ (1-2 servings per week) ผลไม้ มีประโยชน์ Dr. James Beckerman บอกว่า ผลไม้ต่างจากน้ำผลไม้ น้ำผลไม้เป็นอาหารที่ผ่านกระบวนการแล้ว ถือเป็น processed food เพราะฉะนั้น การรับประทานผลไม้ดีกว่าดื่มน้ำผลไม้ เพราะ การรับประทานผลไม้จะได้ ทั้งน้ำ ทั้งเส้นใย ไขมันที่มีประโยชน์ต่อสุขภาพ ไขมันที่ควรหลีกเลี่ยง คือ ไขมัน Trans และนอกจากนี้ก็ควรหลีกเลี่ยงไขมันอิ่มตัว (saturated fat

เทคนิคการใช้ Recordset ในการเปิดตารางฐานข้อมูล ของ Access VBA

เทคนิคการใช้ Recordset ของ MS Access ใช้ DAO หรือ ADO ทั้ง DAO และ ADO ต่างก็มีวัตถุ Recordset เหมือนกัน แต่มี method properties และ options ต่างกัน แต่ DAO เป็น native library ที่ของ ACCESS MS Access แต่ละรุ่นมีการตั้งค่า Default ของ Library ต่างกัน ดังนั้น ในการกำหนด Dim ต้องกำหนดให้ชัดเจน เช่น Dim rst as DAO.Recordset ไม่ใช่ Dim rst as Recordset ควรกำหนด Type ให้กับ Recordset เสมอ โดยปกติ Access จะกำหนด Type เป็นแบบ Dynaset (dbOpenDynaset) เมื่อเปิด Query หรือ ตารางเชื่อมโยง และกำหนด Type  เป็นแบบ Table (dbOpenTable)เมื่อเปิดตารางในฐานข้อมูลเดียวกัน ซึ่งทั้งสองประเภทนี้มี Method ที่ต่างกัน เช่น dbOpenTable มี Seek แต่ไม่มี FindFirst เป็นต้น ดังนั้น ถ้าไม่กำหนด Type และเมื่อมีการแยกตารางออกเพื่อให้มี Front End และ Back End จะทำให้เกิด Error ได้ - ควรกำหนด Type เป็นแบบ Dynaset จะครอบคลุมได้ทุกกรณี - dbOpenTable มี Seek method ที่ทำงานได้เร็วมาก แต่จะใช้กับ SQL Statement ไม่ได้ - ถ้าต้องการความเร็ว และไม่ต้องการแก้ไขข้อมูล ให้กำหนด Type เป็น dbOpenSnapshot ตัวอย่าง

ฟังก์ชัน like ของ Excel

รูปภาพ
ขึ้นต้นว่า ฟังก์ชัน like ของ Excel ก็ผิดเสียแล้ว เพราะ Excel ไม่มีฟังก์ชัน likeถ้าต้องการเปรียบเทียบ เหมือนกับการใช้ like ของ Excel จะทำอย่างไร วันก่อนผมต้องการนับอาชีพของคน จำนวน 24,000 คน จะนับทีละเซลล์คงไม่ไหว ปัญหาคือว่า บางคนเขียนอาชีพเดียวกัน ต่างกัน เช่น ลูกจ้าง รับจ้าง ลูกจ้างบริษัท ลูกจ้างชั่วคราว เป็นต้น อาชีพพวกนี้ ถือเป็นอาชีพรับจ้างทั้งหมด จึงต้องนับเป็นอาชีพเดียวกัน วิธีการ สร้างสูตร โดยใช้หน้าต่าง VBA เขียนโค้ดเหมือนกับสูตร like เพื่อนับว่า อาชีพดังกล่าว มีคำว่า จ้าง หรือไม่ ใช้ฟังก์ชัน Countif() เพื่อนับจำนวนที่เป็นจริง คือ มีคำว่า จ้าง การสร้าง ฟังก์ชัน like เพิ่ม Developer Tab บนริบบิ้น (Excel 2010 ไปที่ File > Option > Customize Ribbon > Developer) เปิดหน้าจอเขียนโค้ด (ไปที่ Developer Tab >  Visual Basic หรือกด Alt + F11) ถ้าไม่เห็นหน้าจอเขียนโค้ด ให้เลือกเมนู View > Code พิมพ์ฟังก์ชัน ดังภาพ Function isLike(myText As String, myWord As String) As Boolean       isLike = " " & myText & " " Like "*"

การปัดเศษขึ้น เป็นเลขจำนวนเต็ม ของ Access VBA

รูปภาพ
วันก่อนผมเขียนโปรแกรมสำหรับพิมพ์ใบปะหน้าซองข้อสอบ และต้องการคำนวณจำนวนกล่องที่ใช้ในการบรรจุข้อสอบ วิธีการคือ เอาจำนวนแผ่นกระดาษเป็นตัวตั้ง และหารด้วยจำนวนกระดาษในกล่องแต่ละขนาดที่สามารถบรรจุกระดาษได้ เช่น กล่องขนาดใหญ่ บรรจุกระดาษได้ 2,500 แผ่น ถ้ามีกระดาษ 5,000 แผ่น ก็ต้องใช้กล่อง 2 กล่อง ทีนี้ ถ้าในกรณีที่มีกระดาษ 2,600 แผ่น  ก็จะเหลือเศษไม่ถึงครึ่ง ถ้าใช้การปัดเศษธรรมดา ก็จะได้เป็น 2 กล่อง แต่ความจริงแม้จะเหลือเศษนิดหน่อยก็ต้องใช้กล่องอีกกล่องหนึ่ง ดังนั้นจึงต้องมีการปัดเศษขึ้นเป็นจำนวนเต็ม ไม่ว่าจะเหลือเศษเท่าไรก็ตาม Access ไม่มีฟังก์ชันการปัดเศษขึ้นเสมอ ถ้าจะใช้ฟังก์ชัน Round() ก็จะไม่ได้ผลที่ต้องการ อย่างนี้ต้องใช้ฟังก์ชัน int() แต่มีวิธีการเขียนเสียใหม่ เพื่อให้ได้เศษปัดขึ้นเสมอ เช่น 22 หารด้วย หารด้วย 3 จะได้ เท่ากับ 7.33 ปัดเศษ เป็น 8 สูตรมีดังนี้ -int(-ตัวตั้ง/ตัวหาร) ตัวอย่าง 22 หารด้วย 3 จะได้ค่าเป็น  7.33 ถ้าปัดเศษธรรมดา จะได้ 7 แต่ถ้าต้องการให้ได้ 8 ต้องเขียน -int(-22/3) ซึ่งถ้าพิมพ์ใน immediate window จะได้ผลดังภาพ ฟังก์ชัน Round() การปัดเศษธรร

ตัวแปร global ของ MS Access VBA

รูปภาพ
VBA มี Scope ของค่าตัวแปร ที่จำกัดอยู่ใน Procedure หรือ Module ซึ่งเมื่อออกจาก scope นั้น ๆ ไปแล้ว ค่าของตัวแปรจะหมดไปด้วย ถ้าต้องการรักษาค่านั้นไว้ เพื่อนำไปใช้ใน procedure หรือที่อื่น ๆ ในฐานข้อมูล ต้องประกาศให้เป็นตัวแปรแบบ Global ซึ่งทำได้ ดังนี้ ไปที่แถบ Modules สร้างโมดุลใหม่ หรือจะใช้โมดุลที่มีอยู่แล้วก็ได้ เปิดโมดูล และประกาศค่าตัวแปรให้ใช้งานได้ทั้งฐานข้อมูล โดยใช้ว่า Public นำหน้า เรียกใช้งานตัวแปรนี้ ในที่ต่าง ๆ โดยไม่ต้องประกาศ Dimension (Dim) ของตัวแปรนั้น ๆ ถ้าต้องการกำหนดค่าของตัวแปรไปด้วย ก็สามารถทำได้ เช่น Public Const previousForm as String = "frmMain" มีข้อควรระวังคือ เมื่อเกิดมี Error ค่าของตัวแปรจะหมดไปด้วย ควรมีการ Trap Error ไว้เพื่อตรวจสอบในทุก procedure ด้วย

การใช้ VBA สั่งเปิดรายงานแบบมีเงื่อนไข (MS Access)

รูปภาพ
รายงานที่นำข้อมูลมาจาก Query สามารถกำหนดเงื่อนไขในการแสดงข้อมูลได้ ดังนี้ กำหนดเงื่อนไขโดยตรงในช่อง Criteria ของ Query นั้น ๆ  เช่น ถ้าเราต้องการให้นำข้อมูลของอำเภอนครหลวงมาแสดง ให้พิมพ์ข้อความในเครื่องหมายคำพูดในช่อง Criteria ดังภาพ ถ้าเป็นการสั่งจากฟอร์ม เราสามารถกำหนดให้นำข้อความจาก กล่องข้อความ list box หรือ combo box มาเป็นเงื่อนไขได้ โดยการอ้างอิงถึง กล่องข้อความในช่องเงื่อนไข ในภาพ เป็นการอ้างอิงข้อความชื่อวิชา ที่อยู่ใน กล่องข้อความ ในแบบฟอร์มชื่อ frmShowAll_by_Subject (อ่านวิธีการอ้างอิงถึง Object  คลิกที่นี่ ) ใช้ stLinkcriteria เพื่อกำหนดเงื่อนไขในการเปิดฟอร์ม  วิธีนี้เหมาะสำหรับการกำหนดเงื่อนไขที่มีการใช้สูตร เช่น ถ้าต้องการให้แสดงชื่อวิชาทั้งหมด หรือให้เลือกเฉพาะวิชาใดวิชาหนึ่งที่ต้องการ เราสามารถกำหนดเงื่อนไข ใน stLinkCriteria ได้ ตัวอย่างนี้ เป็นการกำหนดเงื่อนไข ให้นำข้อความใน list box ชื่อ lstSubNames มาเป็นเงื่อนไขในการเปิดรายงาน ตามที่ระบุ แต่ถ้าหาก ข้อความใน lstSubNames เป็นเครื่องหมายดอกจัน (*) ก็ให้นำข้อมูลทุกวิชามาแสดง         If Me.lstSubNames.Valu

การสร้าง QAT บนริบบิ้น ของ Access 2010

รูปภาพ
เมื่อมี การสร้างริบบิ้นขึ้นใช้เอง โดยสร้างตาราง USysRibbons และเขียน XML กำหนดค่า ต่าง ๆ จะไม่พบว่ามี Quick Access Toolbar (QAT) ที่ทำให้เข้าถึงคำสั่งต่าง ๆ ที่ใช้บ่อย ๆ ได้ ถ้าต้องการให้มี QAT ต้องเขียนเพิ่มเข้าไปใน XML ดังนี้ <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" > <ribbon startFromScratch="true"> <qat> <documentControls> <button idMso="FileSave"/> <control idMso="Undo" /> <control idMso="Redo" /> <button idMso="Paste"/> <button idMso="PrintDialogAccess"/> </documentControls> </qat> <tabs> <tab idMso="TabHomeAccess" visible="true" /> ... ภาพที่ได้ จะเป็นดังนี้ มีข้อสังเกตคือ FileSave เป็นปุ่ม (Button) ส่วน Redo และ Undo เป็น Control

ไม่สามารถคัดลอก และวาง จาก Excel มาที่ Access

รูปภาพ
โดยปกติ โปรแกรม MS Access และ MS Excel สามารถถ่ายโยงกันได้ เช่น ลากดำ และกดปุ่ม คัดลอก หรือ Copy จากโปรแกรม MS Excel และมาวาง ในโปรแกรม MS Access ได้ทันที ไม่มีปัญหา แต่บางทีสิ่งที่ไม่คาดคิดก็เกิดขึ้น นั้นคือ ไม่สามารถวางสิ่งที่คัดลอกจาก Excel มาไว้ใน Access ได้ โดยมีข้อความแจ้งให้ทราบว่า ข้อมูลที่คัดลอกไปที่คลิปบอร์ดเสียหาย ไม่สามารถวางได้ ลองปิดโปรแกรม แล้วเปิดใหม่ ปิดเครื่องแล้วเปิดใหม่ ก็ไม่หาย สาเหตุหลักเกิดมาจากการ update ของไมโครซอฟท์ ทำให้เกิดปัญหาด้านความปลอดภัยของ Excel เลยทำให้ไม่สามารถคัดลอก และวาง ใน Access ได้  อ่าน KB958437  และ KB967699 การแก้ไข วิธีที่ 1 คัดลอกแล้วปิดโปรแกรม Excel คัดลอกจาก Excel แล้วปิดโปรแกรม Excel เมื่อเขาถามว่า จะเอาสิ่งที่คัดลอกไว้ในคลิปบอร์ดเก็บไว้เพื่อให้สามารถเอาไปใช้กับโปรแกรมแกรมอื่น หรือไม่ ต้องตอบว่าใช่ คลิกที่ Access และกดปุ่ม วาง หรือ Paste เท่านี้ก็สามารถวางได้ วิธีที่ 2 คัดลอกจาก Excel แล้วมาที่ Access และ Paste จาก คลิกปบอร์ด คัดลอกจาก Excel มาที่ Access คลิกเพื่อเปิด คลิปบอร์ด จะเห็นสิ่งที่คัดลอกจาก Excel ค

เทคนิค Access VBA

รูปภาพ
เทคนิค เกร็ด การใช้ VBA กับ Microsoft Access การสั่งไม่ให้ใช้ คลิกขวา ที่ฟอร์ม หรือ รายงาน เปิดฟอร์มหรือรายงานแบบ มุมมองออกแบบ หรือ Design View ที่ on load เขียนคำสั่งเพิ่ม ดังนี้ Forms("ชื่อฟอร์ม หรือชื่อรายงาน").ShortcutMenu = False เมื่อเปิดฟอร์ม จะไม่สามารถใช้คลิกขวาได้ การใช้ Combo box กำหนด Row Source Type เป็น Table/Query เมื่อต้องการนำข้อมูลจากตารางหรือ Query มาแสดง ถ้าจะใส่ข้อมูลเอง ให้กำหนด Row Source Type เป็น Value list ถ้าจะเคลียข้อมูลใน Combo box ให้ใช้คำสั่ง me.ชื่อ combo box. RowSource = "" ในกรณีที่ต้องการสร้าง Comob box 2 อัน เมื่อเลือกอันที่หนึ่งแล้ว ให้เป็นเงื่อนไขที่จะนำตัวเลือกมาแสดงใน combo box อันที่ 2 เช่น เมื่อเลือกจังหวัดแล้ว ให้นำชื่ออำเภอของจังหวัดที่เลือก มาให้เลือกใน Combo box อันที่ 2 ทำดังนี้ - สร้างตาราง 2 ตาราง สำหรับเป็นข้อมูลจังหวัด และ อำเภอ ตารางจังหวัด ตารางอำเภอ - สร้าง combo box 2 อัน สมมุติชื่อ cboProvince และ cboAmphur -กำหนด Row Source Type ทั้งสอง เป็น Table/Query เพราะต้องเอาข้อมูลมาจาก ตาราง เนื่