สมัครสมาชิก

แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - สันติสุข

หน้า: [1] 2
1
ขออนุญาตแชร์ประสบการณ์นะคะ

โดยปกติโปรแกรมที่ทำจาก 2003 ก็สามารถนำไปเปิดใช้กับ2016 ได้อยู่แล้ว
แต่จากกรณีคำถามคือต้องการแปลงไปเป็น 2016 ก็สามารถทำได้ดังนี้ค่ะ

-เอาโปรแกรมที่ต้องการแปลง ไปเปิดใน Access2016
-ไปที่เมนู แฟ้ม ให้เลือกไปที่ "บันทึกฐานข้อมูลเป็น" หรือ "บันทึกและประกาศ"
-เลือกอ็อปชั่นที่ต้องการแล้วก็ตั้งชื่อใหม่ เสร็จแล้วค่ะ ลองดูนะคะ
โพสต์นี้ได้รับคำขอบคุณจาก: สันติสุข

2
ขอตอบแบบนี้นะครับ (ท่านอื่นสามารถเสริมได้นะครับ เผื่อผมผิดพลาด ตกหล่นตรงไหน)

ก่อนอื่นต้องแยกกันอย่างนี้ก่อนนะครับ
สำหรับ Object นั้นเป็นเรื่องของเทคโนโลยีเชิงวัตถุ คือมองทุกสิ่งอย่างให้เป็นวัตถุไปหมด โดยเจ้าวัตถุที่เราเห็นบนหน้าจอ (หรือที่ไม่เห็นบนหน้าจอ) ก็ต้องมีคุณสมบัติตามกฏของ Object Oriented Programming เช่น Inheritance และบลาๆๆ 3-4 ข้อจำไม่ได้ แต่ที่จำได้คือ Access มีแต่ไม่ครบทุกข้อ แต่ก็หยวนๆ วพอกล่อมแกล้มว่าเป็น OO ได้ (อันนี้บ่น)

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

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

สรุป Control ก็คือ Object แบบนึง ที่เราใส่ไว้ในฟอร์มหรือรีพอร์ต

โพสต์นี้ได้รับคำขอบคุณจาก: สันติสุข

3
ไม่เข้าใจ
โพสต์นี้ได้รับคำขอบคุณจาก: สันติสุข

4
อ่านแล้ว งง คำถาม แต่ งง ไปอีก ทำไมอาจารย์เก่งจัง
เดาได้ด้วยว่าเค้าถามอะไร
โพสต์นี้ได้รับคำขอบคุณจาก: สันติสุข

5
สนับสนุนการบ่นอีกเสียงครับ

บางคำถามอ่านแล้วได้แต่ถอนใจ
โพสต์นี้ได้รับคำขอบคุณจาก: สันติสุข

6
กดปุ่ม [CTRL] + ['] จะเป็นการเรียกข้อมูลก่อนหน้ามาใส่ (ไม่รู้ว่าช่วยแก้ปัญหาได้ป่าวนะครับ)
โพสต์นี้ได้รับคำขอบคุณจาก: สันติสุข

7
มันคือ Arrays หรือเปล่าครับหรือ
https://docs.microsoft.com/en-us/office/vba/language/concepts/getting-started/using-arrays link
โพสต์นี้ได้รับคำขอบคุณจาก: สันติสุข

8
x \ y = จำนวนเต็มของ x / y
x Mod y = เศษเหลือจาก x / y เป็นจำนวนเต็ม

ตัวอย่างการนำไปใช้ (1วัน = 24ชั่วโมง = 1440นาที)

Text1 = 1500 นาที

Text2 = [Text1]\1440          = 1 วัน
Text3 = ([Text1]\60) Mod 24    = 1 ชั่วโมง

หมายเหตุ จากตัวอย่างจะเป็นการปัดเศษนาทีทิ้งทั้งหมดครับ (59นาที=0ชม.)
มาแถม [Text1] Mod 60 = เศษนาทีที่เหลือ
แถม2 Text2 =[Text1]\1440 & " วัน " & ([Text1]\60) Mod 24 & " ชั่วโมง" = 1 วัน 1 ชั่วโมง
โพสต์นี้ได้รับคำขอบคุณจาก: สันติสุข

9
โดยทั่วไป Ms Access จะใช้โค้ดสีที่ต่างจากพวก > Hex / RGB / MS Access Color Values link
แต่สามารถกำหนดใช้เป็น RGB ได้เช่น Me.TextBox.BackColor = RGB(255, 255, 255) เป็นต้น

ดังนั้นการที่จะนำโค้ดสีที่เป็น Hex มาใช้ได้ก็ต้องแปลงให้กลายไปเป็น RGB ก่อนด้วย Module ตัวอย่างของท่านปิ่นณรงค์
หรือ > https://stackoverflow.com/questions/40588470/setting-access-colour-codes-in-vba/50523021#50523021 link
โค๊ด: [Select]
Public Function Color_Hex_To_Long(strColor As String) As Long
    Dim iRed As Integer
    Dim iGreen As Integer
    Dim iBlue As Integer

    strColor = Replace(strColor, "#", "")
    strColor = Right("000000" & strColor, 6)
    iBlue = Val("&H" & Mid(strColor, 1, 2))
    iGreen = Val("&H" & Mid(strColor, 3, 2))
    iRed = Val("&H" & Mid(strColor, 5, 2))

    Color_Hex_To_Long = RGB(iRed, iGreen, iBlue)
End Function

หรือ > https://stackoverflow.com/questions/51292169/how-to-set-background-of-a-form-to-a-hexidecimal-color-in-ms-access-vba link
ซึ่งวิธีนี้สามารถแปลงออกมาได้เลยไม่ต้องใช้โมดูล ผมจึงขอนำไฟล์ตัวอย่างของท่านปิ่นณรงค์มาทดสอบได้ผลตามไฟล์ตัวอย่างครับ
โค๊ด: [Select]
Me.Detail.BackColor = RGB("&H" & Left$(s, 2), _
                          "&H" & Mid$(s, 3, 2), _
                          "&H" & Right$(s, 2))
โค๊ด: [Select]
Me.Detail.BackColor = "&H" & Right$(s, 2) & Mid$(s, 3, 2) & Left$(s, 2)
โพสต์นี้ได้รับคำขอบคุณจาก: สันติสุข

10
ขอเพิ่มเติมอีกวิธีนะครับ


ที่ Module ใส่โค้ดนี้เข้าไป
โค๊ด: [Select]
Function MyHexColor(ByVal StrHex)
 
    If Len(StrHex) = 7 Then StrHex = Mid(StrHex, 2, 6)
    If Len(StrHex) = 6 Then

        num_array = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f")
        char1 = LCase(Mid(StrHex, 1, 1))
        char2 = LCase(Mid(StrHex, 2, 1))
        char3 = LCase(Mid(StrHex, 3, 1))
        char4 = LCase(Mid(StrHex, 4, 1))
        char5 = LCase(Mid(StrHex, 5, 1))
        char6 = LCase(Mid(StrHex, 6, 1))
        For i = 0 To 15
            If (char1 = num_array(i)) Then position1 = i
            If (char2 = num_array(i)) Then position2 = i
            If (char3 = num_array(i)) Then position3 = i
            If (char4 = num_array(i)) Then position4 = i
            If (char5 = num_array(i)) Then position5 = i
            If (char6 = num_array(i)) Then position6 = i
        Next
        If IsEmpty(position1) Or IsEmpty(position2) Or IsEmpty(position3) Or IsEmpty(position4) Or IsEmpty(position5) Or IsEmpty(position6) Then
            MyHexColor = -1
        Else
            MyHexColor = RGB(position1 * 16 + position2, position3 * 16 + position4, position5 * 16 + position6)
        End If
    Else
        MyHexColor = -1
    End If
End Function

ที่ฟอร์มกำหนดค่า ในส่วนของ Detail
โค๊ด: [Select]
Private Sub รายละเอียด_Paint()
If Not IsNull(Me.HEX) Then
    Me.COLOR.BackColor = MyHexColor(HEX)
    Else
    Me.COLOR.BackColor = MyHexColor("#FFFFFF")
 End If
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: สันติสุข

11
ลองเล่นๆ การส่ง line notify ส่งข้อความ รูปภาพด้วย VBA ไปเจอบทความดีดี ที่นี่เลยเอามาลองเล่นครับ

ขอขอบคุณแหล่งที่มา :
http://white5168.blogspot.com/2017/01/line-notify-6-line-notify.html#.XHvsT4gzbIV link
โพสต์นี้ได้รับคำขอบคุณจาก: สันติสุข

12
ด้วยตัว MS Access ไม่น่าจะอ่าน บัตรประชาชน แบบ Smart card ได้โดยตรง  ต้องใช้โปรแกรมอื่น อ่านก่อน อาทิของ  Siam-ID (อย่างที่ คุณ TTT บอกหรือ Awara Thai Smart card reader ซึ่ง พัฒนาโดยคนไทย และให้ใช้ ฟรี  โดยเฉพาะของ  Siam-ID แนะนำเพิ่มเติมได้ และพัฒนาให้ด้วย ครับ   เมื่อใช้โปรแกรมดังกล่าวแล้ว จะได้ ข้อมูลมา เป็น Text file หรือ XML File และ ไฟล์ รูปภาพ จากบัตรประชาชน  แล้วจึง นำข้อมูลที่ได้จากเครื่องอ่านบัตรสมาร์ทการ์ด เข้ามาในฐานข้อมูล MS ACCESS อีกครั้งนึง  แล้วที่นี้เราก็มาปรับเปลี่ยนหรือพัฒนาเอาเองตามใจชอบ.....ผมไฟล์ที่ผมเขียนใช้งานอยู่ครับ (MS Access+Awara Thai Smart card reader) และนำเข้าข้อมูล XML ที่อ่านได้จาก Awara Thai Smart card reader  เข้ามาใน ฐาน Access ครับ  ถ้าต้องการได้ไฟล์ตัวอย่างแจ้ง E-Mail  ไว้ครับ เดี๋ยวผมส่งไปให้ลองศึกษาดูครับ....
โพสต์นี้ได้รับคำขอบคุณจาก: สันติสุข

13
แนะนำให้โหลดโปรแกรม Siam-ID มาติดตั้งนะครับ เป็นฟรีแวร์โปรแกรมในตำนานโปรแกรมเดียวของไทยที่ฟรี และใช้โหมด Fill From จากนั้นก็สร้างฟิลด์บนตาราง MS Access ให้ตรงกับที่ตั้งค่าไว้ในโปรแกรม Siam-ID
การใช้งานคือเมื่อเปิดโปรแกรม Siam-ID ในโหมด Fill from แล้ว เราก็เปิดใช้งานโปรแกรมอะไรก็ได้ในที่นี่ก็คือ MS Access จากนั้นก็คลิ๊กเคอร์เซอร์ไปที่ฟิลด์แรกที่เราต้องการบันทึกรอไว้ก่อน แล้วเราก็เสียบบัตรประชาชนเข้าเครื่องอ่านบัตร โปรแกรม Siam-ID ก็จะทำการ SendKey เหมือนกับการใส่คำในคีย์บอร์ดทีละหัวข้อลงไปในฟิลด์ของ MS Access ที่เราโฟกัสไว้ทีละฟิลด์ไปเรื่อยๆ จนครบ ส่วนรูปให้สร้างฟิลด์ใน MS Access เป็น OLE Object มันจะรองรับไฟล์รูปบัตรลงในฟิลด์ได้เลยครับ
ปล. หากไม่เข้าใจอยากลองก่อน ให้ลองกับ MS Excel ก่อนได้ครับ โดยเปิดโปรแกรม MS Excel ขึ้นมา แล้วเสียบบัตรอ่านดู ก็จะเห็นการทำงานของโปรแกรม Siam-ID ในโหมด Fill From เองครับ
หรืออีกวิธีอันนี้จะยากหน่อยคือ ในโปรแกรม Siam-ID เมื่อเราทำการอ่านบัตร โปรแกรมจะสร้างไฟล์ที่เป็น Text ไฟล์ และ รูปที่เป็น Jpg ไว้ในโฟลเดอร์ Siam-ID ที่ Document เราสามารถเขียนโค้ดให้ MS Access อ่าน Text ไฟล์นั้น แล้วบันทึกลงบนฟิลด์ได้ แต่จะมีปัญหาที่ผมเคยเจออย่างนึงคือมันจะอ่านภาษาไทยไม่ได้ อันนี้ต้องใช้วิธีแก้กันหลายขั้นตอนอยู่ ส่วนรูปก็เซฟจากโฟลเดอร์ Document\Siam-ID มาใช้งานได้เลย เป็นอีกทางเลือกลองไปปรับใช้งานดูครับ เป็นไอเดีย
โพสต์นี้ได้รับคำขอบคุณจาก: สันติสุข

14
วิเคราะห์เหตุการณ์โจรไซเบอร์ปล้นเงิน 10 ล้านบาทด้วยมัลแวร์

https://www.catcyfence.com/it-security/article/analysis-of-cyber-crooks-use-malware-robbing-10-mb/?fbclid=IwAR3ykbcbvMGVDz73pVAARPoOdvGwO5X7yzAFEBN_EzrR8bZm6HE6tXvyNEI link
โพสต์นี้ได้รับคำขอบคุณจาก: สันติสุข

15
ที่ฟิลด์นี้มี Line Feed ซ่อนอยู่ครับ ลองเปิดอยู่ที่ Text File แล้วกดลูกศรขวาไล่ไปทีละตัวอักษรดู

หลังคำว่า เม็ด ขวด จะกดแล้วไม่ไปไหน 1 เคาะ

(แก้ไข 1) ปล. ไม่แน่ใจว่าเป็น Line Feed หรือ Zero Space นะครับ หาเอง

(แก้ไข 2) มันคือ Line Feed
โพสต์นี้ได้รับคำขอบคุณจาก: สันติสุข

16


นาฬิการแบบเข็มจาก MS Access ครับ

ต้องขออภัยผู้จัดทำผมโหลดมานานจำไม่ได้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: สันติสุข

หน้า: [1] 2