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

การใช้ File Dialog ค้นหาภาพ และเปิดด้วย Paint ด้วย Access VBA

ในตัวอย่างนี้ จะเป็นการสร้างปุ่มเพื่อเปิดหน้าจอค้นหาไฟล์ (Browse Dialogue) เพื่อค้นหาไฟล์ภาพ แล้วมีปุ่มเพื่อให้เปิดดูด้วย โปรแกรม Paint เพื่อให้ผู้ใช้สามารถจัดการกับภาพ และสั่งพิมพ์นอกโปรแกรม Access ได้


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

วิธีการ
  1. สร้างปุ่ม ชื่อ Command0 เขียนข้อความที่ปุ่มเป็น ค้นหาไฟล์
  2. สร้าง กล่องข้อความ (Textbox) ชื่อ Text3
  3. สร้างปุ่ม ชื่อ cmdViewFile กำหนดค่าเริ่มต้นให้มองไม่เห็น (ที่แถบ Format ตั้งค่า Visible เป็น No)  เขียนข้อความที่ปุ่มเป็น เปิดดูภาพ
  4. ที่ปุ่ม ค้นหาไฟล์ (Command0) ให้เขียนโค้ดข้างล่างนี้

    Private Sub Command0_Click()
        Dim f As Object
        Dim fileAddress As String
        Dim fileExt As String
        Dim strFile As String
        Dim strFolder As String
        Dim varItem As Variant
       
        Me.Text3.Value = ""
        Me.cmdViewFile.Visible = False
       
        Set f = Application.FileDialog(3)
        f.AllowMultiSelect = False
        If f.Show Then
            fileAddress = f.SelectedItems(1)
        End If
        Set f = Nothing
        fileExt = Right(fileAddress, Len(fileAddress) - InStrRev(fileAddress, "."))
        If ((fileExt <> "gif") And (fileExt <> "jpg")) Then
                MsgBox "ไม่ใช่ไฟล์ภาพ"
        Else
                Me.Text3.Value = fileAddress
                Me.cmdViewFile.Visible = True
        End If
          
    End Sub
  5. ที่ปุ่ม cmdViewFile ให้เขียนโค้ดข้างล่างนี้

    Private Sub cmdViewFile_Click()

    Dim thisFile As String

        thisFile = Me.Text3.Value
       
        Shell Chr(34) & "C:\Windows\System32\mspaint.exe" & Chr(34) & " " & _
        Chr(34) & thisFile & Chr(34), 1

    End Sub
เมื่อเปิดครั้งแรกจะไม่เห็นปุ่ม เปิดดูภาพ เมื่อคลิกปุ่มค้นหาไฟล์ จะเปิดหน้าจอให้ค้นหาไฟล์

 เมื่อเลือกไฟล์ และกดปุ่ม OK จะแสดง Path และชื่อไฟล์ในกล่องข้อความ และมีปุ่มกดดูภาพปรากฎขึ้น


 เมื่อคลิกปุ่ม เปิดดูภาพ จะเปิดโปรแกรม Paint และแสดงภาพที่เลือก

ดาวน์โหลดไฟล์ คลิกที่นี่

ปรับปรุงใหม่

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

Private Sub Command0_Click()
    Dim f As Object
    Dim fileAddress As String
    Dim fileExt As String
    Dim strFile As String
    Dim strFolder As String
    Dim varItem As Variant
   
    Me.Text3.Value = ""
    Me.cmdViewFile.Visible = False
   
    Set f = Application.FileDialog(3)
        f.AllowMultiSelect = False
        f.Title = "โปรดเลือกไฟล์ภาพที่ต้องการ"
        f.Filters.Clear
        f.Filters.Add "JPG Files", "*.jpg"
        f.Filters.Add "GIF Files", "*.gif"
        f.Filters.Add "Bitmap Files", "*.bmp"
        f.Filters.Add "All Files", "*.*"

    If f.Show Then
        fileAddress = f.SelectedItems(1)
        Me.Text3 = fileAddress
        Me.cmdViewFile.Visible = True
    End If
    Set f = Nothing
   
End Sub


ที่มา

http://www.pcreview.co.uk/forums/re-vba-using-shell-open-jpg-file-ms-paint-t3837282.html
http://www.devhut.net/2013/02/26/ms-access-vba-determine-a-files-extension/
http://social.msdn.microsoft.com/Forums/office/en-US/2e053d45-5ad1-4340-a678-3a2d83625965/access-2010-applicationfiledialog-filtersadd-fails


ความคิดเห็น

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

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

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