แสดงกระทู้

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 - sjs

หน้า: 1 2 3 4 [5] 6 7
73
นำไปใช้ การลงข้อมูล ชื่อ - ที่อยู่ลูกค้า ครับ

ไฟล์ตัวอย่างใช้ Combo box หลายตัว แต่ล่ะตัวแบ่งส่วนกันไป(ID,ชื่อ,ที่อยู่,...)โดยเมื่อเลือกแล้วจะส่งค่าที่อยู่ในชุดเดียวกันนั้นกลับไปยังส่วนอื่นๆด้วย :yuush:
โค๊ด: [Select]
Private Sub Cus_ID_Click()
        Cus_Tax_ID.Value = Cus_ID.Column(9)
        Cus_Name.Value = Cus_ID.Column(1)
        Cus_addess.Value = Cus_ID.Column(2) & "  " & Cus_ID.Column(3) & Cus_ID.Column(4) & "  " & Cus_ID.Column(5) & "  " & Cus_ID.Column(6) & Cus_ID.Column(7) & "  " & Cus_ID.Column(8) '& "."
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: sjs

74
นำไปใช้ การลงข้อมูล ชื่อ - ที่อยู่ลูกค้า ครับ 
โพสต์นี้ได้รับคำขอบคุณจาก: sjs

75
Combobox นิยมใช้ในการเลือกรายการหรือเลือกจากตัวเลือกที่สร้างขึ้นมามากกว่าจะใช้การ ใส่ตัวเลขนะครับ
แต่ถ้าใส่ตัวเลือก จาก ID แล้ว แสดงส่วนของ Detail ก็ว่าไปอย่าง
ถ้าเป็นการใส่ตัวเลขก็ใช้ textbox ก็ได้ เลยสงสัยว่าการนำไปใช้ๆทำอะไรครับ

เช่น
โค๊ด: [Select]
Private Sub Combo_Box_1_AfterUpdate()
If Not IsNull(Me.Combo_Box_1) Then
Me.Combo_Box_2 = Me.Combo_Box_1
Me.Combo_Box_3 = Me.Combo_Box_1
End If
End Sub



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

76
ไม่เคยทำกับเรคอร์ดจำนวนมากอย่างนี้ ได้แค่ออกแนวคิดให้ แต่จะทำได้ผลจริงหรือไม่ อันนี้ไม่ทราบนะครับ วิธีคือต้องหาทางสร้างคิวรี่เพื่อให้ได้เรคอร์ดทีละล้านเรคอร์ดก่อน แล้วใช้ CopyFromRecordset method ของ Range object จาก Excel object https://docs.microsoft.com/en-us/office/vba/api/excel.range.copyfromrecordset เพื่อดึงข้อมูลจำนวนมากเข้าชีท แล้วก็เปิดชีทใหม่ วนทำกับคิวรี่ตัวต่อไปจนหมดครับ
โพสต์นี้ได้รับคำขอบคุณจาก: sjs

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

78
เราเอา code ไปใส่ใน module ได้ไหมครับ  เพราะทุกฟอร์มที่เปิดจะ เปิดใช้เหมือนกัน  จะได้ไม่ต้องไใส่ใน form load   ของ property
ท่านไปกำหนดของแต่ละฟอร์ม ก่อนเรียก Function มาใช้นะครับ


ที่ Module

โค๊ด: [Select]
Public Function MyKeyCode(KeyCode As Integer, Shift As Integer) As Integer
    Select Case KeyCode
        Case vbKeyF1
            MyKeyCode = 0
         MsgBox "F2 = Previous Record" & vbCrLf & "F3 = Next Record" & vbCrLf & _
         "F4 = Save Record" & vbCrLf & "F8 = Open Reports" & vbCrLf & _
         "F10 = Save And Exit", vbInformation + vbSystemModal, "HELP"
         
         Case vbKeyF2
            MyKeyCode = 0
             On Error Resume Next
             DoCmd.GoToRecord , , acPrevious
           
         Case vbKeyF3
            MyKeyCode = 0
            On Error Resume Next
            DoCmd.GoToRecord , , acNext
       
          Case vbKeyF4
            MyKeyCode = 0
            DoCmd.RunCommand acCmdSaveRecord
           
            Case vbKeyF8
            MyKeyCode = 0
            DoCmd.OpenReport "Report1", acViewNormal
         
             Case vbKeyF10
                DoCmd.Close , , acSaveYes
       
        Case Else
            MyKeyCode = KeyCode
    End Select
End Function

ที่ฟอร์มแต่ละฟอร์ม Event Keydown เอาโค้ดนี้ไปวางไว้ได้เลย
โค๊ด: [Select]
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
KeyCode = MyKeyCode(KeyCode, Shift)
End Sub

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

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

80
ดันขึ้นบนหน่อย ขอความช่วยเหลืแอแสดงความคิดเห็นกันด้วยนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: sjs

81
สวัสดีชาว ms access ทุกท่านครับ เผลอแปปเดียวเว็บบอร์ดใหม่แห่งนี้ก็เปิดมาได้ปีกว่าล่ะ :grin:


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

1.เปิดห้องให้สามารถลงโฆษณาได้แยกต่างหากไปดีหรือไม่
2.หากมี Banner ข้างบน(ตามรูปตัวอย่าง)เพื่อเป็นรายได้ในการดูแลรักษาเว็บท่านคิดเห็นเช่นไร


*กดโหวตหรือตอบกระทู้แสดงความคิดเห็นมากันได้เลยนะครับ
ปล.ก่อนหน้าได้ท่าน OddyWriter ใจบุญนำหนังสือมาขายเพื่อเว็บนะ  :meaw:
โพสต์นี้ได้รับคำขอบคุณจาก: sjs

82
ผมทำ report invoice โดยเชื่อมโยงจาก quiry และทุกครั้งต้องถามเลขที่บิล มีวิธีใดทางลัด ป้อนข้อมูลในฟอร์มขาย สั่งพิมพ์บิลได้เลย ขอคำแนะนำครับ
report invoice เชื่อมโยงจาก Query อยู่แล้วมี Field เก็บเลขที่บิลอยู่แล้ว
ก็ไปกำหนด Criteria ใน Query Field ที่เก็บเลขที่บิล
=Forms![ชื่อฟอร์ม]!txt_Bill
เท่านี้เวลาเปิดรายงานก็จะแสดงข้อมูลที่มีเลขที่บิลนั้นขึ้นมาคับ

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

83
ที่จริงฟอร์ม ต้นฉบับหรือ ฟอร์มสำเนา ไม่ต้องเปิดขึ้นมาเพื่อจะพิมพ์ก็ได้คับ
ผมสมมุติ ฟอร์มต้นฉบับชื่อ Frm_original
           ฟอร์มสำเนาชื่อ Frm_Copy

คำสั่งที่จะนำไปวางที่ Event ที่ต้องการคือ
โค๊ด: [Select]
Private Sub BtnPrint_Click()

    DoCmd.SelectObject acForm, “Frm_original”, True
    DoCmd.PrintOut , , , , 1
    DoCmd.SelectObject acForm, “Frm_Copy”, True
    DoCmd.PrintOut , , , , 1

End Sub
เท่านี้ก็จะทำการปริ้น ทั้ง 2 ฟอร์ม โดยไม่ต้องเปิดฟอร์มขึ้นมาก็ได้คับ
หมายเหตุ ตรง DoCmd.PrintOut , , , , 1  การกำหนดจำนวนว่าจะปริ้นกี่แผ่นนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: sjs

84
มันคือ Arrays หรือเปล่าครับหรือ
https://docs.microsoft.com/en-us/office/vba/language/concepts/getting-started/using-arrays

เพิ่มเติมว่า ควรจะใช้ dynamic array ที่เป็นของ User Defined Type ที่มี 2 element คือ element ของ string เพื่อเก็บชื่อที่ใช้อ้างอิง และ element ของ variant ที่เอาไว้เก็บค่า 

' การกำหนด Type ให้ใส่ไว้ในส่วนของ Module Declaration
Public Type DynamicVar
   Name As String
   Value As Variant
End Type

' การสร้าง element เพิ่มเติมให้ dynamic array  ให้ใส่ไว้ในส่วนของโค้ดที่ต้องการ
Dim DV( ) As DynamicVar
Dim N As Integer

N = Ubound(DV) + 1     ' หา element สูงสุดของ dynamic array
Redim Preserved DV(N)    ' สร้าง element เพิ่มเติม
DV(N).Name = "ชื่อที่ต้องการ"   ' ใส่ชื่อ
DV(N).Value = ค่าที่ต้องการ      ' ใส่ค่า

ส่วนตอนค้นหา ก็ไปวนอ่านเอาว่า DV ตัวที่เท่าไหร่ (X) ที่มี .Name เท่ากับชื่อที่ต้องการ ก็จะได้ค่าจาก DV(X).Value ครับ

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

85
ใช้งานได้ดีมาก ผมนำมาประยุกต์ให้แจ้งเตือนโดยการประมวลผลจากฐานข้อมูล เมื่อถึงเวลาที่กำหนด ทำงานแบบ real time
 
โพสต์นี้ได้รับคำขอบคุณจาก: sjs

86
แนะแนวทาง วิธีการพิมพ์หรือโพสต์ลิ้งเว็บไซด์ต่างๆ :meaw:
(ควรอ่านก่อนโพสต์ลิ้ง --> • กฎกติกาบอร์ดเรียนรู้ Access สำหรับคนไทย •)

แบบที่1. คัดลอกมาใส่แบบก็อบว่างเลย เช่น https://www.thai-access.com/index.php

แบบที่2. ทำเป็นข้อความ+ไฮเปอร์ลิงค์(มีให้ใช้บนแถบเครื่องมือ)หรือก็คือเป็นการใช้ชุดคำสั่ง url มาทำเช่น บอร์ดเรียนรู้ Access สำหรับคนไทย

โค๊ด: [Select]

[url = "ที่อยู่เว็บ"] ข้อความหรือชื่อเว็บที่ต้องการให้แสดงออกมา [/url]

[url=https://www.thai-access.com/index.php]  บอร์ดเรียนรู้ Access สำหรับคนไทย  [/url]


ทีนี้ประเด็นมันมีอยู่ว่า"เมื่อที่อยู่เว็บที่คุณไปก็อบมามีภาษาอื่นผสม"

ตัวอย่างลิ้งในกระทู้ "MS Access ส่ง Line notify ข้อความ รูปภาพ" ของคุณ Thanayu
เดิม--> https://medium.com/linedevth/ไม่พลาดทุกการสื่อสารกับผู้ใช้บริการของคุณ-ด้วยระบบแจ้งเตือนผ่าน-line-notify-a4f8c41cf633

แก้ไขด้วยการใส่ [ url ] [ /url ] หรือถ้าอธิบายอีกแบบก็คือ
- ก็อบลิ้งมาวางในโพสต์
- เม้าลากแถบดำที่ลิ้งเว็บทั้งหมด
- กดที่ บนแถบเครื่องมือ
= สิ่งที่ได้ --> https://medium.com/linedevth/ไม่พลาดทุกการสื่อสารกับผู้ใช้บริการของคุณ-ด้วยระบบแจ้งเตือนผ่าน-line-notify-a4f8c41cf633

*เอ๋ทำไมภาษาไทยได้อ่ะ ไหงเราไปก็อบมาวางแล้วมันเป็นแบบนี้อ่ะ
โค๊ด: [Select]
https://medium.com/linedevth/%E0%B9%84%E0%B8%A1%E0%B9%88%E0%B8%9E%E0%B8%A5%E0%B8%B2%E0%B8%94%E0%B8%97%E0%B8%B8%E0%B8%81%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AA%E0%B8%B7%E0%B9%88%E0%B8%AD%E0%B8%AA%E0%B8%B2%E0%B8%A3%E0%B8%81%E0%B8%B1%E0%B8%9A%E0%B8%9C%E0%B8%B9%E0%B9%89%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%9A%E0%B8%A3%E0%B8%B4%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%82%E0%B8%AD%E0%B8%87%E0%B8%84%E0%B8%B8%E0%B8%93-%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2%E0%B8%A3%E0%B8%B0%E0%B8%9A%E0%B8%9A%E0%B9%81%E0%B8%88%E0%B9%89%E0%B8%87%E0%B9%80%E0%B8%95%E0%B8%B7%E0%B8%AD%E0%B8%99%E0%B8%9C%E0%B9%88%E0%B8%B2%E0%B8%99-line-notify-a4f8c41cf633
หนึ่งวิธีให้ก็อบลิ้งมาแล้วยังคงแสดงภาษาไทยอยู่นั้นคือให้ก็อบมาเป็นช่วงๆ ตัวอย่าง
- ก็อบสุดที่เครื่องหมาย "/" อันสุดท้ายก่อนถึงภาษาไทย เช่น https ://medium.com/linedevth/
- ก็อบลิ้งต่อจาก "/" เมื่อกี้มาวางต่อ เช่น ไม่พลาดทุกการสื่อสารกับผู้ใช้บริการของคุณ-ด้วยระบบแจ้งเตือนผ่าน-line-notify-a4f8c41cf633
เท่ากับว่าจะได้เป็น --> https ://medium.com/linedevth/ไม่พลาดทุกการสื่อสารกับผู้ใช้บริการของคุณ-ด้วยระบบแจ้งเตือนผ่าน-line-notify-a4f8c41cf633
โพสต์นี้ได้รับคำขอบคุณจาก: sjs

87
ขอบคุณมากๆครับ   เมื่อกี้เจอบทความดีๆมาครับ https://medium.com/linedevth/ไม่พลาดทุกการสื่อสารกับผู้ใช้บริการของคุณ-ด้วยระบบแจ้งเตือนผ่าน-line-notify-a4f8c41cf633
โพสต์นี้ได้รับคำขอบคุณจาก: sjs

88
มีแบบส่งรายบุคคลมั้ยครับพี่

คือถ้าจะส่งไปคนไหน คนนั้นก็จะต้อง Generate token แล้วนำรหัส token มาให้เรา เราถึงจะส่งให้คนนั้นได้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: sjs

89
ถ้าจะป้องกันการกดคีย์ภาษาไทยลงเท็กซ์บ็อกซ์ ก็ใส่โค้ดนี้ไว้ใน KeyPress event procedure
โค๊ด: [Select]
Private Sub xxx_KeyPress(KeyAscii As Integer)
    If KeyAscii >= 3585 And KeyAscii <= 3675 Then KeyAscii = 0
End Sub

ถ้าต้องการตรวจสอบว่ามีภาษาไทยอยู่ในเท็กซ์บ็อกซ์หรือไม่ ก็ใช้โค้ดนี้ครับ
โค๊ด: [Select]
    Dim i As Integer
    Dim c As String
   
    For i = 1 To Len(Me.Text2)
        c = Mid$(Me.Text2, i, 1)
        If AscW(c) >= 3585 And AscW(c) <= 3675 Then
            MsgBox "Found"
            Exit Sub
        End If
    Next i
โพสต์นี้ได้รับคำขอบคุณจาก: sjs

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

ดังนั้นการที่จะนำโค้ดสีที่เป็น Hex มาใช้ได้ก็ต้องแปลงให้กลายไปเป็น RGB ก่อนด้วย Module ตัวอย่างของท่านปิ่นณรงค์
หรือ > https://stackoverflow.com/questions/40588470/setting-access-colour-codes-in-vba/50523021#50523021
โค๊ด: [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
ซึ่งวิธีนี้สามารถแปลงออกมาได้เลยไม่ต้องใช้โมดูล ผมจึงขอนำไฟล์ตัวอย่างของท่านปิ่นณรงค์มาทดสอบได้ผลตามไฟล์ตัวอย่างครับ
โค๊ด: [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)
โพสต์นี้ได้รับคำขอบคุณจาก: sjs

หน้า: 1 2 3 4 [5] 6 7