ช่วยดูคำสั่งนี้ หน่อยครับ ComPort
กระทู้เก่าบอร์ด อ.Yeadram

 1,442   4
URL.หัวข้อ / URL
ช่วยดูคำสั่งนี้ หน่อยครับ ComPort

----------------------------------------------------
Private Sub Form_Load()
Me.TimerInterval = 2000
    MSComm1.CommPort = 1 'COM Port Set
    MSComm1.Settings = "9600,n,8,1"
    MSComm1.RThreshold = 9
    MSComm1.PortOpen = True             ' COM Open
End Sub
---------------------------------------------------
Private Sub MSComm1_OnComm()
Dim aa As String
aa = MSComm1.Input
SerialNumber = aa
DoCmd.GoToRecord
End Sub
---------------------------------------------------
ถ้าใช้ - Private Sub Form_Timer() - มันมีข้อมูลมาครบแต่ มันจะติดปัญหา คือไม่อยากให้มัน รีเฟรีสอ่ะครับ และถ้าใช้อันนี้เวลากดปุ่มอะไจจะ Error ทันทีเลย
- Private Sub MSComm1_OnComm() - คือใช้คำสั่งนี้แล้วข้อมูลใน จะมาไม่ครบครับ อันเนื่องมาจากอะไรครับ
- แล้วมีคำสั่งไหนแนะนำไหมครับ
ขอความกรุณา อ. ด้วยครับ

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

1 @R03806
แยกฟอร์มรับ ข้อมูลเป้น pop up ฟอร์มดีกว่าไหมครับ
เรื่องเกี่ยวกับ timer ก็ไปตั้งค่าในฟอร์มป๊อบอัพนั่นเลย
เช่น
- ฟอร์มหลักไม่มี การตั้งเวลาใดๆ เลย
- ฟอร์มหลัก มี textbox ไว้รับค่าข้อมูลจากการสแกน 1 ช่อง สมมติว่าชื่อ tscan
- เมื่อจะสแกนอะไรให้กดปุ่มซักอย่างแล้ว เรียกฟอร์มป๊อบอัพขึ้นมา
- ในฟอร์มป๊อบอัพ มีเหตุการ Form_timer
- ไล่ตรวจดูข้อมูลว่ามีข้อมูลส่งผ่าน com port มาหรือยัง ถ้ามีข้อมูลมาแล้ว ให้..
- ส่งข้อมูลดังกล่าวไปที่ฟอร์มหลัก forms("หลัก").controls("tscan") = me.textbox1
- สั่งปิดฟอร์มป๊อบอัพ
- ฟอร์มหลักก็จะถูกโฟกัสกลับมาทำงานอื่นต่อได้เลย


หรือถ้าไม่สะดวกในการใช้ปุ่มกดเรียก ป๊อบอัพ ก็ลองหาคอนโทรลพวก timer มาใส่แทนการใช้ form_timer โดยเอามาใช้กับฟอร์มหลักเลย ไม่น่าจะรีเฟรชแล้วนะครับ
2 @R03812
ขอบคุณครับเดี๋ยวจะทดสอบดู
3 @R08725
ความคิดเจ๋งมากเลยทีเดียวคับ
นับถือๆ
4 @R08726
ทำไรกันหรอ... บอกบ้างดิ...
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3422s