แสดงกระทู้

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

หน้า: [1] 2 3
1
ไฟล์แกะเอาของ ตปท. มาโดยยกโมดูลมาทั้งหมด แล้วปิดส่วนที่ไม่ได้ใช้บางส่วน

หน้าฟอร์มก็ให้เหลือแต่เลือกเครื่องปริ้นครับ
โพสต์นี้ได้รับคำขอบคุณจาก: aek

2
ทำไว้บน Youtube ครับ

https://youtu.be/wbkt8nsaolk?si=wFh-kP1wJtobmWGF

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

3
ลองดูครับแบบนี้ได้ไหม ลองดูที่ Query : Query1-SendLine
โพสต์นี้ได้รับคำขอบคุณจาก: aek

4
Loop RecordSet ครับ อาจเก็บสถานะไว้ 1 ฟิวด์ว่าส่งแล้ว เช่น status=0 ยังไม่ส่ง 1=ส่งแล้ว ครั้งต่อไปเวลากดก็ให้ส่งเฉพาะที่สถานะใหม่เท่านั้น
ตัวอย่าง เช่น
dim db as dao.database
dim rs as dao.recordset
dim sqlStr as string
dim ms as String 'Message


sqlStr = "SELECT * FROM table_dataxxx as c WHERE status=0"

set db = currentDb
set rs = db.openRecordset(sqlStr)

rs.movefirst

do while not rs.EOF
  ms=rs!fieldName & xxx... 'สร้าง Message
  call LineNotify(ms,rs!token) 'เรียกใช้ Sub พร้อมกับส่ง Argument
  docmd.runsql "๊Update table_dataxxx Set status=1 Where id=rs!id"
  rs.movenext
loop

ผิดพลาดประการใดต้องขออภัยด้วยครับ
โพสต์นี้ได้รับคำขอบคุณจาก: aek

5
ประยุกต์จาก https://www.devhut.net/vba-list-fonts/ ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: aek

6
สาเหตุเกิดเจ้าฟอนต์ที่มีวงเล็กว่า Detail แหละ แต่จะให้แก้ทุกฟอร์มก็คงเหนื่อยน่าดู

มาดูการแก้ปัญหาด้วยการตั้งค่าตามคลิปนี้นะครับ

https://youtu.be/sQHN_8-bWj4
โพสต์นี้ได้รับคำขอบคุณจาก: aek

7
ไฟล์ตัวอย่างนะครับ ตั้งเวลาไว้ที่ 10 วินาที
โพสต์นี้ได้รับคำขอบคุณจาก: aek

8
Option Compare Database

Function setNewText(text As String) As String
Dim strText As String
Dim newString As String
strText = Left(text, 3)

Select Case strText
Case "5-1": newString = Replace(text, strText, "A-")
Case "6-1": newString = Replace(text, strText, "B-")
Case "7-1": newString = Replace(text, strText, "C-")
Case "8-1": newString = Replace(text, strText, "D-")
Case "9-1": newString = Replace(text, strText, "E-")
Case Else: newString = "Error"
End Select
setNewText = newString
End Function
โพสต์นี้ได้รับคำขอบคุณจาก: aek

9
มันมีหลายเงื่อนไขนะครับ
1. ถ้ารูปเล็กไป (Pixel น้อย หรือ Resolution ต่ำ) ก็ไม่ชัด
2. Printer ถ้าเป็น Ink Jet ก็ชัดสู้ Laser ไม่ได้
3. Epson ก็จะให้สีจางกว่า HP

เท่าที่เจอมากับตัวเอง
โพสต์นี้ได้รับคำขอบคุณจาก: aek

10
ผมก็ได้มานานแล้ว แต่ไม่ได้ทำใช้
โพสต์นี้ได้รับคำขอบคุณจาก: aek

11
อยากจะทราบวิธี ขยาย Check Boxบนฟรอม คะ



ถ้าอยากให้ใหญ่ตามที่เราอยากได้ ใช้ Label มาสร้าง Checkbox ก็ได้ครับ
วิธีทำ
1 สร้าง Label ขึ้นมา ช่องใส่ข้อความ เคาะ space bar 1 ที ไม่ต้องใส่ข้อความ
2.ตั้งชื่อว่า lblCheck
3.จัดแนวข้อความกึ่งกลาง กำหนดขนาดตามต้องการ
4.ใส่ลักษณะพิเศษ แบบยุบตัว

กำหนดสถานะเมื่อ Click เราจะใช้ ChrW(&H2713) หรือ ChrW(&H2714) คือเครื่องหมายกาถูก
โดยเมื่อติ๊กถูกให้ checkbox ที่ชื่อ check1 = true ไปด้วย

Private Sub lblCheck_Click()
Call CheckboxDIY
End Sub

Sub CheckboxDIY()
  If Me.lblCheck.Caption = ChrW(&H2713) Then
    Me.lblCheck.Caption = vbNullString
    Me.Check1 = False
  Else
    Me.lblCheck.Caption = ChrW(&H2713)
    Me.Check1 = True
  End If
End Sub

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

12
พอดีมีเวลาและเห็นว่ามีหลายครั้งที่มีการถามถึงการสร้างฟอร์มล็อคอินและเมนู ผมเลยเขียนตัวอย่างขึ้นมาเอาไว้ให้เป็นแนวทางในการศึกษาครับ

ระบบมี 2 เทเบิลคือ tbUser ไว้เก็บ ID,รหัสผ่าน,และเมนูที่จะใช้ ในขณะที่อีกเทเบิล tbMenu จะเก็บว่าแต่ละเมนูมีโครงสร้างอย่างไร

ฟอร์มหลักๆคือ FmLogon เพื่อรับ ID และรหัสผ่านผู้ใช้ เมื่อป้อนถูกต้องแล้ว ระบบก็จะเปิดฟอร์ม FmMenu เพื่อแสดงเมนูของแต่ละคน เมื่อคลิกหรือเลื่อนมาที่แต่ละรายการในเมนู คำอธิบายของรายการนั้นจะแสดงที่กรอบด้านล่าง แต่ถ้าดับเบิลคลิก จะเป็นการเปิดหน้าฟอร์ม/รายงานของรายการนั้น พร้อมกับตัวเมนูจะถูกหดย่อลงไป และจะกลับมาแสดงโดยอัตโนมัติเมื่อปิดฟอร์ม/รายงานที่ได้เปิดไป หลังจากปิดเมนู ก็จะกลับมาเปิดฟอร์มล็อคอินอีกครั้ง  ส่วนฟอร์มและรายงานที่เหลือเป็นแค่ตัวอย่างเพื่อแสดงให้เห็นว่าฟอร์ม/รายงานนั้นได้เปิดจริงๆแล้วเท่านั้น

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

ปล. อย่าถามนะว่า login ID และรหัสผ่านมีอะไรบ้าง  :sweat:
โพสต์นี้ได้รับคำขอบคุณจาก: aek

13
คงต้องใส่โค้ดไว้ใน Form_Activate event ของทุกฟอร์มแล้วครับ แล้วถ้าจะป้องกันอีกชั้น ก็ใส่เงื่อนไขตรวจสอบปีไว้ใน Validation Rule ของฟิลด์วันที่ในเทเบิลไปด้วยว่าปีต้องอยู่ในช่วงที่เป็นไปได้ เช่น 2010-2050 ก็เขียนเป็น Year([ชื่อฟิลด์]) between 2010 and 2050 ส่วน Validation Text ก็ใส่ข้อความที่จะแสดงเมื่อไม่เป็นไปตาม Rule ที่ว่านี้

หมายเหตุ : ฟังก์ชั่น Year( ) จะให้ค่าเป็นปี ค.ศ. เสมอ แม้ปฏิทินจะกำหนดเป็น พ.ศ.
โพสต์นี้ได้รับคำขอบคุณจาก: aek

14
ในภาษา VBA  เครื่องหมาย double quote เป็น string delimeter เปิด/ปิดสำหรับค่าคงที่ของข้อความ (ในนี้ผมจะใช้สีแดงแล้วกัน) เช่น ค่าคงที่ของข้อความ AB ก็จะต้องสร้างเป็น "AB"   แต่ถ้าค่าคงที่ของข้อความต้องมี double quote อยู่ภายในอยู่ด้วย เช่น A"B  เราต้องใช้ double quote 2 ตัว   VBA จะรู้ว่าจริงๆแล้ว นี่เป็นตัวอักษร double quote เพียงตัวเดียว ไม่ใช่ delimiter  ดังนั้นเราก็ต้องสร้างเป็น "A""B" 


ส่วน string delimeter ในภาษา SQL จะใช้ได้ทั้ง double quote และ single quote  ดังนั้นเมื่อต้องการค่าคงที่ของข้อความ SELECT * FROM Output WHERE [Type] like 'AB' ลงในตัวแปรชื่อ SQL เราก็จะสร้างคำสั่งเป็น SQL = "SELECT * FROM Output WHERE [Type] like 'ABC'" หรือถ้าเราใช้ double quote แทน single quote คำสั่งก็จะกลายเป็น SQL = "SELECT * FROM Output WHERE [Type] like ""ABC"""


ส่วน & คือ operator ที่ใช้เชื่อมข้อความ 2 ข้อความเข้าด้วยกัน เช่น "A" & "B" ก็จะได้ค่าคงที่ของข้อความเป็น AB หรือ "A" & """B""" ก็จะได้เป็น A"B"
โพสต์นี้ได้รับคำขอบคุณจาก: aek

15
อ้างถึง
1. หลักความแตกต่างระหว่าง " และ ' และ & คืออะไรครับ

 " และ '  เราเรียกว่า double quote และ Single quote ครับ สัญลักษณ์พวกนี้เป็นการบอกให้ทราบว่า คุณได้กำหนดช่วงของ ข้อความ หรือ String หรือ ตัวเลข หรือตัว Control จาก ไหน ถึง ไหน ครับ เช่น "..............." เป็นการบอกว่า ภายใน double quote นี้คือเนื้อหาส่วนเดียวกัน

ความแตกต่างของการใช้  " และ ยกตัวอย่างการใช้ Dlookup
เราจะใช้ ' ในการกรณีที่ อ้างถึงเขตข้อมูลที่เป็น string หรือข้อความ เช่น
DLookup("FieldName" , "TableName" , "Criteria= 'String'")

ในกรณีที่เป็น ตัวเลข เราจะใช้ " ในการกำหนดขอบเขตครับเช่น N คือตัวเลข
DLookup("FieldName" , "TableName" , "Criteria = n")

แต่ " " นี้ก็ไม่ได้ใช้กับตัวเลขเสมอไป เราจะใช้ในการกำหนด เริ่มต้นและสิ้นสุดของข้อความที่เรากำหนดได้เหมือนกันเช่น

msgbox "สวัสดีครับ",vbInformation,"ทักทาย"

& นั้นใช้ในการเชื่อมต่อกับส่วน อื่นๆของคำสั่ง เช่น ตัวแปร เชื่อมกับ Control / ข้อความเชื่อมกับ Control / กำหนด เชื่อมฟิลล์เข้าด้วยกัน เช่น Field1 & "/" & Field2  ก็จะได้ Field1/Field2เป็นต้น

อ้างถึง
2. ในกรณีนี้ทำไมต้องใส่ " " ที่ตอนต้นและตอนท้ายด้วยครับ เพราะดูในที่อื่น ก็ select * from  where ไม่เห็นต้องมี " " ปิดหัวท้ายเลย


คุณอ้างถึงตัวแปร Sql ที่เป็น string ซึ่ง ต้องมี " " ปิดหัวท้ายเพื่่อกำหนดขอบเขตของ String ที่เรากำหนดคับ

อ้างถึง
3. like '" & Nz(Me.tcombo, "*") & "'  --> รบกวนช่วยแปล Code นี้หน่อยครับ ไม่เข้าใจตรงการเขียน '" & XXX & "'
จากตัวอย่างนี้ลองสังเกตุ '" & XXX & "' การใส่ เครื่องหมาย  " และ ' ให้การ Control ที่เป็นข้อความคับ
Nz(Me.tcombo, "*") คือการกำหนดให้ตรวจสอบ Control ที่ชื่อ tcombo ครับโดยการกำหนดให้แสดงผลตามว่า tcombo ว่างหรือไม่ว่าง
ถ้า tcombo ไม่เป็นค่าว่าง สมมุติเราใส่ กรุงเทพ เงื่อนไขของ คำสั่งนี้คือ   like "กรุงเทพ" ซึ่ง ถ้าเขตข้อมูลไหนมีคำว่ากรุงเทพก็จะแสดงรายการออกมาครับ
แต่ถ้า tcombo เป็นค่าว่าง Nz Function ก็จะแทนค่าว่างด้วย * คือถ้าว่างก็ให้เงื่อนไขคือแสดงข้อมูลทั้งหมด

ผมตอบได้เท่าที่ผมนึกออกนะคับ  รออาจารย์ท่านอื่นมาเสริม
โพสต์นี้ได้รับคำขอบคุณจาก: aek

16
สุดยอดเลยค่ะอาจารย์
หนูขออนุญาตโหลดไฟล์โปรแกรมตัวอย่างของอาจารย์
ไปเก็บไว้ศึกษาปรับประยุกต์ใช้งานต่อด้วยอีกคนนะคะ

ขอบคุณเจ้าของกระทู้นี้ด้วยเช่นกันค่ะ
โพสต์นี้ได้รับคำขอบคุณจาก: aek

17
ยินดีครับ ที่จริงมันสามารถ Convert File รูป เป็นรูปแบบที่ต้องการได้ด้วยนะครับ เช่น ต้นฉบับเป็น .BMP จะแปลงเป็น .JPEG หรือ อื่นๆได้ โดยใช้ WIA
แต่จากความต้องการเจ้าของกระทู้ ไม่น่าจะใช้ในส่วนนี้ครับ  :cool: :cool:
โพสต์นี้ได้รับคำขอบคุณจาก: aek

18
เห็นแล้วสุดยอดเลยครับ อ.ปิ่นณรงค์...ผมขออนุญาติโหลดเพื่อนำมาศึกษาและนำมาประยุกต์กับการใช้งานจริงนะครับ..และขอขอบคุณเจ้าของกระทู้ด้วยนะครับ

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

หน้า: [1] 2 3