แสดงกระทู้

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

หน้า: [1]
1
ห้อง MS Access / : สร้าง QR Code
« เมื่อ: 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


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

2
ห้อง MS Access / : สร้าง QR Code
« เมื่อ: 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.
โพสต์นี้ได้รับคำขอบคุณจาก: anek_TH

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


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

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

4
ห้อง MS Access / > Sumค่า Grand Total ใน Report Footer
« เมื่อ: 09 พ.ค. 61 , 19:44:03 »
ตอนนี้ทำได้แล้วค่ะ Errorค่าตัวเลขที่เพี้ยนไปเกิดจากแถว Grand total charge
เลยทำแถวนี้ใหม่โดยสร้างunbound textbox แล้วใส่โค้ดแทนการดึงค่าจากในแถวTotal chargeค่ะ

Grand ใช้การแปลงกลับไปเป็นจำนวนเต็มก่อน
แล้ว เอาไปใส่ใน textbox ของกลุ่ม Grand Total Charge

Private Sub Report_Load()
Dim Ain, Aout, Arecei, Aissue As Integer
Ain = Sumin
Aout = Text103
Arecei = Text105
Aissue = Text107
intxt = Ain
outtxt = Aout
receitxt = Arecei
issuetxt = Aissue

End Sub
ปล. ขอบคุณ คุณNewbiesค้า
โพสต์นี้ได้รับคำขอบคุณจาก: sjs

5
ห้อง MS Access / Error "The database engine could not lock table"
« เมื่อ: 08 พ.ค. 61 , 15:43:53 »
ตอนรัน Queryขึ้นแจ้งเตือนดังรูปด้านล่าง ซึ่งไม่ได้เปิด Tableดังกล่าว หรือTableใด รวมถึงไม่มีการเปิดฟอร์ม Reportใดๆไว้เลยค่ะ
ในแต่ตอนรันครั้งแรก ระบบเอาข้อมูลจากตารางMonthly_FG ไปใช้ต่ออีกหลายQuery
คิดว่าน่าจะมีProcess ค้างอยู่ แต่ไม่รู้ตรงไหน
เวลาจะรันครั้งที่สอง จึงต้องปิดและเปิดโปรแกรมใหม่ถึงจะสามารถรันได้ปกติ

อยากทราบว่ามีวิธีไหนที่จะเขียนโค้ดดักก่อนว่า ให้เคลียร์หรือปิดProcessทั้งหมดก่อน หรือปิดและเปิดโปรแกรมใหม่ไหมคะ
เพื่อจะได้ไม่มีErrorแบบนี้เกิดขึ้น


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

6
ห้อง MS Access / > Sumค่า Grand Total ใน Report Footer
« เมื่อ: 03 พ.ค. 61 , 09:27:50 »
สอบถามเพิ่มเติมค่ะ




จากรูปได้สร้างบวกค่า Total W/H Service Charge :ซึ่งได้จากแถวGrand Total Charge บวกกัน

แต่เวลาเปิดหน้าReportมาครั้งแรกค่าช่องTotal W/H Service Charจะไม่ถูกต้อง แต่พอรอสัก1-2วิ ค่าที่ถูกก็รันขึ้นมาเอง
ทีนี้จะต้องนำค่า Total W/H Service Charge ไปอ้างอิงในหน้าถัดไป
ซึ่งถ้าเปิดหน้าReportนี้มาและกดไปหน้าถัดไปเลย จะนำเอาข้อมูลที่ไม่ถูกต้องไปคำนวน (คือค่า49,104,693)

อยากทราบวิธีแก้ไขได้ค่ะ
โพสต์นี้ได้รับคำขอบคุณจาก: sjs

7
ห้อง MS Access / > > การ SUM Unbound Textbox บนForm Footer
« เมื่อ: 20 เม.ย. 61 , 17:32:45 »
ขอบคุณค้าา

=DSum("[ชื่อTextboxที่จะคำนวน]","[ชื่อตารางหรือคิวรี่]")
ใช้ Dsum แทนนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: panita

8
ห้อง MS Access / การใช้ Not in
« เมื่อ: 18 เม.ย. 61 , 16:27:51 »
ต้องการสร้างqueryโดยให้เลือกข้อมูลทั้งหมดที่ชนิดไม่ใช่ ง4ตัวนี้ค่ะ "TRACTOR-L", "TRACTOR-M", "TRACTOR-B","DC-95","DC-70"
เลยเขียนเงื่อนไขแบบนี้ค่ะ แต่รันออกมากลับไม่มีข้อมูลมูลแสดง
ผิดตรงไหนหรอคะ

Not In ("TRACTOR-L","TRACTOR-M","TRACTOR-B","DC-95","DC-70")
โพสต์นี้ได้รับคำขอบคุณจาก: pirin

9
ห้อง MS Access / > สอบถามการQuery คำนวนค่า
« เมื่อ: 10 เม.ย. 61 , 11:34:52 »
ตอนนี้คิดแนวทางโค้ดไว้ประมานนี้ค่ะ


IIf(min([Date]) ,[TotalBefore]+[IN], [Total Amount](วันก่อนหน้า) +[IN]-[OUT](วันก่อนหน้า)) AS Total Amount


อธิบาย
 ถ้าเป็นวันที่น้อยสุดของItemนั้น
 ให้ทำ [TotalBefore]+[IN] ถ้าไม่ใช่ให้ทำ >>นำค่า[Total Amount](วันก่อนหน้า) +[IN]-[OUT](วันก่อนหน้า)
โพสต์นี้ได้รับคำขอบคุณจาก: ekarat

10
ห้อง MS Access / สอบถามการQuery คำนวนค่า
« เมื่อ: 09 เม.ย. 61 , 16:56:17 »
สวัสดีค่ะ

อยากทราบวิธีเขียนQuery หรือ SQL เพื่อคำนวนค่าตามรูปที่อธิบายด้านล่างค่ะ
ต้องการหาค่า ค่าTotal Amount โดยคำนวนจาก
Total Amount(รายการของวันแรก จะยกเอาฟิลด์ Stock Before มาคิด) = StockBefore + Received
Total Amount(ต่อมา จะเอาฟิวด์ตัวเองมาคิด) = Total Amount(วันก่อนหน้า) + Received(วันนี้) - Shipment(ของวันก่อนหน้า)
โพสต์นี้ได้รับคำขอบคุณจาก: ekarat

หน้า: [1]