ข้ามไปที่เนื้อหาหลัก

บทความ

กำลังแสดงโพสต์จาก กรกฎาคม, 2013

Is Null และ ช่องว่าง ใน Access VBA

วันนี้ปวดหัวอยู่ตั้งนาน เพราะเรื่อง Is Null และ ช่องว่าง หรือ ข้อความว่างเปล่า ใน Access นั่นเอง

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

ทำไปทำมา ก็ได้ข้อสรุปว่า ข้อมูลชนิด Text ที่ลบไปแล้วเมื่อสักครู่ ปัจจุบัน กลายเป็น Null เลยทดสอบ เปลี่ยนเงื่อนไขใหม่ เป็น
คราวนี้ ปรากฏว่า มีข้อมูลใน Record ที่ลบฟิลด์ isPass ไปแล้ว มาแสดงให้เห็น

แต่ปัญหาก็คือ มีฟิลด์ isPass ใน Record อื่น ที่มีค่าเป็น "" หรือข้อความว่าง เมื่อกำหนดเงื่อนไขเป็น Is Null ข้อมูลใน Record ที่มีข้อความว่าง ก็จะไม่ปรากฏ เพราะไม่เป็นไปตามเงื่อนไข

ทางแก้ก็คือ ต้่องใช้ฟังก์ชัน Nz() มาช่วย โดยสร้างฟิลด์ใหม่ แปลงข้อมูลที่เป็น Null ให้เป็นข้อความว่าง หรือ "" เสียก่อน แล้วจึงกำหนดเงื่อนไขเป็น ข้อความว่าง หรือ &…

วิธี แก้อาการหลงๆ ลืมๆ

วิธี แก้อาการหลงๆลืมๆ บางครั้งคนเราทำงานหนักมากเกินไป หรือายุที่เพิ่มมากขึ้น อาจทำให้หลงๆ ลืมๆ กันไปบ้าง แล้วมีวิธีอะไรบ้างที่จะช่วยทำให้บรรเทาอาการเหล่านี้ ยกตัวอย่างง่ายๆ 4 วิธี ที่คุณสามารถทำได้ตั้งแต่วันนี้เลย วิธีแรกโฟกัสสายตา โดยวิธีการคือ ให้ฝึกนั่งจ้องวัตถุ หรือ เหตุการณ์ตรงหน้า จดจำรายละเอียดให้มากที่สุด นานประมาณ 3 นาที จากนั้น ละสายตา แล้ววาดสิ่งที่เห็นบนกระดาษ เมื่อเสร็จตรวจดูว่ามีสิ่งใดตกหล่นไปหรือไม่ ฝึกสม่ำเสมอจะช่วยพัฒนาความจำระยะสั้น บริหารสมอง และเสริมประสิทธิภาพความจำด้านสายตา เช่น เอาสิ่งของมาซัก10 ชิ้น แล้วห่อผ้าไว้ แล้วเปิดออกมาซัก10 วินาที แล้วพูดหรือเขียนออกมา วิธีที่ 2 รับประทานอาหารที่ช่วยในเรื่องความจำ แนะนำให้เป็นอาหารที่อุดมวิตามินซี, อี และเบต้าแคโรทีน โดยเฉพาะส้ม องุ่น เบอร์รี ผักสีเขียว ช่วยปกป้องเนื้อเยื่อสมองจากอนุมูลอิสระ ซึ่งเป็นสาเหตุให้เซลล์สมองเสื่อม ทั้งนี้ ผลวิจัยในต่างประเทศพบว่า ผู้บริโภควิตามินซีสูง มีผลการทดสอบด้านสมาธิ ความจำ และการคำนวณดีที่สุดด้วย วิธีที่ 3 การทำกิจกรรมที่ช่วยให้เรามีทักษะใหม่ๆ อยู่เสมอ เช่นกิจกรรมที่ท้าทายความคิด เมื่ออา…

การสร้างตารางด้วย Access VBA

วันก่อน สร้าง Query เพื่อปรับข้อมูลในตาราง โดยสร้าง Query ให้หาผู้เรียนปัจจุบันที่เรียนจบ และนำข้อมูลไปปรับในตารางผู้เรียน ปรากฏว่า ไม่สำเร็จ เพราะมี Error ว่า Operation must use updateable query
ลองหาข้อมูลดู ก็พบว่า Update Query ก็มีข้อจำกัดอยู่เหมือนกัน ใช้ไม่ได้ทุกเรื่อง เช่น ฟิลด์ที่มีการคำนวณ หรือที่มาจาก Cross Tab ไม่สามารถใช้ Update Query ได้ เพราะมีการคำนวณเหมือนกัน  บังเอิญ Query ของผมเอามาจาก Cross Tab จึงทำให้มีปัญหา ทางออกของผมจึงนำเอาผลที่ได้ไปไว้ในตารางที่สร้างด้วยโค้ด VBA เป็นการสร้างตาราง On the fly ความจริงใช้ Query สร้างตารางแล้วเรียกใช้งานก็ได้ แต่ผมว่า ใช้โค้ด VBA สร้างตารางดีกว่า มีคนบอกว่า น่าจะใช้โค้ด VBA มากกว่าการใช้ Query เพราะ Query ปรับ เปลี่ยน ลบ ได้ ทำให้มีโอกาสการเปลี่ยนแปลงจากต้นฉบับเดิมได้สูง ผมสร้างตารางชั่วคราว และเอาข้อมูลในตารางนี้ไปปรับข้อมูลในอีกตารางหนึ่ง ไม่มีปัญหา ปรับได้เรียบร้อยดี โค้ด VBA สำหรับการสร้างตาราง มีดังนี้ Private Sub TestTemp()    On Error GoTo ErrorHandler
   Dim strSQL as String
   Dim strTable as String
   strTable = "…

เลขไทยบนรายงาน ของ MS Access

ในการทำงานกับ Microsoft Access บ่อยครั้งที่เราต้องใช้เลขไทย เช่น การพิมพ์เลขที่วุฒิบัตร จำเป็นต้องใช้เลขไทย เช่น

เลขไทยที่เห็น ใช้ฟังก์ชัน Access ที่เขียนขึ้น เพื่อให้แสดงเลขไทย ฟังก์มีดังนี้

Public Function cThaiNumber(whatString As String) As String
Dim myString As String
Dim length As Byte
Dim i As Byte
Dim character As String
Dim newString As String
myString = whatString
newString = ""
length = Len(myString)
For i = 1 To length
    character = Asc(Mid(myString, i, 1))
    Select Case character
           Case "48": character = "240"
           Case "49": character = "241"
           Case "50": character = "242"
           Case "51": character = "243"
           Case "52": character = "244"
           Case "53": character = "245"
           Case "54": character = "246"
           Case "55": character = "247"
      …

การถ่ายโอนข้อมูลระหว่าง Access กับ MySQL ผ่านทาง phpMyAdmin

การโอนข้อมูลจาก MySQL  ไปยัง MS Access โดยใช้ phpMyAdmin

ถ้าต้องการโอนข้อมูลจากฐานข้อมูล MySQL บนเว็บ ไปยัง MS Access ผ่านทาง phpMyAdmin ให้เข้า phpMyAdmin เลือกตารางที่ต้องการถ่ายโอนไปยัง MS Access เลือกส่งออก และกำหนดเป็นชนิด XML เลือกส่งออกเป็นไฟล์ คลิก ลงมือ


การนำเข้า MS Access
นำเข้า MS Access โดยผ่านทาง ข้อมูลภายนอก > นำเข้าและเชื่อมโยง > แฟ้ม XMLเลือกไฟล์ แล้วคลิก ตกลงกำหนดเงื่อนไขว่า จะเอาเฉพาะโครงสร้าง หรือข้อมูลด้วย หรือ จะนำไปต่อท้าย(ผนวก)ตารางที่มีอยู่แล้ว เมื่อกำหนดแล้วคลิก ตกลง เมื่อคลิกตกลงโปรแกรมจะทำงานทันที ถ้าต้องการนำตารางใน MS Access เข้าฐานข้อมูล MySQL ผ่านทาง phpMyAdmin จะทำอย่างไร

phpMyAdmin ส่งออกเป็นไฟล์ XML ได้ แต่ไม่สามารถนำไฟล์ XML เข้าฐานข้อมูลได้ ถ้าต้องการนำตารางจาก MS Access เข้าฐานข้อมูล MySQL ผ่านทาง phpMyAdmin ต้องส่งตารางออกเป็นไฟล์ csv จึงสามารถนำตารางเข้าฐานข้อมูลได้

สมมติว่า ต้องการนำข้อมูลจาก Table1 ในฐานข้อมูลของ Access เข้าตาราง MySQL
วิธีการ
เปิด MS Access 2010คลิกเลือกตารางที่ต้องการส่งออก บนแถบวัตถุตาราง ของ Accessเลือกข้อมูลภายนอก >…

การลบข้อมูลที่มีข้อมูลซ้ำกับตารางอื่น และนำข้อมูลเข้าตาราง

การลบข้อมูลในตาราง เราใช้การสร้างแบบสอบถามประเภทลบ และระบุในเงื่อนไขว่า ต้องการลบฟิลด์ที่มีข้อมูลชื่ออะไร เช่น ต้องการลบข้อมูลของ สมศักดิ์ ออกจากตาราง Table1 ทั้งหมด สร้างเป็นเงื่อนไข ในช่องเงื่อนไข ของแบบสอบถาม ได้ดังนี้
[Table1].[fname]="สมศักดิ์"
แต่ในกรณีที่ต้องการลบข้อมูลในตารางหนึ่ง โดยให้ลบเฉพาะรายการที่ซ้ำกันกับตารางอีกตารางหนึ่ง ดังภาพ จะทำอย่างไร
จากภาพ จะเห็นว่า ใน Table2 มีชื่อคนที่ซ้ำกับใน Table1 อยู่ จำนวน 2 คน คือ สมศักดิ์ รักชาติ และ สุดา อารยา เราต้องการลบข้อมูลของคนทั้งสอง ในตาราง Table2 โดยจะลบเฉพาะที่มีชื่อและนามสกุลซ้ำกับข้อมูลในตาราง Table1 จะทำอย่างไร

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

วิธีการ
สร้างแบบสอบถามชนิดลบข้อมูล ไปที่ เมนูสร้าง กลุ่มแบบสอบถาม เลือกออกแบบแบบสอบถาม นำเข้าตาราง Table2 และกำหนดชนิดแบบสอบถามเป็นชนิด ลบ เลือกฟิลด์ชื่อและนามสกุล เพื่อจะได้ใช้เป็นเงื่อนไข ที่ช่องเกณฑ์ ในเขตข้อมูล ชื่อ ให้คลิกขวา และเลือก ย่อ/ขยาย เพื่อเขียนโค้ด เขียนโค้ดต่อไ…

การหาข้อมูลที่ซ้ำกันในตาราง 2 ตาราง ของ Access2010

การหาข้อมูลใน Field ที่ซ้ำกันในตารางเดียวกัน เป็นเรื่องไม่ยาก เพราะมี แบบสอบถาม หรือ Query ที่ใช้สำหรับค้นหาข้อมูลที่ซ้ำกันอยู่แล้ว คือ ตัวช่วยสร้างแบบสอบถามเพื่อค้นหารายการที่ซ้ำ (Find Duplicate Query Wizard) (ไปที่แถบสร้าง กลุ่มแบบสอบถาม เลือก ตัวช่วยสร้างแบบสอบถามเพื่อค้นหารายการที่ซ้ำ)

และถ้าเป็นการหาข้อมูลที่ซ้ำกันใน 2 ตาราง แต่ต้องการหาเพียงฟิลด์เดียว ก็ไม่ยากเท่าไร เพราะสามารถใช้ ตัวช่วยสร้างแบบสอบถามการค้นหาข้อมูลที่ไม่ตรงกัน (Find Unmatched Query Wizard) ได้ เพียงเปลี่ยนเงื่อนไข จาก is Null เป็น Not is Null ก็ใช้ได้

แต่ ถ้าต้องการหาข้อมูลที่ซ้ำกัน โดยมีเงื่อนไขว่า ต้องซ้ำกันหลายฟิลด์ เช่น ชื่อซ้ำกัน และนามสกุลซ้ำกันด้วย จะทำอย่างไร

จากภาพ จะเห็นว่า ในตารางที่ 1 และตารางที่ 2 มีข้อมูลที่ซ้ำกันคือ สมศักดิ์ รักชาติ และ สุดา อารยา ส่วนประสิทธิ์ ชื่อเหมือนกัน แต่นามสกุลต่างกัน จึงเป็นคนละคนกัน

การค้นหารายชื่อที่ซ้ำกัน ใน 2 ตาราง โดยมีเงื่อนไขหลายฟิลด์ มีดังนี้
สร้างแบบสอบถามใหม่ โดยไปที่แถบสร้าง กลุ่มแบบสอบถาม เลือกออกแบบแบสอบถาม Queryเลือกตารางที่มีข้อมูลที่ต้องการเปรียบเทียบเข้า…

การสร้างปุ่มบนริบบิ้น Access 2010 โดยใช้ภาพที่สร้างขึ้นเอง

วันก่อน เคยพูดเรื่อง การสร้างปุ่มบนริบบิ้น ของ MS Access 2007 แต่ยังติดขัดที่ต้องใช้ภาพที่เป็น idMso ของ Access ภาพที่สร้างขึ้นเอง มีปัญหาเรื่อง Transparency วันนี้ ไปพบเรื่องเดียวกัน ที่ http://www.accessribbon.de/en/ แต่สามารถใช้ภาพ png ที่เป็น Transparent และนำมาใช้งาน ได้ และมี Transparency เหมือนกับการใช้ภาพจาก idMso ดังตัวอย่างข้างล่างนี้


การสร้าง ใช้การนำภาพเข้าตาราง และเรียกใช้งานฟังก์ชัน AddBinFile() ของ Sascha Trowitzsch ในโมดูล "basBlob" และ "basGDIPlus"

ภาพที่ใช้สร้างเอง โดยใช้โปรแกรมสร้างภาพกราฟฟิก เช่น Gimp Photoshop หรือ Illustrator ก็ได้ และบันทึกเป็นไฟล์ png โดยให้มี Trasparent ด้วย

วิธีการ

สร้างไฟล์ ขนาด 200 X 200 pixels สำหรับเป็นภาพ icon ที่ต้องการ โดยสร้างเป็นไฟล์ png และให้มี Transparentบันทึกไว้ในห้องเดียวกับไฟล์ Access ในตัวอย่างนี้ ไฟล์ภาพ ชื่อ abc_nfe.png อยู่ในห้อง E:\socialMediaสร้างไฟล์ใหม่ ด้วย Access 2010 และบันทึกไว้ในห้องเดียวกับภาพ คือ E:\socialMediaนำเข้าโมดุล  "basBlob" โดยไปที่ ข้อมูลภายนอก > Access แล้วทำตามหน้าจอก…

การลบ Cookies ใน Internet Explorer

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

ตัวอย่างเช่น Gmail เมื่อเวลา Sign in เข้าใช้งาน จะมีข้อความให้เลือกว่าต้องการ "อยู่ในสถานะลงชื่อเข้าใช้" หรือไม่
ถ้าคลิกเลือก เหมือนในตัวอย่างข้างบน เว็บของ Gmail จะเขียน Cookie ลงในเครื่อง เพื่อว่า เมื่อเข้ามาอีกครั้ง จะได้ไม่ต้องกรอก เว็บของสถาบัน กศน.ภาคกลาง ก็มีการเก็บ Cookie ในลักษณะนี้ เช่นเดียวกัน ถ้าคลิกเลือก "จำชื่อและรหัสไว้" เมื่อเข้ามาอีกครั้ง ก็ไม่ต้องลงทะเบียนเข้าสู่ระบบ แต่จะสามารถเข้าเลือกวิชาเรียนในระบบได้ทันที โดยปกติ เว็บที่เขียน Cookie ลงในเครื่องผู้ใช้ จะกำหนดอายุว่า ให้อยู่ได้กี่วัน แล้วจะลบทิ้งไปเอง จำนวนวันจะไม่เท่ากัน แล้วแต่ละเว็บจะกำหนด ถ้าเราต้องการล้าง Cookies ทั้งหมดที่อยู่เครื่อง ก็สามารถทำได้ โดยใช้โปรแกรม เช่น CCleaner ลบ Cookies ออกทั้งหมด หรือจะทำเอง ก็ได้ วิธีการล้าง Cookies ด้วยตัวเอง ทำดังนี้ ไปที่ Start > Control Pane…