แสดงกระทู้

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

หน้า: [1]
1
เครื่องคอมฯผมตั้งค่าแสดงวันที่เป็น US = แสดงผลออกเป็น ๒๐๒๔ เช่นกัน
จึงลองแกะโค้ดอ.TTT แล้วแก้ตรง
โค๊ด: [Select]
tDay(o, iCount) = cThaiNumber(Day(i)) & " " & MonthNameThai(i) & " " & cThaiNumber(IIf(Year(i) = Format(i, "yyyy"), Year(i) + 543, Format(i, "yyyy")))
ให้เหลือแค่
โค๊ด: [Select]
tDay(o, iCount) = cThaiNumber(Day(i)) & " " & MonthNameThai(i) & " " & cThaiNumber(Year(i) + 543)

ได้ผลลัพธ์เป็นปี ๒๕๖๗  :love:
โพสต์นี้ได้รับคำขอบคุณจาก: TTT

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

3
ลองดูตัวอย่างนี้ครับ พอดีค้นหาเจอจากเว็บนอก และเพิ่มเติมบางส่วนเช่นเลือกข้อมูลจากตารางพิกัส gps ลูกค้าให้ด้วยคับ
ตัวแผนที่อัพเดทล่าสุด 2019
Credit : Philben




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

4
น่าจะเพิ่มผิดตรงไหนสักจุดครับ Inbox มาครับ

ID กำหนด DATA TYPE เป็น text หรือเปล่าครับ
ปกติตรงนี้ผมกำหนดเป็น Number ครับ

ถ้าเป็น Text ใช้ Cint แปลงเป็น ตัวเลขก่อนคับ

ถ้าข้อมูล ID NO เป็น Text ลองใช้การแปลง Text เป็นตัวเลข ก่อน โดยผมสร้าง QryTable1 ขึ้นมาแสดงข้อมูลของ Table1 นะครับ

ตัวอย่างด้านล่าง
โพสต์นี้ได้รับคำขอบคุณจาก: TTT

5
ใช้การ Running Number Query มาช่วยก็ได้คับ
วิธีทำ 1 สร้างคิวรี่ชื่อ QryID ใส่โค้ดนี้
โค๊ด: [Select]
SELECT (Select count(*) From Table1 as a Where a.ID <= Table1.ID) AS [Running No], Table1.ID AS RID
FROM Table1;
2.ที่ RecordSource ของ Report ใส่โค้ดนี้เข้าไป
โค๊ด: [Select]
SELECT Table1.ID, Table1.[Product Name], Table1.Quantity, QryID.[Running No], *
FROM Table1 INNER JOIN QryID ON Table1.ID = QryID.RID;


3.สร้าง Textbox ขึ้นมาอีกอัน เอา Field RunningNo ใส่เข้าไปแล้วซ่อน textbox นี้ไว้นะครับ


4.ที่ textbox txtID ใส่โค้ดเป็นแบบนี้
โค๊ด: [Select]
=IIf([Running No] Mod 40=0,40,[Running No] Mod 40)
เท่านี้ก็จะรันลำดับอย่างถูกต้องแล้วคับ   :grin:
โพสต์นี้ได้รับคำขอบคุณจาก: TTT

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

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

7
https://drive.google.com/drive/folders/1J_P2DCrnDaQJDw5PHaddbtAX52xJCO4E?usp=sharing

sadsadeekabchoeng@hotmail.com
nk_0813kjmn@hotmail.co.th

โหลดใน Google drive ตาม link ได้เลยครับ.....
เป็น Zip ไฟล์   มี สอง ไฟล์ครับ  เป้นไฟล์ Setup.exe ของ Awara Thai Smart card reader และ ไฟล์ MS ACCESS ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: TTT

8


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

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

9
 


:miao: :shout: :love: :grin:

ผมเห็นเพื่อนๆสมาชิกหลายๆท่านมีการสร้าง นาฬิกาไว้ แสดงบนฟอร์มแต่เวลาไม่ได้แสดงตลอดเวลาวันนี้เรามาลองทำนาฬิกาไว้แสดงบนฟอร์มเพื่อให้ดูสวยงามไปอีกแบบ

โดยสร้าง textbox ชื่อ txtShowTime
โดยเซ็ท TimeInterval 125
และใส่ Code ที่ Event OnTimer ดังนี้
โค๊ด: [Select]
Private Sub Form_Timer()
Me.txtShowTime.Value = Format(Time, "HH:mm:ss AM/PM")
End Sub

ต่อไปทำให้แสดงวันที่ ก็กด ที่ Design  > กดเลือกที่ Date And Time ลงมาวงในฟอร์ม และตกแต่งเพื่อความสวยงาม
จบขั้นตอนคับ
โพสต์นี้ได้รับคำขอบคุณจาก: TTT

10
ภาษา VBA นำมาจากภาษา BASIC ซึ่งเป็นภาษาเก่าแก่ สิ่งนึงที่ตกทอดมาถึง VBA ก็คือหมายเลขบรรทัด เราสามารถใส่เลขที่บรรทัด จะเป็นเลขอะไรก็ได้ตั้งแต่ 1 ถึง 65535 และแต่ละบรรทัดจะเป็นเลขอะไรก็ได้ ไม่จำเป็นต้องเรียงลำดับ ไม่จำเป็นต้องมีทุกบรรทัด ขอให้ไม่ซ้ำใน Sub หรือ Function Procedure เดียวกันก็พอ โดยเขียนไว้เป็นส่วนแรกของโค้ดแต่ละบรรทัด ที่ทำๆกันมาเป็นมาตรฐานก็คือเริ่มจาก 10  และเพิ่มทีละ 10 เพื่อให้อ่านง่ายและสะดวกเมื่อมีการแทรกบรรทัดเพิ่ม จะได้ใส่เลขบรรทัดได้โดยไม่ต้องไปแก้หมายเลขของบรรทัดอื่นๆให้เสียเวลาครับ

ตย.ของโค้ดก็เช่น
โค๊ด: [Select]
Private Function NewSalesPrice(Price As Variant, Percent As Variant) As Single
          Dim Factor  As Single

          On Error GoTo ErrHandler

10        Factor = 1 + Percent / 100
20        NewSalesPrice = Price * Factor

ExitRtn:
30        Exit Function
               
ErrHandler:
40        MsgBox "In [NewSalesPrice], Line " & Str(Erl) & ", Error " & Str(Err.Number) & " : " & Err.Description
50        Resume ExitRtn
End Function

เลขบรรทัดทำหน้าที่แบบเดียวกับลาเบล เราสามารถสั่ง Goto <ลาเบล/เลขบรรทัด> หรือ GoSub <ลาเบล/เลขบรรทัด> เพื่อให้โค้ดข้ามไปทำงานที่บรรทัดตามเลขที่นั้นได้ แต่ประโยชน์ที่ชัดเจนที่สุดก็คือ ถ้าเกิด Runtime Error ขึ้นในบรรทัดของโค้ดที่มีเลขที่บรรทัดอยู่ เราสามารถใช้ฟังก์ชั่น Erl เพื่อคืนเลขที่บรรทัดออกมาได้ด้วย ดังนั้นเราจึงใส่ไว้ในส่วนของ Error Handling Routine เพื่อบอกให้ทราบว่าเกิดปัญหาที่บรรทัดอะไร การ Debug หรือแก้ไขปัญหาก็จะทำได้ง่ายขึ้นมาก แต่หากเกิด Error ในบรรทัดที่ไม่ได้ใส่หมายเลขบรรทัดเอาไว้  ฟังก์ชั่น Erl จะคืนค่าของเลขบรรทัดสุดท้ายที่อยู่ก่อนหน้าออกมาให้แทน หรือถ้าไม่มีเลย ก็จะคืนค่าเป็นศูนย์แทนครับ

ตย.ของข้อความ

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

11
เขียนข้อเสนอแนะให้ทีมพัฒนา Access access.uservoice.com/forums/319956-access-desktop-application

เขียนข้อเสนอแนะให้ทีมพัฒนา Office officespdev.uservoice.com/forums/224641-feature-requests-and-feedback?category_id=164751 ถ้าเกี่ยวกับ VBA IDE ให้เลือกหมวด Office Development Tools

Blog ของทีมซัพพอร์ทของ Access blogs.technet.microsoft.com/the_microsoft_access_support_team_blog/

Blog ของ Office365 ในเรื่องเกี่ยวกับ Access www.microsoft.com/en-us/microsoft-365/blog/access/
โพสต์นี้ได้รับคำขอบคุณจาก: TTT

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

13
อ.สันติสุข ช่วยขยายความได้ไหมครับ ที่ว่า "เมื่อมีการ Compact ฐานข้อมูลแล้ว ค่าของฟิลด์ Autonumber จะถูกจัดเรียงใหม่ให้ต่อเนื่องกันไปโดยไม่สนใจค่าเดิม" มันจะเกิดขึ้นกรณีไหนบ้างครับ นี่คือความรู้ใหม่ของผมเลยอะครับ เพราะเท่าที่ทราบ การ Compact จะทำให้ฟิลด์ AutoNumber รันลำดับใหม่แค่เรคคอร์ดสุดท้าย ให้ต่อเนื่องกันเท่านั้นเอง ไม่ได้ไปเรียงเรคคอร์ดใหม่ที่มีค่าอยู่แล้วหนิครับ แล้วในฐานข้อมูล Northwind ของทางไมโครซอฟเองก็ใช้ฟิลด์ AutoNumber ในการเชื่อมความสัมพันธ์กันแทบทุกตารางเลยครับ เลยอยากขอความเห็นของอาจารย์หน่อยครับ ว่ากรณีไหนบ้าง?
ปล. ขออภัยหากอ่านความหมายของ อาจารย์ผิดไปครับ

ใช่ครับ หมายถึงถ้ามีการลบกี่เรคอร์ดก็ตามที่มีค่า autonumber เรียงต่อเนื่องกันไปจนถึงเรคอร์ดที่มีค่า autonumber มากสุด หลัง compact ฐานข้อมูลหลักแล้ว (ฐานข้อมูลที่มีเทเบิลนั้นอยู่จริง ไม่ใช่ฐานข้อมูลที่เราสร้าง linked table) มันจะรันค่าของ autonumber ต่อจากค่าที่มากที่สุดใหม่อีกครั้ง ไม่ได้หมายถึงค่าเดิมที่บันทึกอยู่แล้วจะถูกสร้างใหม่ ทีนี้เนื่องจากการที่มันเป็นค่าที่ระบบสร้างขึ้นมาเอง เรคอร์ดที่สัมพันธ์กันจะเชื่อมั่นได้อย่างไรว่าจะอ้างกลับมายังเรคอร์ดเก่า (ที่ถูกลบไปแล้ว) หรือเรคอร์ดใหม่ที่มีเลข autonumber เดียวกับเรคอร์ดเก่า แต่ถ้าเราสร้างเลขเอง อันนี้เราเชื่อได้แน่ว่าเลขใหม่จะไม่ซ้ำกับเลขที่มีอยู่เดิม แต่ปัญหานี้ก็อาจหมดไป ถ้าเราระบุ Cascade delete record ให้กับความสัมพันธ์นั้นด้วยครับ
โพสต์นี้ได้รับคำขอบคุณจาก: TTT

14
ห้ามใช้ฟิลด์ประเภท Autonumber เชื่อมความสัมพันธ์กับเทเบิลอื่น (Bill.BillNo เชื่อมกับ Order.BillNo) เพราะเมื่อมีการ Compact ฐานข้อมูลแล้ว ค่าของฟิลด์ Autonumber จะถูกจัดเรียงใหม่ให้ต่อเนื่องกันไปโดยไม่สนใจค่าเดิม ดังนั้นค่าเดิมของฟิลด์ Autonumber ที่อยู่ในเทเบิลอื่น (Order.BillNo) มีโอกาสอ้างกลับมายังเทเบิลหลัก (Bill) ผิดเรคอร์ดทันที
โพสต์นี้ได้รับคำขอบคุณจาก: TTT

15
เผื่อใครต้องการเรียนรู้การตัดสต๊อคสินค้านะครับลองศึกษาดูได้ครับ เป็นAccessเวอร์ชั่น2003และ2016ครับ
-ระบบแยกฐานข้อมูลออกจากฟอร์มและรายงาน
-ตัดบานหน้าต่างนำทางและแถบเมนูออก
-ใช้ระบบส่งข้อมูลยอดขายแยกไว้ในตารางใหม่เพื่อไม่ให้ออกรายงานผิดหากมีการเปลี่ยนแปลงเรื่องราคา
-ระบบตัดสต๊อคทันทีที่ขายโดยไม่ต้องส่งข้อมูลก่อน
-รายงานสต๊อคคงเหลือทันที
-รายงานจุดสั่งซื้อสินค้า

ออกแบบและเขียนแบบง่ายๆเพื่อให้เกิดความเข้าใจสำหรับมือใหม่
หากเกิดข้อผิดพลาดหรือวิธีการไหนที่ดีกว่านี้และง่ายกว่านี้ผมต้องขออภัยด้วยนะครับ เพราะไม่ใช่มืออาชีพสักเท่าไหร่ครับ










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

16
https://www.overclockzone.com/news/10009
โพสต์นี้ได้รับคำขอบคุณจาก: TTT

หน้า: [1]