แสดงกระทู้

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

หน้า: [1]
1
โดยทั่วไปการจะเลือกช่วงเวลาจะใช้คำสั่ง between โดยจะต้องมีวันที่เข้าไปด้วยตามตัวอย่างของอ.สันติสุข ครับ

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

วันแรกของเดือน = DateSerial(Year(Date()), Month(Date()), 1)
วันสุดท้ายของเดือน = DateSerial(Year(Date()), Month(Date())+1, 0)
*Date() = ใช้ชื่อ TextBox แทนค่าลงไปได้
โพสต์นี้ได้รับคำขอบคุณจาก: bgfc

2
select ... from ... where ฟิลด์ between #1-sep-2019# and #31-mar-2020#
โพสต์นี้ได้รับคำขอบคุณจาก: bgfc

3
ผมเขียนด้วย 2003 32บิต รันใน 2013 64บิต
โค๊ดจะเพิ่มมาอีก เท่าตัวสำหรับการประกาศค่าตัวแปรที่จะให้เข้ากันได้
ไม่รู้ว่า 2010 32บิต จะเหมือน 2003 32บิต หรือป่าวนะครับ เช่น

#If VBA7 Then
    Private Declare PtrSafe Function GetKeyboardLayout Lib "User32" (ByVal dwLayout As LongLong) As LongLong
    Private Declare PtrSafe Function ActivateKeyboardLayout Lib "User32" (ByVal HKL As LongLong, ByVal Flags As LongLong) As LongLong
    Private Declare PtrSafe Function LoadKeyboardLayout Lib "User32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal Flags As LongLong) As LongLong
    Dim res As LongLong
#Else
    Private Declare Function GetKeyboardLayout Lib "User32" (ByVal dwLayout As Long) As Long
    Private Declare Function ActivateKeyboardLayout Lib "User32" (ByVal HKL As Long, ByVal Flags As Long) As Long
    Private Declare Function LoadKeyboardLayout Lib "User32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal Flags As Long) As Long
    Dim res As Long
#End If
โพสต์นี้ได้รับคำขอบคุณจาก: bgfc

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

เพิ่มเติมว่า ควรจะใช้ 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 ครับ

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

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

6
อันใหม่เพื่อท่านจะ ใช้ลิ้ง Youtube ในการ download ครับ
กดปุ๊บ ลิ้งดาวน์โหลดสีเขียวแสดงปั๊บ  :cool: :cool:

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

7
สวัสดีครับ
เริ่มแรกในรูปแบบผมมองออกไปเป็นแนวการเหมือนทำแบบฟอร์มกรอกที่อยู่แล้วใส่รหัสไปรษณีย์ให้อัติโนมัติ ซึ่งก็จะมีการทำเทเบิ้ลเพื่อแยกแต่ล่ะส่วน(tb_geography,tb_province,tb_amphur,tb_district)ใว้ก่อน
ดังนั้นการที่จะมีชั้นลึกเข้าไปอย่างไม่จำกัดคงจะเป็นไปไม่ได้ ยกเว้นว่าจะออกแบบให้มีเทเบิ้ลเปล่ารอใว้ก่อนตามจำนวนที่คิดว่าจะลึกเข้าไปไม่เกินนี้(และโปรแกรมรองรับด้วยอ่านะ)
โดยในแต่ล่ะเทเบิ้ลนั้นก็ต้องมีการอ้างถึงเทเบิ้ลชั้นก่อนหน้าด้วยเช่น ตำบลนี้ อยู่ในอำเภอนี้ จังหวัดนี้ และภูมิภาคนี้ เป็นต้น เท่ากับว่าถ้าข้อมูลลึกลงไป100ชั้น ในเทเบิ้ลชั้นที่100ก็จะมีการผูกว่าเกี่ยวข้องกับใครบ้างในเทเบิ้ลตั้งแต่ 1-99เลย


ที่นี้เมื่อจะมีการเพิ่มข้อมูลลงไป เช่นว่ามีภูมิภาคใหม่ก็ทำฟอร์มลิ้ง tb_geography เพื่อเพิ่มข้อมูลลงไปตรงๆได้เลย
ถ้าจะเพิ่มตำบลล่ะโอเครว่าลิ้ง tb_district แต่ก็ต้องมีการให้ไล่ใส่ข้อมูลมาตั้งแต่ต้นด้วยว่าอยู่ในภูมิภาค->จังหวัด->อำเภออะไร เป็นต้น :shout:
แต่นี้คือมีการระบุ/คิดใว้ล่วงหน้าก่อนแล้วว่าข้อมูลที่จะเพิ่มเข้าไปนั้นอยู่ในชั้นไหนต้องเปิดฟอร์มใดเพื่อมาเพิ่มข้อมูลนั้นๆ หรือจะให้เป็นว่าเมื่อเปิดดูรายการใดๆแล้วให้แสดงรายการย่อยด้านล่างในฟอร์มย่อยแล้วให้สามารถเพิ่มรายการใหม่สดๆลงไปได้เลยลองหาวิธี,หาแนวทางทำดูครับ

ขอจบแนวทางเบื้องต้น(ประสาคนผ่านมาเห็น)ใว้เพียงเท่านี้ครับ :meaw:
โพสต์นี้ได้รับคำขอบคุณจาก: bgfc

8
'----------------Code Start----------------
    Dim obj As Object, prop As Property, str As String
On Error Resume Next
    For Each obj In Forms("ชื่อฟอร์มเป้าหมาย")
        For Each prop In obj.Properties
            If obj.Name = "ชื่อคอนโทรลเป้าหมาย" Then
                str = str & vbCrLf & obj.Name & vbTab & prop.Name & vbTab & prop.Value
            End If
        Next
    Next
    Debug.Print str
 
    'คำสั่งสร้าง Text File ----------------------------
    'Open "C:\???\???.txt" For Output As #1
    'Print #1, str
    'Close #1
    '---------------------------------------------
'-----------------Code End-----------------
โพสต์นี้ได้รับคำขอบคุณจาก: bgfc

9


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

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

10
โค้ดนี้พิมพ์ทุก Property ของทุก Control บนฟอร์มที่ระบุตามชื่อออกเท็กซ์ไฟล์ แต่บาง Property อ่านค่าได้เฉพาะเมื่อเปิดฟอร์มใน Design View มั่ง หรือใน Form View มั่ง ดังนั้นผลลัพธ์จึงอาจแตกต่างเมื่อฟอร์มเปิดใน View ที่ต่างกัน และเพื่อไม่ให้เกิด Runtime Error เมื่ออ่าน Property ตัวไหนไม่ได้ จึงใส่ On Error Resume Next เพื่อข้ามตัวนั้นไป

โค๊ด: [Select]
Public Sub DumpProp()
    Dim obj, prop, str As String
   
    On Error Resume Next
    For Each obj In Forms("ชื่อฟอร์ม")
        For Each prop In obj.Properties
            str = str & vbCrLf & obj.Name & vbTab & prop.Name & vbTab & prop.Value
        Next
    Next
   
    Open "ชื่อพาธและไฟล์.txt" For Output As #1
    Print #1, str
    Close #1
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: bgfc

11
อย่าลืมทำสำเนาเก็บไว้ก่อนนะครับ เผื่อไฟล์มีปัญหา จะได้มีสำรองเก็บไว้
โพสต์นี้ได้รับคำขอบคุณจาก: bgfc

12
ก็แปลงได้นะครับ แต่จะมีบางคำสั่งที่มันหายไป ก็ดูเป็นคำสั่งๆ ไปครับ
ตอนมันแจ้ง Error ก็แก้ไขซะ ผมแก้ของผมหมดก็ใช้ได้อะ ไม่เห็นมีปัญหา
โพสต์นี้ได้รับคำขอบคุณจาก: bgfc

13
Private Sub ViewPageSource()
Dim url As String, txtPageSource As String, i As Long

  url = "https://marketdata.set.or.th/mkt/sectorquotation.do?sector=SET50 link"
 
  With CreateObject("MSXML2.XMLHTTP")
    .Open "GET", url, False
    .Send
    txtPageSource = .ResponseText
  End With

End Sub

ดัดแปลงจาก https://www.mrexcel.com/forum/excel-questions/556844-read-html-source-code-vba-5.html link
โพสต์นี้ได้รับคำขอบคุณจาก: bgfc

14
บอร์ดเรียนรู้ Access สำหรับคนไทย
เราเป็นเว็บสีขาว ดังนั้นอะไรที่คิดว่าทำแล้วสังคมในบอร์ดจะเสียหาย อย่าทำ!

กฎกติกา
เว้นจากสิ่งต่อไปนี้
X การเมือง
> ขอแบน User ที่ Post เรื่องการเมืองทุกกรณี

X เว็บหมิ่น
> งดโพสต์หรือนำเว็บหมิ่นสถาบันมาโพสต์นะครับ

X สิ่งผิดกฎหมาย เช่น อนาจาร, การพนัน, การระดมทุน, ฯลฯ เป็นต้น
> ไม่อนุญาตให้โพสต์หรือทำ Link ออกไปยังเว็บเหล่านี้ (ลบโพสต์ & แบนทันที)

X Spam
> สมัคร user ใหม่ เพื่อมา spam จะขอลบ user ทิ้งทันทีครับ
> ปัมพ์โพสต์ตอบแต่ emoticon ต่อเนื่อง รับสิทธิ์โดนแบนนะครับ
> งดตั้งกระทู้เพื่อชักจูงแบบคลุมเครือ หรือ spam ทาง pm

X งดหาDownline ธุรกิจเครือข่าย

X งดโพสต์,ตั้งกระทู้เพื่อการโฆษณา

X ลายเซ็นต์ที่เกินกำหนด
> ห้ามติดพวกแนว sign-profit
> ไม่ขัดกับกฎหลักฉบับนี้

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


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

หน้า: [1]