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

สาระเทคนิค access vba

การเปลี่ยนภาพที่ปุ่ม Command Button
  1. สร้างปุ่ม โดยไม่ใช้ Command Wizard (คลิก Cancel ถ้ามีหน้าจอ wizard)
  2. คลิกขวาที่ปุ่มเพื่อเปิด Property Sheet เลือก Picture
  3. ถ้าต้องการใช้รูปที่สร้างเองบนปุ่ม ให้คลิก Broswe ภาพที่จะนำมาใช้งาน ควรเป็นภาพ png ที่มี Transparent และมีขนาดเล็ก
การเรียกใช้หน้าจอ Attach File ด้วย VBA
  1. สร้างตารางที่มี Field หนึ่ง ที่ data type เป็น Attachment
  2. สร้างฟอร์ม โดยกำหนดให้ตารางที่สร้างเป็น Record source และลาก Field ที่เป็น Attachment มาวางไว้ 
  3. สร้างปุ่ม เพื่อให้คลิกและเรียกใช้งานหน้าจอ Attachment
  4. และเขียนโค้ดที่ปุ่มที่ on click event
            Me.Attachmnt.SetFocus ' Set focus ฟิลด์ Atttachment
            RunCommand acCmdManageAttachments ' เรียกใช้งาน
  5. เมื่อคลิกปุ่ม จะเกิดหน้าจอให้กำหนด Attachment ของฟิลด์ในตารางที่สร้าง

การ Disable ไม่ให้สร้าง Record ใหม่ ในฟอร์ม

       ปกติฟอร์มที่มีตาราง เป็น Record Source จะมี Navigation ด้านล่างให้สามารถไปยัง Record อื่น ๆ ได้ รวมทั้ง สร้าง Record ใหม่ ด้วย

        ถ้าต้องการยกเลิก ไม่ให้มีการสร้าง Record ใหม่ เมื่อเรียกใช้งาน ให้กำหนด AllowAdditions ของฟอร์มนั้น เป็น False ดังนี้

               DoCmd.OpenForm "frmTeachers_edit", acNormal
               Forms!frmTeachers_edit.AllowAdditions = False


การใช้ Image Control (Access 2007 เป็นต้นไป)


  1. ถ้ามีฟิลด์ในตารางที่เป็นที่อยู่ของไฟล์ภาพ สามารถกำหนด ฟิลด์ให้เป็น Control Source ได้เลย ภาพจะมาปรากฎทันที
  2. ถ้าต้องการให้มีภาพ Default ในกรณีไม่มีรูป
  3. ให้สร้างภาพ Default และกำหนด ภาพในแถบ Format ของ Property Sheet โดยเลือกภาพที่สร้างไว้แล้ว
การอ้างอิงถึง Subform ด้วย VBA



การอ้างถึง Subform ผ่าน controls collection ของ form
         Forms!formname!subformname
การอ้างถึง control ใน subform เนื่องจาก Subform จริง ๆ แล้ว เป็น Control ตัวหนึ่งที่มี dependent controls ดังนั้นการอ้างอิงจึงต้องอ้างถึง Subform ก่อน จากนั้นจึงใช้ Form property ของ Subform เพื่อไปยัง control ของ subform อีกครั้งหนึ่ง
           Forms!formname!subformname.Form.controlname
ถ้าชื่อมีช่องว่าง ต้องใช้เครื่องหมาย [ ] คร่อม
           Forms![form name]![control name].Form.[control name]
ถ้าอยู่ใน Form ปัจจุบัน สามารถใช้ Me แทนได้ เช่น
           Me!subformname.Form.controlname
ถ้าต้องการเปลี่ยนข้อมูลในฟอร์ม โดยใช้ข้อมูลจาก Query สามารถสั่งกรองข้อมูลได้ โดยผ่าน RecordSource ของ Subform เช่น
           Forms![form name]![control name].Form.RecordSource = "SQL statement
           ตัวอย่าง
           Forms!frmTeacher.frmTeacherSubform.Form.RecordSource = "Select * From qryTeacher " & _
           "Where teacher_name = '" & tName & "'"
           ข้อสังเกต
           - frmTeacher และ frmTeacherSubform เป็นชื่อ form และ subform ตามลำดับ
           - teacher_name เป็นชื่อ Field ชนิด String จึงต้องอยู่ในเครื่องหมายคำพูด
           - tName เป็นตัวแปร ชนิด String
เมื่อกำหนดค่าให้ RecordSource ของ Subform แล้ว ต้องทำการ Requery ให้ก้บ Subform ด้วย มิฉะนั้น จะไม่แสดงผลให้เห็นทันทีทันใด
           Forms!frmTeacher.frmTeacherSubform.Requery


การตรวจหาข้อมูลในตาราง อย่างง่าย

ต้องการหาข้อความที่พิมพ์เข้ามาว่า มีอยู่ในตารางหรือไม่ เช่น ตรวจสอบรหัสไปรษณีย์ ในตาราง tblPostalCode เป็นต้น

Private Sub txtProvinceCode_BeforeUpdate(Cancel As Integer)

If CurrentDb.OpenRecordset("Select count(*) from tblPostalCode where postalCode ='" & Me.txtProvinceCode & "' ;").Fields(0) = 0 Then

    MsgBox "ไม่พบรหัสไปรษณีย์ ที่ท่านระบุในฐานข้อมูล"
    Cancel = True
    Exit Sub
 
End If

End Sub

หมายเหตุ ฟิลด์ที่เก็บข้อมูลรหัสไปรษณีย์ เป็นลักษณะ TEXT

หรือ อาจจะใช้ฟังก์ชัน DCount() ก็ได้





ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

แนวข้อสอบ เงื่อนไขสัญลักษณ์

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

เลือกตอบข้อ 1. ถ้าข้อสรุปทั้งสอง ถูกด้องหรือเป็นจริง ตามเงื่อนไข
เลือกตอบข้อ 2. ถ้าข้อสรุปทั้งลอง ผิดหรือไม่เป็นจริง ตามเงื่อนไข
เลือกตอบข้อ 3. ถ้าข้อ…

อุปมา อุปไมย สำนวนการเปรียบเทียบ ของไทย

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

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

คนดุ หากต้องการให้ความหมายชัดเจน น่าฟัง และเกิดภาพพจน์ชัดเจนก็ต้องอุปมาอุปไมยว่า “ดุ เหมือน เสือ”
ขรุขระมาก การสื่อความยังไม่ชัดเจนไม่เห็นภาพ ต้องอุปมาอุปไมยว่า “ขรุขระเหมือนผิวมะกรูด” หรือ “ขรุขระเหมือนผิวพระจันทร์” ก็จะทำให้เข้าใจ ความหมายในรูปธรรมชัดเจนมากยิ่งขึ้น

คำอุปมาอุปไมยที่ควรรู้จัก (พิมพ์คำ/ข้อความ แล้วกดปุ่ม "ค้นหา")

เทคนิคการทำ ข้อสอบ อนุกรม ของ ก.พ.

|ประเภทของอนุกรม เทคนิคการทำโจทย์เลข อนุกรม ข้อแนะนำเพิ่มเติม |


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


ประเภทของอนุกรม รูปแบบความสัมพันธ์ของตัวเลขอนุกรมเท่าที่พบบ่อย ๆ มีหลายประเภท เช่น

ก. อนุกรมเชิงเดี่ยว 

ได้แก่ชุดตัวเลขที่เป็นอนุกรมเพียงชุดเดียว เช่น
ค่าของตัวเลขเพิ่มขึ้นต่อเนื่องอย่างเป็นระบบ โดยการบวก หรือ คูณ ตัวเลขก่อนหน้า เช่น บวกด้วยตัวเลขที่เป็นค่าคงที่ เช่น    5   10   15   20   ...?...
บวกด้วยตัวเลขที่มีระบบ เช่น     1    2    5    10   ...?...
คูณด้วยค่าคงที่ เช่น   1   3   9   27   ...?...
มีทั้ง บวก ลบ คูณ หรือหาร สลับกัน เช่น บวกแล้วคูณด้วยค่าคงที่สลับกัน ดังตัวอย่าง  5   7    14   16  32   ...... มีการ บวก ลบ คูณ หรือ หาร ร่วมกัน เช่น  15   31   63   127   255  ...?...
ในตัวอย่างนี้ จะเห็นว่า ตัวเลขตัวแรกคูณด้วย 2 และบวกด้วย 1 จะได้ตัวเลขตัวถัดไป คูณด้วยค่าคงที่ที่เป็นเศษส่วน ให้สังเกตความสัมพันธ์ว่า ตัวเลขก่อนหน้า …