เมื่อใช้เครื่องยิงบาร์โคตแล้วให้ไปโฟกัที่ช่องที่กำ
กระทู้เก่าบอร์ด อ.Yeadram

 1,376   11
URL.หัวข้อ / URL
เมื่อใช้เครื่องยิงบาร์โคตแล้วให้ไปโฟกัที่ช่องที่กำ

เมื่อใช้เครื่องยิงบาร์โคตแล้วให้ไปโฟกัที่ช่องที่กำหนด
เราต้องเขียนโคตยังงัยครับ

11 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R23019
ลองใช้เหตุการณ์ On Change ตรงช่องที่ใส่ บาร์โค๊ต แล้วใช้คำสั่ง

Me.ชื่อช่องที่กำหนด.Setfocus

ลองดูครับ
2 @R23024
รูปแบบการทำงานมันเป็นแบบที่ต้องการครับ
เพียงแต่ ข้อความในบาร์โคต สมมุติว่ามันคือ 20
มันจะบันทึกค่า 2 ในช่องที่ยิงบาร์โคต แล้ว 0 ไปใส่ในช่องที่ โฟกัส
3 @R23028
อาจเป็นเพราะ Event On Change จะทำงานทุกครั้งเมื่อมีการใส่ข้อมูลแต่ละตัว ถ้าเครื่องบาร์โค๊ดใส่ข้อมูลแบบการ Paste ก็จะไม่มีปัญหา แต่ถ้าใส่แบบการคีย์เลขทีละตัวก็จะทำให้ได้แค่เลขเดียว อะไรอย่างนี้มั้งครับ หากเป็นอย่างนั้น ถ้าหากบาร์โค๊ดมีหลักแน่นอนเท่ากันหมด เช่น เลขบาร์โค๊ดทุกตัวมี 2 หลัก ก็สามารถเขียนเงื่อนไขที่ On Change ได้แบบนี้

If Len(Me.ชื่อช่องบาร์โค๊ต.Text) > 1 Then Me.ชื่อช่องที่กำหนด.SetFocus

แต่ถ้าหลักบาร์โค๊ตแต่ละอย่างไม่เท่ากัน ก็ยังนึกไม่ออกเหมือนกันครับ ว่าจะไปใช้ Events ไหนได้
4 @R23032
ถ้าเขาใจไม่ผิด คำถามคือ ให้โปรแกรมรู้ว่านี่เป็นการยิงบาร์โค้ด ไม่ใช่การกดคีย์บอร์ด ถ้าอย่างนี้ วิธีตรงๆคิดว่าไม่มีครับ ทางอ้อมก็คือต้องดูว่าเราสามารถพิมพ์รหัสที่แทนคีย์ Alt-อักษร ออกมาเป็นบาร์โค้ดได้หรือไม่ เพราะเราสามารถกำหนดให้ Caption ของเท็กซ์บ็อกซ์ให้มี Hot Key ได้ เช่น Caption เป็น &Product Code (คำที่แสดงออกมาจะเป็น Product Code) ถ้าเรากด Alt-P ที่ไหนในฟอร์ม มันก็จะกระโดดไปช่อง Product Code ให้ เราก็พิมพ์เฉพาะบาร์โค้ด Alt-P แปะไว้ที่ไหนที่สะดวกต่อการยิง ลำดับการใช้ก็ต้องยิง Alt-P ก่อนทีนึง มันก็จะไปที่ช่อง Product Code แล้วค่อยยิงบาร์โค้ดสินค้าอีกทีครับ ส่วนบาร์โค้ดของ Alt-P คืออะไร ก็ต้องไปดูที่คู่มือของเครื่องยิงว่าทำได้หรือไม่ครับ
5 @R23034
อื่ม... คิดได้อีกวิธีนะครับ ไม่รู้พอจะใช้ได้จริงหรือเปล่า คือใช้ On Timer ดังนี้ครับ

- ที่ Textbox บาร์โค๊ด Event > On Change

Me.TimerInterval = 1500

- ที่ฟอร์ม Event > On Timer

Private Sub Form_Timer()
    If Me.TimerInterval > 0 Then
        Me.ชื่อช่องที่กำหนด.SetFocus
        Me.TimerInterval = 0 ' ปิด
    End If
End Sub

คือเมื่อเรายังมีการใส่ค่าอยู่ที่ Textbox บาร์โค๊ด มันก็จะถูกใส่ค่า 1.5 วินาทีใน TimerInterval ไปเรื่อยๆ ทำให้ On Timer ยังไม่ทำงาน จนกว่าหยุดใส่ข้อมูลประมาณ 1.5 วินาที On Timer ก็จะทำงาน และไปโฟกัสที่ Textbox ที่ต้องการ จากนั้นก็ให้ค่า TimerInterval เป็น 0 เพื่อหยุดการทำงาน ซึ่งคาดว่าระยะเวลาการที่เครื่องจะใส่ข้อมูลแต่ละตัวลงไปคงไม่เกิน 1.5 วิ ประมาณนี้ครับ ลองปรับใช้ดู
6 @R23038
ขอโทษอาจารย์ทั้ง 2 ผมเพิ่งกลับจากประชุมต่างจังหวัด ยังไม่ได้ลองทำ

ตอบอาจารย์สันติสุข
ผมสังเกตุเห็นในเซเว่น พอยิงบาร์โคตเสร็จ ยิงสินค้าต่อไปได้เลย เลยอยากทำแบบนั้นบ้างครับ

ตอบอาจารย์ TTT ผมกำลังคิดจะออกแบบว่า ทำไงให้มันพิมพ์ถึงตัวสุดท้าย แล้ว เปลี่ยนช่อง จากขอลองทำแปปนะครับ
7 @R23040
อันนี้ผมใช้ที่ VB.net นะแต่คิดว่าน่าจะมีใน MS Access ไม่รู้ช่วยได้ไหมนะครับมาแชร์ดู หัวอ่านบาร์โค๊ตผม symbol

Private Sub txtBarcode_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtBarcode.KeyDown
        'MsgBox e.keycode
        If e.KeyCode = Keys.Enter Then 'ตรงนี้เช็คหัวอ่านบาร์โค๊ตส่งค่ามาหลังจาก Scan บาร์โค๊ตเสร็จครับ
            SearchBarcodeID()
            txtBarcode.SelectAll()
            Exit Sub
        End If
    End Sub
8 @R23051
สำคัญที่ Barcode Reader ต้องส่ง key Enter มาด้วยครับ
ตาม code ของคุณ sjs ครับ

ซึ่งหากส่ง Enter มาแล้ว สามารถทำงานทุกอย่างเหมือน form ปกติเลยครับ

ปัญหาที่ต้องระวังคือ ถ้ายังไม่ focus ที่ field Barcode แล้วเกิด ยิง Barcode เข้ามาจะทำอย่างไร
กรณีนี้ คงต้องศึกษาว่า Barcode Reader มี API มาให้ใช้จับการส่งข้อมูลในขณะใดๆ ได้หรือไม่
9 @R23074
ขอบพระคุณอาจารย์ทุกท่านครับ
พอดีเพิ่งรู้ว่าเพื่อน เป็นเซลขายบาร์โค็ต เค้าให้ความรู้มาหลายเรื่อง เช่น
เครื่องยิงบาร์โคต มันส่งค่า Tab หรือ Enter หรือ อะไรต่างๆ ได้ ไม่ต้องเขียนโคต
แต่เวลาเอามาใช้ มันก็ต้องใช้ โคตของอาจารย์ TTT ของ และ ของอาจารย์
ที่เคย สอนมา ร่วมด้วยครับ

ตอนนี้กำลังติด วิธียิงบาร์โคตให้มันอ่านค่า เหมือนกดแป้นคีบอร์ด

อยากรู้ว่า F4 มันต้องใช้รหัสบาร์โคตอะไรครับ ขอบคุณครับ
10 @R23083
ถ้าเป็แบบทีเราเจี แก้ด้วยวิธีปิดแทบ เปียนจาก ใช้ เป็น ไม่ใช้
ถ้าปันหาแบบเดียวกับเรา
11 @R23086
ถ้าเป็แบบทีเราเจี แก้ด้วยวิธีปิดแทบ เปียนจาก ใช้ เป็น ไม่ใช้
ถ้าปันหาแบบเดียวกับเรา
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2841s