:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

เอาชื่อคน และชื่อฟิลด์ ที่ Loop ได้ของคนๆนั้น แสดงขึ้น Line Notify

Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่างเพิ่มเติม)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่

Post a reply


This question is a means of preventing automated form submissions by spambots.
Smilies
:D :thup: :cp: :flw: :rz: :sg: :tt: :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :ard: :arl: :aru: :| :mrgreen: :geek: :ugeek:

BBCode is ON
[img] is ON
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: เอาชื่อคน และชื่อฟิลด์ ที่ Loop ได้ของคนๆนั้น แสดงขึ้น Line Notify

Re: เอาชื่อคน และชื่อฟิลด์ ที่ Loop ได้ของคนๆนั้น แสดงขึ้น Line Notify

#16

by Jetnipit » Thu Dec 02, 2021 11:32 am

ครับผม ขอบคุณครับ

Re: เอาชื่อคน และชื่อฟิลด์ ที่ Loop ได้ของคนๆนั้น แสดงขึ้น Line Notify

#15

by snasui » Thu Dec 02, 2021 11:26 am

:D กรุณาอ่านทบทวนสิ่งที่ยกมา ผมเขียนไปครอบคลุมแล้วครับ

Re: เอาชื่อคน และชื่อฟิลด์ ที่ Loop ได้ของคนๆนั้น แสดงขึ้น Line Notify

#14

by Jetnipit » Thu Dec 02, 2021 11:15 am

snasui wrote: Thu Dec 02, 2021 11:11 am :D ก็ต้องหาชื่อ Field ที่มันตรงกับ Expire มันอาจจะมี Filed ที่ลงท้ายด้วย E หลาย Filed ก็อาจจะเป็นได้ อาจจะต้องตัดมาหลายอักขระแทนตัว E อักขระเดียว ฯลฯ ครับ
ยังไม่ค่อยเข้าใจครับ รบกวนอธิบายใหม่ได้ไหมครับ

Re: เอาชื่อคน และชื่อฟิลด์ ที่ Loop ได้ของคนๆนั้น แสดงขึ้น Line Notify

#13

by snasui » Thu Dec 02, 2021 11:11 am

:D ก็ต้องหาชื่อ Field ที่มันตรงกับ Expire มันอาจจะมี Filed ที่ลงท้ายด้วย E หลาย Filed ก็อาจจะเป็นได้ อาจจะต้องตัดมาหลายอักขระแทนตัว E อักขระเดียว ฯลฯ ครับ

Re: เอาชื่อคน และชื่อฟิลด์ ที่ Loop ได้ของคนๆนั้น แสดงขึ้น Line Notify

#12

by Jetnipit » Thu Dec 02, 2021 11:05 am

ตัวแปร strExpireDate มันออกคำว่า Expire แทนอะครับ แทนที่จะออกเป็นวันที่ครับ
เหมือนมันเก็บ Value ฟิลด์ข้างขวาของฟิลด์ที่ลงท้ายด้วย E แทนครับ

โค้ดแสดงข้อความครับ

Code: Select all

    'Line Message
strMessage = "message=*Expired*" & vbNewLine & "Name : " & strUser & vbNewLine & "EXP : " & strExpireDate & vbNewLine & "Site : " & Site & vbNewLine & "Company : PTT "
Attachments
ตรง EXP ครับที่จะให้แสดงวันที่
ตรง EXP ครับที่จะให้แสดงวันที่
261700844_429517312005453_8761532044057081881_n.jpg (31.44 KiB) Viewed 49 times
Table
Table
9784848.png (47.63 KiB) Viewed 49 times

Re: เอาชื่อคน และชื่อฟิลด์ ที่ Loop ได้ของคนๆนั้น แสดงขึ้น Line Notify

#11

by snasui » Thu Dec 02, 2021 9:59 am

Jetnipit wrote: Tue Nov 30, 2021 9:52 am ต้องการให้ Line แสดงวันที่หมดอายุ (ฟิลด์ที่ลงท้ายด้วยตัว E)
:D ตัวอย่างการดักจับ Field ที่ลงท้ายด้วย E ครับ

Code: Select all

'Other code
For Each fld In rsLive.Fields
'Other code
    If Right(fld.Name,1) = "E" Then
        strExpireDate = fld.Value
    End If
'Other code

Re: เอาชื่อคน และชื่อฟิลด์ ที่ Loop ได้ของคนๆนั้น แสดงขึ้น Line Notify

#10

by Jetnipit » Wed Dec 01, 2021 7:46 am

Code: Select all

Dim rsLive As Recordset
Dim fld As Field
Dim Name As String
Dim Db As Database
Dim oXML As Object
Dim strToken As String
Dim strMessage As String
Dim strDate As String
Dim URL As String
Dim Site As String
Dim count As Integer
Dim strUser As String
Dim strExpireDate As String
Set Db = CurrentDb()
Set rsLive = Db.OpenRecordset("Query1")
count = 0


While Not rsLive.EOF
    For Each fld In rsLive.Fields
        If fld.Name = "Name" Then
            strUser = fld.Value
            End If
            If fld.Name = "*E" Then
                strExpireDate = fld.Value
                    End If
                If fld.Name Like "S*" Then
                    If fld & "" = "Expire" Then
                    Site = fld.Name
                    count = count + 1
                            
                            
                                                    If count > 0 Then
                                    
                                                                    'Line Notify Token
                                                                    strToken = "ZrbMsogrStOtPH5RGH46CORbjWldrut9A8ahOuE3Vf2"
                                                                    URL = "https://notify-api.line.me/api/notify"
                                                                    strDate = Format(Now, "DD/MM/YYYY - HH:MM:SS")
                                                    
                                                                    'Line Message
                                                                    strMessage = "message=*Expired*" & vbNewLine & "Name : " & strUser & vbNewLine & "EXP : " & strExpireDate & vbNewLine & "Site : " & Site & vbNewLine & "Company : PTT "
                                                    
                                                                    'Ajax
                                                                    Set oXML = CreateObject("Microsoft.XMLHTTP")
                                                                    With oXML
                                                                    'Line Post
                                                                    .Open "POST", URL, 0
                                                    
                                                                    'Header
                                                                    .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
                                                                    .SetRequestHeader "Authorization", "Bearer " & strToken
                                                                    
                                                                    'Ajax
                                                                    .send (strMessage)
                                                                    
                                                                    'Line Check Print
                                                                    Debug.Print oXML.responseText
                                                                    End With
                                                                    
                                                                    'Line
                                                                    Set oXML = Nothing
                                                                    
                                                                    End If
                                    
                    ElseIf fld & "" = "Close" Then
                    Site = fld.Name
                    count = count + 1
                            
                            
                                                    If count > 0 Then
                                    
                                                                    'Line Notify Token
                                                                    strToken = "ZrbMsogrStOtPH5RGH46CORbjWldrut9A8ahOuE3Vf2"
                                                                    URL = "https://notify-api.line.me/api/notify"
                                                                    strDate = Format(Now, "DD/MM/YYYY - HH:MM:SS")
                                                    
                                                                    'Line Message
                                                                    strMessage = "message=*Close*" & vbNewLine & "Name : " & strUser & vbNewLine & "EXP : " & strExpireDate & vbNewLine & "Site : " & Site & vbNewLine & "Company : PTT "
                                                    
                                                                    'Ajax
                                                                    Set oXML = CreateObject("Microsoft.XMLHTTP")
                                                                    With oXML
                                                                    'Line Post
                                                                    .Open "POST", URL, 0
                                                    
                                                                    'Header
                                                                    .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
                                                                    .SetRequestHeader "Authorization", "Bearer " & strToken
                                                                    
                                                                    'Ajax
                                                                    .send (strMessage)
                                                                    
                                                                    'Line Check Print
                                                                    Debug.Print oXML.responseText
                                                                    End With
                                                                    
                                                                    'Line
                                                                    Set oXML = Nothing
                                                                    
                                                                    End If
                                    
                                    
                    
                                            
                     End If
                 End If
    Next
    rsLive.MoveNext
Wend

rsLive.Close
Set rsLive = Nothing
Db.Close
Set Db = Nothing

        If count = 0 Then
                                
                'Line Notify Token
                 strToken = "ZrbMsogrStOtPH5RGH46CORbjWldrut9A8ahOuE3Vf2"
                                       
                 URL = "https://notify-api.line.me/api/notify"
                                       
                                       
                 strDate = Format(Now, "DD/MM/YYYY - HH:MM:SS")
                                        
                                        
                'Line Message
                strMessage = "message= No Expire"
                
                'Ajax
                Set oXML = CreateObject("Microsoft.XMLHTTP")
                With oXML
                'Line Post
                .Open "POST", URL, 0
                
                'Header
                .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
                .SetRequestHeader "Authorization", "Bearer " & strToken
                
                'Ajax
                .send (strMessage)
                
                'Line Check Print
                Debug.Print oXML.responseText
                End With
                
                'Line
                 Set oXML = Nothing
        End If

'Me.Text13 = " & count & "
End Sub

Re: เอาชื่อคน และชื่อฟิลด์ ที่ Loop ได้ของคนๆนั้น แสดงขึ้น Line Notify

#9

by snasui » Tue Nov 30, 2021 7:56 pm

Jetnipit wrote: Tue Nov 30, 2021 9:52 am ผมต้องการให้ Line แสดงวันที่หมดอายุ (ฟิลด์ที่ลงท้ายด้วยตัว E) ของคนนั้นๆด้วยในหัวข้อ EXP ครับ
เบื้องต้นลองใช้โค้ดแบบ Name เหมือนข้อมูลไม่เข้าครับ ไม่ทราบว่าปัญหาอยู่ที่อะไรหรอครับ
:D โพสต์ Code ทั้งหมดหลังจากปรับมาแล้วด้วยจะได้ช่วยทดสอบให้ได้ครับ

Re: เอาชื่อคน และชื่อฟิลด์ ที่ Loop ได้ของคนๆนั้น แสดงขึ้น Line Notify

#8

by Jetnipit » Tue Nov 30, 2021 9:52 am

ขอสอบถามเพิ่มเติมครับ ผมต้องการให้ Line แสดงวันที่หมดอายุ (ฟิลด์ที่ลงท้ายด้วยตัว E) ของคนนั้นๆด้วยในหัวข้อ EXP ครับ
เบื้องต้นลองใช้โค้ดแบบ Name เหมือนข้อมูลไม่เข้าครับ ไม่ทราบว่าปัญหาอยู่ที่อะไรหรอครับ

Code: Select all

While Not rsLive.EOF
    For Each fld In rsLive.Fields
        If fld.Name = "Name" Then
            strUser = fld.Value
            End If
            If fld.Name = "*E" Then
                strExpireDate = fld.Value
                    End If
                If fld.Name Like "S*" Then
                    If fld & "" = "Expire" Then
                    Site = fld.Name
                    count = count + 1
                            
                            
                                                    If count > 0 Then
                                    
                                                                    'Line Notify Token
                                                                    strToken = "ZrbMsogrStOtPH5RGH46CORbjWldrut9A8ahOuE3Vf2"
                                                                    URL = "https://notify-api.line.me/api/notify"

Attachments
260116840_320066716621933_5187046783304020103_n.jpg
260116840_320066716621933_5187046783304020103_n.jpg (33.01 KiB) Viewed 72 times
1897415.png
1897415.png (24.24 KiB) Viewed 70 times

Re: เอาชื่อคน และชื่อฟิลด์ ที่ Loop ได้ของคนๆนั้น แสดงขึ้น Line Notify

#7

by Jetnipit » Fri Nov 26, 2021 1:25 pm

ขอบคุณสำหรับแนวทางครับ ได้แล้วครับตอนนี้ :D :D :D

Code: Select all

Private Sub Form_Load()
Dim rsLive As Recordset
Dim fld As Field
Dim Name As String
Dim Db As Database
Dim oXML As Object
Dim strToken As String
Dim strMessage As String
Dim strDate As String
Dim URL As String
Dim Site As String
Dim count As Integer
Dim strUser As String
Set Db = CurrentDb()
Set rsLive = Db.OpenRecordset("Query1")
count = 0


While Not rsLive.EOF
    For Each fld In rsLive.Fields
        If fld.Name = "Name" Then
            strUser = fld.Value
            End If
                If fld.Name Like "S*" Then
                    If fld & "" = "Expire" Then
                    Site = fld.Name
                    count = count + 1
                            
                            
                                                    If count > 0 Then
                                    
                                                                    'Line Notify Token
                                                                    strToken = "ZrbMsogrStOtPH5RGH46CORbjWldrut9A8ahOuE3Vf2"
                                                                    URL = "https://notify-api.line.me/api/notify"
                                                                    strDate = Format(Now, "DD/MM/YYYY - HH:MM:SS")
                                                    
                                                                    'Line Message
                                                                    strMessage = "message=" & vbNewLine & "Name : " & strUser & vbNewLine & "Site : " & Site & vbNewLine & "Company : PTT "
                                                    
                                                                    'Ajax
                                                                    Set oXML = CreateObject("Microsoft.XMLHTTP")
                                                                    With oXML
                                                                    'Line Post
                                                                    .Open "POST", URL, 0
                                                    
                                                                    'Header
                                                                    .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
                                                                    .SetRequestHeader "Authorization", "Bearer " & strToken
                                                                    
                                                                    'Ajax
                                                                    .send (strMessage)
                                                                    
                                                                    'Line Check Print
                                                                    Debug.Print oXML.responseText
                                                                    End With
                                                                    
                                                                    'Line
                                                                    Set oXML = Nothing
                                                                    
                                                                    End If
                                                                    
                                            
                     End If
                 End If
    Next
    rsLive.MoveNext
Wend

rsLive.Close
Set rsLive = Nothing
Db.Close
Set Db = Nothing

        If count = 0 Then
                                
                'Line Notify Token
                 strToken = "ZrbMsogrStOtPH5RGH46CORbjWldrut9A8ahOuE3Vf2"
                                       
                 URL = "https://notify-api.line.me/api/notify"
                                       
                                       
                 strDate = Format(Now, "DD/MM/YYYY - HH:MM:SS")
                                        
                                        
                'Line Message
                strMessage = "message= No Expire"
                
                'Ajax
                Set oXML = CreateObject("Microsoft.XMLHTTP")
                With oXML
                'Line Post
                .Open "POST", URL, 0
                
                'Header
                .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
                .SetRequestHeader "Authorization", "Bearer " & strToken
                
                'Ajax
                .send (strMessage)
                
                'Line Check Print
                Debug.Print oXML.responseText
                End With
                
                'Line
                 Set oXML = Nothing
        End If

'Me.Text13 = " & count & "
End Sub

Re: เอาชื่อคน และชื่อฟิลด์ ที่ Loop ได้ของคนๆนั้น แสดงขึ้น Line Notify

#6

by snasui » Fri Nov 19, 2021 4:16 pm

Jetnipit1 wrote: Fri Nov 19, 2021 3:02 pm ผมทำ Elseif จับในกรณีที่ ไม่มีคำว่า Expire เลย
:D ค่อย ๆ ถามตอบกันไปครับ

การที่จะทราบได้ว่าไม่มีคำว่า Expire เลยตามที่แจ้งมานั้น ต้อง Loop ไปครบทุก Field ใน Record นั้นใช่หรือไม่ หากไม่ใช่ควรเขียนให้เช็คที่ Field นั้น ๆ โดยตรง จะได้ลดการ Loop เพราะรู้ชัดเจนอยู่แล้วว่าให้ตรวจสอบที่ Field ไหน

ถ้าหากต้อง Loop ให้ครบทุก Field ใน Record นั้นก่อน จะต้องมีตัวนับในการ Loop ไปแต่ละครั้ง เมื่อเจอคำว่า "Expire" ให้ทำการบวกตัวนับไปครั้งละ 1 และก่อนจะเข้า Record ลำดับถัดไปด้วย rsLive.MoveNext ให้ตรวจสอบตัวนับว่ามีค่า > 0 หรือไม่ ถ้าใช่แสดงว่าเจอคำว่า Expire จึงค่อยสั่งให้ทำงานตามที่ต้องการ จากนั้นถึงจะ rsLive.MoveNext เช่นนี้เป็นต้น

สำหรับ Field ใน RecordSet ลำดับคอลัมน์แรกคือ Fileds(0) หากต้องการตรวจสอบค่าใน Field แรก (คอลัมน์แรก) ว่ามีคำว่า "Expire" หรือไม่ หากมีให้เพิ่มค่าตัวแปร count ครั้งละ 1 สามารถใช้ Statement เป็น

if rsLive.Fields(0).value = "Expire" then count = count + 1

ซึ่งจะลดการ Loop ทุก Field ใน Record ด้วย For...Next ลงไปได้ครับ

Re: เอาชื่อคน และชื่อฟิลด์ ที่ Loop ได้ของคนๆนั้น แสดงขึ้น Line Notify

#5

by Jetnipit » Fri Nov 19, 2021 3:43 pm

ขอบคุณที่แก้ให้ครับผม ผมนึกว่าเป็น *

อันนี้โค้ด อาจจะอ่านยากนิดหน่อย ไม่มีพื้นฐานเรื่องการเรียง Code เลยครับ

Code: Select all

Private Sub Form_Load()
Dim rsLive As Recordset
Dim fld As Field
Dim Name As String
Dim Db As Database
Dim oXML As Object
Dim strToken As String
Dim strMessage As String
Dim strDate As String
Dim URL As String
Dim Site As String
Dim count As String
Dim strUser As String
Set Db = CurrentDb()
Set rsLive = Db.OpenRecordset("Query1")

count = "a"

While Not rsLive.EOF
    For Each fld In rsLive.Fields
        If fld.Name = "Name" Then
            strUser = fld.Value
        End If
        If fld.Name Like "S*" Then
            If fld & "" = "Expire" Then
            Site = fld.Name
            
                'Line Notify Token
                strToken = "ZrbMsogrStOtPH5RGH46CORbjWldrut9A8ahOuE3Vf2"
                URL = "https://notify-api.line.me/api/notify"
                strDate = Format(Now, "DD/MM/YYYY - HH:MM:SS")

                'Line Message
                strMessage = "message=" & vbNewLine & "Name : " & strUser & vbNewLine & "Site : " & Site & vbNewLine & "Company : PTT "

                'Ajax
                Set oXML = CreateObject("Microsoft.XMLHTTP")
                With oXML
                'Line Post
                .Open "POST", URL, 0

                'Header
                .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
                .SetRequestHeader "Authorization", "Bearer " & strToken

                'Ajax
                .send (strMessage)

                'Line Check Print
                Debug.Print oXML.responseText
                End With

                'Line
                Set oXML = Nothing
                count = c


                        
            ElseIf count = "a" Then
            count = "b"



                'Line Notify Token
                strToken = "ZrbMsogrStOtPH5RGH46CORbjWldrut9A8ahOuE3Vf2"
                URL = "https://notify-api.line.me/api/notify"
                strDate = Format(Now, "DD/MM/YYYY - HH:MM:SS")


                'Line Message
                strMessage = "message= No Expire"

                'Ajax
                Set oXML = CreateObject("Microsoft.XMLHTTP")
                With oXML
                'Line Post
                .Open "POST", URL, 0

                'Header
                .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
                .SetRequestHeader "Authorization", "Bearer " & strToken

                'Ajax
                .send (strMessage)

                'Line Check Print
                Debug.Print oXML.responseText
                End With

                'Line
                Set oXML = Nothing
               End If
           End If
    Next
    rsLive.MoveNext
Wend

rsLive.Close
Set rsLive = Nothing
Db.Close
Set Db = Nothing
End Sub

Re: เอาชื่อคน และชื่อฟิลด์ ที่ Loop ได้ของคนๆนั้น แสดงขึ้น Line Notify

#4

by snasui » Fri Nov 19, 2021 3:30 pm

:D คุณลงทะเบียนด้วยชื่อที่มีไม้เอกนำหน้า ผมลบไม้เอกทิ้งให้แล้วทั้งสองชื่อ

ในการ login ครั้งใหม่กรุณาคีย์ชื่อเอง ไม่ควรใช้ค่าที่ Browser จำไว้เพราะจะ login เข้าไม่ได้ครับ

ในการสอบถามปัญหาที่เป็น Code กรุณาแสดง Code นั้นในช่อง Comment นี้ด้วยจะได้สะดวกในการตรวจสอบของเพื่อนสมาชิกครับ

Re: เอาชื่อคน และชื่อฟิลด์ ที่ Loop ได้ของคนๆนั้น แสดงขึ้น Line Notify

#3

by Jetnipit1 » Fri Nov 19, 2021 3:02 pm

ขอบคุณครับผม นำไปประยุกต์ใช้ ได้ตามที่ต้องการเลยครับ

ผมรบกวนสอบถามอีกเรื่องครับ ผมทำ Elseif จับในกรณีที่ ไม่มีคำว่า Expire เลย โดยการส้ราง ตัวแปร Count มา และ Set ค่าเป็น "A" ก่อนเข้า For each และตรง Elseif count = "A" then ให้ส่งข้อความว่า No Expire และ Set count = "B" เพื่อกันการส่งซ้ำ และในท้ายสุดของ If ผมใส่ count = "C" ไว้

พอ Out put ออกมา ในกรณีที่ต้องการให้ตก If อย่างเดียว แต่มันกลับมี Elseif มาครั้งนึงทุกรอบที่ส่ง Out put เลยครับ ไม่ทราบว่าผมเข้าใจอะไรผิดหรือเปล่าครับ
Attachments
258862931_425393258964183_4723445606202852321_n.jpg
258862931_425393258964183_4723445606202852321_n.jpg (21.25 KiB) Viewed 104 times

Re: เอาชื่อคน และชื่อฟิลด์ ที่ Loop ได้ของคนๆนั้น แสดงขึ้น Line Notify

#2

by snasui » Fri Nov 19, 2021 1:57 pm

:D ตัวอย่างการปรับ Code ครับ

Code: Select all

'Other code
Dim strUser as String

Set Db = CurrentDb()
Set rsLive = Db.OpenRecordset("Query1")

While Not rsLive.EOF
    For Each fld In rsLive.Fields
        if fld.Name = "Name" Then
            strUser = fld.Value
        end if
        If fld.Name Like "S*" Then
            If fld & "" = "Expire" Then
                'Line Notify Token
                strToken = "ZrbMsogrStOtPH5RGH46CORbjWldrut9A8ahOuE3Vf2"
                URL = "https://notify-api.line.me/api/notify"
                strDate = Format(Now, "DD/MM/YYYY - HH:MM:SS")

                'Line Message
                strMessage = "message=MS Access " & strUser
'Other code

เอาชื่อคน และชื่อฟิลด์ ที่ Loop ได้ของคนๆนั้น แสดงขึ้น Line Notify

#1

by Jetnipit » Fri Nov 19, 2021 11:20 am

สวัสดีครับผมเป็นสมาชิกใหม่และมือใหม่ รบกวนขอฝากตัวด้วยครับ :D

ตอนนี้ทำ Line notify ได้แล้วครับ โดยการทำงานคือ ใครบ้างที่มี คำว่า Expire ใน Fields ที่ชื่อขึ้นต้นด้วยตัว S แล้วให้แจ้งเตือน Line notify ตอนนี้ทำให้ขึ้นแจ้งเตือนตามจำนวนคำที่โชว์ได้แล้วครับ

ปัญหาคือไม่ผมไม่ทราบว่าจะเขียน Code ยังไงให้ Line เตือนพร้อมกับบอกไปด้วยว่าใคร และ Fields ไหนตามภาพใน Out put ครับ

รบกวนอาจารย์หรือผู้รู้ชี้ทางทีครับ

Code: Select all

rivate Sub Form_Load()
Dim rsLive As Recordset
Dim fld As Field
Dim Db As Database
Dim oXML As Object
Dim strToken As String
Dim strMessage As String
Dim strDate As String
Dim URL As String

Set Db = CurrentDb()
Set rsLive = Db.OpenRecordset("Query1")

While Not rsLive.EOF
    For Each fld In rsLive.Fields
        If fld.Name Like "S*" Then
               If fld & "" = "Expire" Then

'Line Notify Token
strToken = "ZrbMsogrStOtPH5RGH46CORbjWldrut9A8ahOuE3Vf2"

URL = "https://notify-api.line.me/api/notify"


strDate = Format(Now, "DD/MM/YYYY - HH:MM:SS")


'Line Message
strMessage = "message=MS Access "

'Ajax
Set oXML = CreateObject("Microsoft.XMLHTTP")
With oXML
'Line Post
.Open "POST", URL, 0

'Header
.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.SetRequestHeader "Authorization", "Bearer " & strToken

'Ajax
.send (strMessage)

'Line Check Print
Debug.Print oXML.responseText
End With

'Line
Set oXML = Nothing
                        
                        
                        
               End If
           End If
    Next
    rsLive.MoveNext
Wend

rsLive.Close
Set rsLive = Nothing
Db.Close
Set Db = Nothing
End Sub
Attachments
ตารางที่ใช้งานครับ
ตารางที่ใช้งานครับ
9817897171.jpg (21.24 KiB) Viewed 114 times
Out put ที่ต้องการครับ(ตัวอย่าง 2 คน)
Out put ที่ต้องการครับ(ตัวอย่าง 2 คน)
v8789v89789vd7v.jpg (27.29 KiB) Viewed 114 times

Top