สร้าง QR Code



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

15 พ.ค. 61 , 09:48:22
อ่าน 1685 ครั้ง

Earth

สร้าง QR Code
« เมื่อ: 15 พ.ค. 61 , 09:48:22 »
สอบถามค่ะ

อยากทราบว่า Access สามารถนำข้อมูลจากตาราง มาสร้างQRCode ในReportได้ยังไงบ้างคะ
« แก้ไขครั้งสุดท้าย: 15 พ.ค. 61 , 09:50:47 โดย Earth »

 

15 พ.ค. 61 , 11:25:16
ตอบกลับ #1

Earth

: สร้าง QR Code
« ตอบกลับ #1 เมื่อ: 15 พ.ค. 61 , 11:25:16 »
เจอวิธีทำจากลิงค์นี้ค่ะ จะลองทำตามดู


แต่อยากทราบว่าไฟล์ที่ใช้เป็น QR Codeสำหรับ 32บิต และ64บิต
ถ้าเครื่องเราเป็น64บิต ใช้ไฟล์64บิต เมื่อทำโปรแกรมเสร็จSaveเป็น .accde 
เมื่อนำไปเปิดเครื่องลอื่นที่เป็น 32บิต สามารถเปิดได้ไหม หรือต้องแก้ไขกันเกิดกรณีนี้ยังไงคะ

ตอนเขียนโค้ดตรงนี้จะระบุยังไง
« แก้ไขครั้งสุดท้าย: 15 พ.ค. 61 , 11:28:05 โดย Earth »

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

16 พ.ค. 61 , 15:51:06
ตอบกลับ #2

TTT

: สร้าง QR Code
« ตอบกลับ #2 เมื่อ: 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 ลงในเครื่องเลย สามารถเรียกรันในโฟลเดอร์เดียวกับฐานข้อมูลเราได้เลย แต่มันต้องเขียนโค้ดอีกพอสมควร ในคลิปที่ผมทำเน้นความง่าย เลยไม่ได้ทำในส่วนนี้ให้ดูครับ
ฐานข้อมูลเป็นเรื่องใกล้ตัว ใครๆก็ทำฐานข้อมูลเองได้นะครับhttp://www.youtube.com/c/AccessCreator link
 
โพสต์นี้ได้รับคำขอบคุณจาก: UnKnown, sjs, Earth

25 พ.ค. 61 , 11:38:54
ตอบกลับ #3

Earth

: สร้าง QR Code
« ตอบกลับ #3 เมื่อ: 25 พ.ค. 61 , 11:38:54 »
***สอบถามเพิ่มเติมค่ะ

ถ้าต้องการให้ QR code สามารถอ่านรองรับภาษาญี่ปุ่นได้ด้วยมีวิธียังไงบ้างคะ

เช่นรหัส 050078801CS ギャクシベンスプール  สามารถสร้างQR Code ได้
แต่ตอนอ่าน ไม่รองรับภาษาญี่ปุ่น จะแสดงเป็น ???แทนค่ะ

อยากทราบว่าโค้ดตรงโมดูลนี้ ต้องเปลี่ยนชนิดเป็น Shift_JIS ตรงไหน

โค๊ด: [Select]
Public Function QRGen(Plain_Text As String)
    Dim RowCount As Long, ColCount As Long, i As Long, j As Long
    Dim Message As String, EncodedMsg As String
   
    Message = Plain_Text
    Call QRCodeEncode(Message, Version, Level, Mask)
    RowCount = QRCodeGetRows()
    ColCount = QRCodeGetCols()
    For i = 1 To RowCount
        For j = 1 To ColCount
            EncodedMsg = EncodedMsg & Chr(QRCodeGetCharAt(i - 1, j - 1))
        Next j
        EncodedMsg = EncodedMsg & vbCrLf
        Next i
        QRGen = EncodedMsg
   
   
End Function

ปล. ด้านล่างนี้เป็นตัวอย่างที่เป็นปัญหาที่เจอมาค่ะ
อ้างถึง
I'm trying to encode with Shift_JIS but my qr code does not match the
output shown by the Zxing Code Generator Page (http://
zxing.appspot.com/generator/).
The test string is:
1234567890お客様名ABCDEabcdeアイウエオ鰺鯵

My code looks like this:

        QRCode qrcode = new QRCode();
        Hashtable<EncodeHintType, String> hints = new
Hashtable<EncodeHintType, String>(2);
        hints.put(EncodeHintType.CHARACTER_SET, "Shift_JIS");
        Encoder.encode(contents, ecLevel, hints, qrcode);

My result matches the UTF-8 qr code generated on the generator page
instead of the Shift_JIS qr code.

I've tried encoding the string to Shift_JIS before the Encoder.encode
call but that results in the same UTF-8 qr code.
« แก้ไขครั้งสุดท้าย: 25 พ.ค. 61 , 11:56:29 โดย Earth »

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

26 พ.ค. 61 , 13:42:56
ตอบกลับ #4

TTT

: สร้าง QR Code
« ตอบกลับ #4 เมื่อ: 26 พ.ค. 61 , 13:42:56 »
จริงๆแล้วไฟล์ DLL ตัวนี้ ผมใช้กับโปรแกรมอื่นที่รองรับ มันสามารถแสดงเป็นภาษาไทย หรือ ญี่ปุ่นได้หมดนะครับ แต่พอมาใช้กับ MS Access มันกลับใช้ได้แค่ภาษาอังกฤษเท่านั้นครับ ยังไม่ทราบว่าเพราะอะไร สงสัยว่าอาจเป็นที่ตัว VBA ของ MS Access เองครับ
คราวนี้ผมเคยอ่านเจอกระทู้เก่ากระทู้นึงของคุณ kamsuk เป็นโค้ดที่รองรับภาษาญี่ปุ่นได้ ไม่ต้องใช้ไฟล์ไลบารี่หรือฟอนต์ใดๆ เขียนโค้ดอย่างเดียว แต่สามารถใช้กับรายงานเท่านั้น ไม่สามารถแสดงบนฟอร์มได้ ยังไงรองศึกษาดูที่กระทู้นี้ครับ https://www.thai-access.com/topic_post.asp?CategoryID=1&TopicID=5576


ฐานข้อมูลเป็นเรื่องใกล้ตัว ใครๆก็ทำฐานข้อมูลเองได้นะครับhttp://www.youtube.com/c/AccessCreator link
 
โพสต์นี้ได้รับคำขอบคุณจาก: Earth

30 พ.ค. 61 , 13:22:28
ตอบกลับ #5

Earth

: สร้าง QR Code
« ตอบกลับ #5 เมื่อ: 30 พ.ค. 61 , 13:22:28 »
ตอนนี้ทำตามกระทู้นี้ สามารถทำได้แล้วค่ะ
https://www.thai-access.com/topic_post.asp?CategoryID=1&TopicID=5576


แต่QR codeที่สแกนอ่านออกมาแล้ว มันเป็นฟร้อนญี่ปุ่นทั้งหมดทุกDigit
ซึ่งต้องการให้ตัวอักษรที่เป็นตัวเลขหรือภาษาอังกฤษ แสดงเป็นฟร้อนภาษาอังกฤษ สามารถทำได้ไหมคะ
ตัวอย่าง ข้อมูลที่อ่านได้จาก QRคือ

220DB031−677001CSギャクシベンスプール Remark
** จะเห็นว่าความกว้างของตัวอักษรภาษาอังกฤษกับตัวเลขมันจะใหญ่กว่าฟร้อนปกติ เพราะค่าที่อ่านได้อยู่ในรูปแบบฟร้อนภาษาญี่ปุ่น

ซึ่งอยากให้แสดงฟร้อนแบบนี้ ที่ภาษาอังกฤษและตัวเลขเป็นฟร้อนปกติ สามารถทำได้ไหมคะ
220DB031-677001CSギャクシベンスプール Remark

 

18 มิ.ย. 61 , 14:15:26
ตอบกลับ #6

Earth

: สร้าง QR Code
« ตอบกลับ #6 เมื่อ: 18 มิ.ย. 61 , 14:15:26 »
1. สอบถามอาจารย์ทุกท่านค่ะ จากโค้ดด้านล่างนี้ จะเพิ่มโค้ดให้ผลลัพธ์แปลงUnicode ให้เป็น UTF-8 หรือ Shift_JISได้อย่างไรบ้างคะ


โค๊ด: [Select]
Option Compare Database
Option Explicit

Private Declare PtrSafe Sub QRCodeEncode Lib "QRCode_x86.dll" _
(ByVal Message As String, ByVal version As Integer, ByVal level As Integer, ByVal Mask As Integer)

Private Declare PtrSafe Function QRCodeGetRows Lib "QRCode_x86.dll" () As Integer
Private Declare PtrSafe Function QRCodeGetCols Lib "QRCode_x86.dll" () As Integer
Private Declare PtrSafe Function QRCodeGetCharAt Lib "QRCode_x86.dll" (ByVal RowIndex As Integer, ByVal ColIndex As Integer) As Integer

Private Const version = 0
Private Const level = 0
Private Const Mask = 0

Public Function QRGen(Plain_Text As String)
    Dim RowCount As Long, ColCount As Long, i As Long, j As Long
    Dim Message As String, EncodedMsg As String
   
    Message = Plain_Text
    Call QRCodeEncode(Message, version, level, Mask)
    RowCount = QRCodeGetRows()
    ColCount = QRCodeGetCols()
    For i = 1 To RowCount
        For j = 1 To ColCount
            EncodedMsg = EncodedMsg & Chr(QRCodeGetCharAt(i - 1, j - 1))
        Next j
        EncodedMsg = EncodedMsg & vbCrLf
        Next i
        QRGen = EncodedMsg
   
   
End Function


2. สอบถามอาจารย์เพิ่มเติมค่ะ
ถ้านำโค้ดมาใช้กับโปรแกรมอื่นที่รองรับภาษาญี่ปุ่นที่ไม่ใช่Access ซึ่ง vb.net สามารถแสดงได้ไหมคะ

จริงๆแล้วไฟล์ DLL ตัวนี้ ผมใช้กับโปรแกรมอื่นที่รองรับ มันสามารถแสดงเป็นภาษาไทย หรือ ญี่ปุ่นได้หมดนะครับ แต่พอมาใช้กับ MS Access มันกลับใช้ได้แค่ภาษาอังกฤษเท่านั้นครับ ยังไม่ทราบว่าเพราะอะไร สงสัยว่าอาจเป็นที่ตัว VBA ของ MS Access เองครับ
คราวนี้ผมเคยอ่านเจอกระทู้เก่ากระทู้นึงของคุณ kamsuk เป็นโค้ดที่รองรับภาษาญี่ปุ่นได้ ไม่ต้องใช้ไฟล์ไลบารี่หรือฟอนต์ใดๆ เขียนโค้ดอย่างเดียว แต่สามารถใช้กับรายงานเท่านั้น ไม่สามารถแสดงบนฟอร์มได้ ยังไงรองศึกษาดูที่กระทู้นี้ครับ https://www.thai-access.com/topic_post.asp?CategoryID=1&TopicID=5576


« แก้ไขครั้งสุดท้าย: 18 มิ.ย. 61 , 14:18:54 โดย Earth »

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

21 มิ.ย. 61 , 23:46:02
ตอบกลับ #7

TTT

: สร้าง QR Code
« ตอบกลับ #7 เมื่อ: 21 มิ.ย. 61 , 23:46:02 »
ความคิดส่วนตัวผมว่าไม่น่าจะได้นะครับ เพราะฟิลด์ของ MS Access มันจะสามารถกำหนดฟอนต์ได้เพียงอย่างเดียวเท่านั้น ยกเว้นกำหนดให้เป็น Rich Text ซึ่งมันก็คงไม่รองรับกับ QR แบบนี้อีก เลยคิดว่าไม่น่าจะได้นะครับ ต้องเป็นฟอนต์ญึ่ปุ่นทั้งหมด ส่วนเรื่องอื่นผมตอบใน YouTube แล้วนะครับ คิดว่าคงเป็นคนเดียวกันที่ถาม
ฐานข้อมูลเป็นเรื่องใกล้ตัว ใครๆก็ทำฐานข้อมูลเองได้นะครับhttp://www.youtube.com/c/AccessCreator link
 
โพสต์นี้ได้รับคำขอบคุณจาก: Earth


บอร์ดเรียนรู้ Access สำหรับคนไทย