73
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.
74
ห้อง Ms Access อื่นๆ / : วีดีโอแนะนำขั้นตอนการเขียนโปรแกรมขายสินค้าพร้อมตัดสต๊อค
« เมื่อ: 28 พ.ค. 61 , 11:21:54 »
อ.สันติสุข ช่วยขยายความได้ไหมครับ ที่ว่า "เมื่อมีการ Compact ฐานข้อมูลแล้ว ค่าของฟิลด์ Autonumber จะถูกจัดเรียงใหม่ให้ต่อเนื่องกันไปโดยไม่สนใจค่าเดิม" มันจะเกิดขึ้นกรณีไหนบ้างครับ นี่คือความรู้ใหม่ของผมเลยอะครับ เพราะเท่าที่ทราบ การ Compact จะทำให้ฟิลด์ AutoNumber รันลำดับใหม่แค่เรคคอร์ดสุดท้าย ให้ต่อเนื่องกันเท่านั้นเอง ไม่ได้ไปเรียงเรคคอร์ดใหม่ที่มีค่าอยู่แล้วหนิครับ แล้วในฐานข้อมูล Northwind ของทางไมโครซอฟเองก็ใช้ฟิลด์ AutoNumber ในการเชื่อมความสัมพันธ์กันแทบทุกตารางเลยครับ เลยอยากขอความเห็นของอาจารย์หน่อยครับ ว่ากรณีไหนบ้าง?
ปล. ขออภัยหากอ่านความหมายของ อาจารย์ผิดไปครับ
ปล. ขออภัยหากอ่านความหมายของ อาจารย์ผิดไปครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Ongart
75
ห้อง MS Access / : ห้ามคีย์เว้นวรรคใน Split Form
« เมื่อ: 26 พ.ค. 61 , 13:48:34 »
ทำเหมือนเดิม แต่ให้เปลี่ยน Event เป็น On KeyPress แล้วใช้โค้ดตามนี้ครับ
Private Sub INVOICE_KeyPress(KeyAscii As Integer)
If KeyAscii = 32 Then
KeyAscii = 0
End If
End Sub
Private Sub INVOICE_KeyPress(KeyAscii As Integer)
If KeyAscii = 32 Then
KeyAscii = 0
End If
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: prajak
76
ห้อง MS Access / : สร้าง QR Code
« เมื่อ: 26 พ.ค. 61 , 13:42:56 »
จริงๆแล้วไฟล์ DLL ตัวนี้ ผมใช้กับโปรแกรมอื่นที่รองรับ มันสามารถแสดงเป็นภาษาไทย หรือ ญี่ปุ่นได้หมดนะครับ แต่พอมาใช้กับ MS Access มันกลับใช้ได้แค่ภาษาอังกฤษเท่านั้นครับ ยังไม่ทราบว่าเพราะอะไร สงสัยว่าอาจเป็นที่ตัว VBA ของ MS Access เองครับ
คราวนี้ผมเคยอ่านเจอกระทู้เก่ากระทู้นึงของคุณ kamsuk เป็นโค้ดที่รองรับภาษาญี่ปุ่นได้ ไม่ต้องใช้ไฟล์ไลบารี่หรือฟอนต์ใดๆ เขียนโค้ดอย่างเดียว แต่สามารถใช้กับรายงานเท่านั้น ไม่สามารถแสดงบนฟอร์มได้ ยังไงรองศึกษาดูที่กระทู้นี้ครับ https://www.thai-access.com/yeadram_view.php?topic_id=5576
คราวนี้ผมเคยอ่านเจอกระทู้เก่ากระทู้นึงของคุณ kamsuk เป็นโค้ดที่รองรับภาษาญี่ปุ่นได้ ไม่ต้องใช้ไฟล์ไลบารี่หรือฟอนต์ใดๆ เขียนโค้ดอย่างเดียว แต่สามารถใช้กับรายงานเท่านั้น ไม่สามารถแสดงบนฟอร์มได้ ยังไงรองศึกษาดูที่กระทู้นี้ครับ https://www.thai-access.com/yeadram_view.php?topic_id=5576
โพสต์นี้ได้รับคำขอบคุณจาก: Earth
77
ห้อง MS Access / : สร้าง QR Code
« เมื่อ: 16 พ.ค. 61 , 15:51:06 »
คือจะประมาณว่า ถ้าโปรแกรม MS Access เป็นแบบ
32bit ให้ใช้ไฟล์ QRCode_x86.dll
64bit ให้ใช้ไฟล์ QRCode_x64.dll
ไม่เกี่ยวกับ Windows ครับ Windows จะเป็น 32bit หรือ 64bit ก็ได้ แต่ทว่า โฟลเดอร์ระบบมาตรฐานของ Windows 32bit กับ 64bit มันใช้โฟลเดอร์คนละตัวกันคือ
Windows 32bit เราต้องก๊อปปี้ใส่ในโฟลเดอร์ Windows\system32
Windows 64bit เราต้องกีอปปี้ใส่ในโฟลเดอร์ Windows\sysWOW64
สรุปคือ: ถ้าคุณใช้ MS Access 64bit ให้ก๊อปไฟล์ QRCode_x64.dll ไว้ใน Windows\sysWOW64 ได้เลย (เพราะ Access 64bit ต้องใช้ Windows 64bit อยู่แล้ว) แต่หากคุณใช้ MS Access 32bit ต้องดูว่ารันบน Windows 32bit หรือ 64bit ถ้า Windows เป็น 32bit ก็ใช้ไฟล์ QRCode_x86.dll ก๊อปปี้ใส่ในโฟลเดอร์ Windows\system32 แต่หากรันบน Windows 64bit ก็ก๊อปปี้ไฟล์ QRCode_x86.dll ใส่ในโฟลเดอร์ Windows\sysWOW64 แทนครับ
ปล. จริงๆแล้วมันสามารถเขียนโค้ดให้รัน Dll ไฟล์จากในโฟลเดอร์ที่เรากำหนดได้เลยโดยไม่ต้องไปก๊อปใส่เครื่องให้ยุ่งยาก รวมทั้งฟอนต์ด้วย แต่ต้องใช้การเขียนโค้ดอีก ซึ่งมันจะยืดหยุ่นกว่ามาก ไม่ต้องทั้งเพิ่มฟอนต์ QRCode และ ไฟล์ dll ลงในเครื่องเลย สามารถเรียกรันในโฟลเดอร์เดียวกับฐานข้อมูลเราได้เลย แต่มันต้องเขียนโค้ดอีกพอสมควร ในคลิปที่ผมทำเน้นความง่าย เลยไม่ได้ทำในส่วนนี้ให้ดูครับ
32bit ให้ใช้ไฟล์ QRCode_x86.dll
64bit ให้ใช้ไฟล์ QRCode_x64.dll
ไม่เกี่ยวกับ Windows ครับ Windows จะเป็น 32bit หรือ 64bit ก็ได้ แต่ทว่า โฟลเดอร์ระบบมาตรฐานของ Windows 32bit กับ 64bit มันใช้โฟลเดอร์คนละตัวกันคือ
Windows 32bit เราต้องก๊อปปี้ใส่ในโฟลเดอร์ Windows\system32
Windows 64bit เราต้องกีอปปี้ใส่ในโฟลเดอร์ Windows\sysWOW64
สรุปคือ: ถ้าคุณใช้ MS Access 64bit ให้ก๊อปไฟล์ QRCode_x64.dll ไว้ใน Windows\sysWOW64 ได้เลย (เพราะ Access 64bit ต้องใช้ Windows 64bit อยู่แล้ว) แต่หากคุณใช้ MS Access 32bit ต้องดูว่ารันบน Windows 32bit หรือ 64bit ถ้า Windows เป็น 32bit ก็ใช้ไฟล์ QRCode_x86.dll ก๊อปปี้ใส่ในโฟลเดอร์ Windows\system32 แต่หากรันบน Windows 64bit ก็ก๊อปปี้ไฟล์ QRCode_x86.dll ใส่ในโฟลเดอร์ Windows\sysWOW64 แทนครับ
ปล. จริงๆแล้วมันสามารถเขียนโค้ดให้รัน Dll ไฟล์จากในโฟลเดอร์ที่เรากำหนดได้เลยโดยไม่ต้องไปก๊อปใส่เครื่องให้ยุ่งยาก รวมทั้งฟอนต์ด้วย แต่ต้องใช้การเขียนโค้ดอีก ซึ่งมันจะยืดหยุ่นกว่ามาก ไม่ต้องทั้งเพิ่มฟอนต์ QRCode และ ไฟล์ dll ลงในเครื่องเลย สามารถเรียกรันในโฟลเดอร์เดียวกับฐานข้อมูลเราได้เลย แต่มันต้องเขียนโค้ดอีกพอสมควร ในคลิปที่ผมทำเน้นความง่าย เลยไม่ได้ทำในส่วนนี้ให้ดูครับ
78
ห้อง MS Access / > สอบถามการใช้ QRCODE กับ ms access
« เมื่อ: 10 มี.ค. 61 , 14:05:41 »
คือหากจะใช้ QR ในการแสดงรายละเอียดแทนก็ได้ครับ เช่นในการส่งซ่อมเราก็เขียนรายละเอียดแบบไม่ต้องมากนะครับ เพราะ qr จะใหญ่ เสร็จแล้วก็ Gen เป็น QR Code
ส่วนการอ่านรับของซ่อม ก็ใช้เครื่องยิ่งบาร์โค้ดที่เป็นรุ่นที่อ่าน qr ได้ ส่วนใหญ่จะเป็นแบบ ccd ซึ่งราคาแพงกว่าเครื่องธรรมดา หลักหลายพันขึ้น เราก็สามารถอ่าน qr code ได้ทั้งจากกระดาษ และ หน้าจอมือถือก็ได้ แค่คนส่งซ่อมนำมือถือถ่ายภาพ qr code มา เรา Scan จากมือถือก็รู้รายละเอียดได้ครับ
ส่วนการอ่านรับของซ่อม ก็ใช้เครื่องยิ่งบาร์โค้ดที่เป็นรุ่นที่อ่าน qr ได้ ส่วนใหญ่จะเป็นแบบ ccd ซึ่งราคาแพงกว่าเครื่องธรรมดา หลักหลายพันขึ้น เราก็สามารถอ่าน qr code ได้ทั้งจากกระดาษ และ หน้าจอมือถือก็ได้ แค่คนส่งซ่อมนำมือถือถ่ายภาพ qr code มา เรา Scan จากมือถือก็รู้รายละเอียดได้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: chaoclub
79
ห้อง MS Access / > สอบถามการใช้ combo Filter มากกว่า1รายการ หรือ การใส่ filter sort แต่ละ column
« เมื่อ: 08 มี.ค. 61 , 18:28:20 »80
ห้อง MS Access / > ซ่อน Page Header
« เมื่อ: 06 มี.ค. 61 , 10:55:22 »
Me.Section ต้องไม่มี s ต่อท้าย ไม่ใช่หรือครับ ส่วนชื่อ PageHeaderSection ต้องเป็นชื่อของพื้นที่ ที่เราจะทำการซ่อน เช่นถ้าเราต้องการซ่อนพื้นที่ในส่วนของ Header ก็คล๊กที่พื้นที่ Header นั้น ในมุมมองออกแบบ แล้วดูที่ Property > Other > Name ว่าใช้ชื่อว่าอะไรก็ใส่ให้ตรงกับชื่อนั้น ส่วนการเทียบ Page = Pages เราจำเป็นต้องสร้าง Control Text Box ขึ้นมา โดย Control Source กำหนดเป็น [Pages] จะแสดงหรือไม่ก็ได้แต่ต้องมี เพื่อให้การนับหน้าทั้งหมดทำงาน เราถึงจะเทียบค่ากับหน้าปัจจุบันได้จริง ประมาณนี้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Un
81
ห้อง Ms Access อื่นๆ / > ปรึกษาเรื่องควรใช้MS Accessต่อหรือใช้การเก็บข้อมูลรูปแบบอื่นดีครับ
« เมื่อ: 31 ม.ค. 61 , 11:51:49 »
ก็ต้องวางแผนฐานข้อมูลก่อนนะครับ ว่าจะเชื่อมโยงข้อมูลกันหรือไม่ ถ้าแยกร้านกันไม่ต้องเชื่อมโยงข้อมูลกันก็ไม่มีปัญหาใช้ตามความถนัดไปก่อนได้ แต่ถ้าต้องการเชื่อมโยงข้อมูลกันก็ควรใช้เป็นฐานข้อมูล SQL Server หรือ My SQL หรืออื่นๆหลายค่าย (ต้องศึกษาดู ส่วนตัวผมใช้แต่ SQL Server) โดยการใช้งานผ่านทาง Web Browser น่าจะง่ายที่สุดแล้ว โดยหาคนที่เขียน Web application เป็นก็สามารถทำได้ครับ ส่วนเรื่องข้อมูลเก่าใน MS Access เราสามารถ Export ไปที่ SQL Server (ในกรณีใช้ SQL Server นะครับ ค่ายอื่นๆ ก็ได้ แต่ไม่แน่ใจในวิธีการทำ) ได้ครับ ยกเว้นฟิลด์ที่ไม่ใช้มาตรฐานของฐานข้อมูลจริงๆ อย่าง Attachment ถ้ามีก็ต้องเปลี่ยนรูปแบบการจัดเก็บใหม่
สรุป ลองปรึกษาคนที่รับเขียนเว็บครับ ยิ่งปัจจุบันเค้าสามาถเขียนเป็นแอฟรองรับมือถือได้ด้วยทำให้ใช้งานได้หลาย Device อีกต่างหาก
สรุป ลองปรึกษาคนที่รับเขียนเว็บครับ ยิ่งปัจจุบันเค้าสามาถเขียนเป็นแอฟรองรับมือถือได้ด้วยทำให้ใช้งานได้หลาย Device อีกต่างหาก
โพสต์นี้ได้รับคำขอบคุณจาก: laemthong
82
ห้อง MS Access / > รวมข้อมูลจากหลายฟิวส์เป็นฟิวส์เดียว
« เมื่อ: 24 ม.ค. 61 , 10:21:12 »
สมมุติตารางคุณชื่อ Table1
1. ใส่ฟังก์ชั่นนี้ลงใน Module
2. สร้างคิวรี่ใหม่ เขียน SQL ดังนี้:
ประมาณนี้ ปรับใช้ดูครับ
1. ใส่ฟังก์ชั่นนี้ลงใน Module
โค๊ด: [Select]
Function ConcatRelated(expression$, domain$, criterial$)
Dim db As DAO.Database
Dim rs As Recordset
Dim SQLCmd As String
Dim ConCat As String
Set db = CurrentDb()
SQLCmd = "SELECT " & expression$ & " FROM " & domain$ & " WHERE " & criterial$
Set rs = db.OpenRecordset(SQLCmd)
If Not rs.EOF Then
rs.MoveFirst
End If
Do While Not rs.EOF
ConCat = ConCat & rs(0) & ", "
rs.MoveNext
Loop
If ConCat & "" <> "" Then
ConcatRelated = Left(ConCat, Len(ConCat) - 2)
End If
rs.Close: Set rs = Nothing: Set db = Nothing
End Function
2. สร้างคิวรี่ใหม่ เขียน SQL ดังนี้:
โค๊ด: [Select]
SELECT Table1.[รหัสใบสั่งซื้อ], ConcatRelated("รายการ","Table1","รหัสใบสั่งซื้อ=" & [รหัสใบสั่งซื้อ]) AS รวมรายการ
FROM Table1
GROUP BY Table1.[รหัสใบสั่งซื้อ];
ประมาณนี้ ปรับใช้ดูครับ