รบกวนสอบถามฟอร์มแสดงผลแบบ realtime



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

06 พ.ย. 61 , 11:35:59
อ่าน 619 ครั้ง

prajak

ตามรูปผมจะมี2ฟอร์ม
ฟอร์ม1 สำหรับป้อนข้อมูล
ฟอร์ม2 สำหรับแสดงผล เปิดformนี้ไว้ตลอด (ให้แสดงหน้าไลน์ผลิต)
database อยู่ที่เครื่อง Server
ต้องการให้คีย์ข้อมูลที่ฟอร์ม1 เช่น เป้าหมายต่อชั่วโมง แล้วให้ไปแสดงที่ฟอร์ม2 ที่เปิดฟอร์มทิ้งไว้อีกเครื่องหนึ่งทันที จะต้องทำยังไงครับ ซึ่งตอนนี้ที่ฟอร์มแสดงผลที่เปิดทิ้งไว้ก็เปลี่ยนนะครับ แต่จะนานประมาณ1นาทีหลังจากคีย์ข้อมูล( จะตั้งให้ form 2 refreshบ่อยๆก็กลัวเครื่องจะทำงานหนักเกินไป ไม่รู้ผมเข้าใจถูกหรือเปล่า)

form1 (สำหรับป้อนข้อมูล)


form2 (แสดงผลต้องเปิดทิ้งไว้ตลอด)


 

06 พ.ย. 61 , 17:26:48
ตอบกลับ #1

ปิ่นณรงค์

: รบกวนสอบถามฟอร์มแสดงผลแบบ realtime
« ตอบกลับ #1 เมื่อ: 06 พ.ย. 61 , 17:26:48 »
ถ้าเป็นการเปิดฟอร์มไว้ตลอดเป็นไปได้ไหมครับ ถ้าเราจะสร้าง Field TimeStamp ไว้ด้วยเพื่อใช้ตรวจสอบข้อมูลโดยวิธีการประมาณนี้คับ
1.สร้าง Field TimeStamp

2.สร้างคิวรี่ใส่คำสั่งSQL   SELECT Last(TimeStamp) AS LastTimeStamp FROM [ชื่อตาราง];
โดยตั้งชื่อคิวรี่ CheckTimeStamp

3.สร้าง textbox ชื่อ textbox1 Bound กับ Field LastTimeStamp ของคิวรี่

4.ที่ Form ตั้ง TimeInterval ซัก 125

5.ที่ Event OnTimer ใส่
If textbox1 <> DLookup ("LastTimeStamp",[CheckTimeStamp]) then
me.refresh 'สั่งให้ถ้าเจอว่า LastTimeStamp มีการเปลี่ยนแปลง หรือ อัพเดท ก็ให้ Refresh
end if
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

09 พ.ย. 61 , 13:43:45
ตอบกลับ #2

prajak

: รบกวนสอบถามฟอร์มแสดงผลแบบ realtime
« ตอบกลับ #2 เมื่อ: 09 พ.ย. 61 , 13:43:45 »
ยังงงๆอยู่ครับ สร้าง field TimeStamp คือสร้างฟิวด์ชื่อ TimeStamp ในtable แล้วชนิดเป็น datetimeเหรอครับ
ตอนนี้ฟอร์มที่ใช้แสดงผลมากจาก query ชื่อ QtblSaw1
และ QtblSaw1 มาจาก table ชื่อ TblSawing ครับ

 

09 พ.ย. 61 , 14:23:51
ตอบกลับ #3

ปิ่นณรงค์

: รบกวนสอบถามฟอร์มแสดงผลแบบ realtime
« ตอบกลับ #3 เมื่อ: 09 พ.ย. 61 , 14:23:51 »
.
« แก้ไขครั้งสุดท้าย: 09 พ.ย. 61 , 16:08:06 โดย ปิ่นณรงค์ »
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

09 พ.ย. 61 , 15:20:02
ตอบกลับ #4

ปิ่นณรงค์

: รบกวนสอบถามฟอร์มแสดงผลแบบ realtime
« ตอบกลับ #4 เมื่อ: 09 พ.ย. 61 , 15:20:02 »
จับจาก เป้าต่อชั่วโมงของ form 1 ก็ได้ครับคุณ Prajak โดยกำหนดให้ Dlookup ถ้า เป้าต่อชั่วโมง form 1 กับ form2 ไม่เหมือนกัน ก็ให้ refresh ครับ
ไม่ต้องสร้าง timestamp ก็ได้คับ พอดีเพิ่งคิดออกเดี่ยวผมลองทำตัวอย่างให้ดูครับ
:love: :grin:
 

09 พ.ย. 61 , 15:50:38
ตอบกลับ #5

ปิ่นณรงค์

: รบกวนสอบถามฟอร์มแสดงผลแบบ realtime
« ตอบกลับ #5 เมื่อ: 09 พ.ย. 61 , 15:50:38 »
ลองดูตัวอย่างนี้นะครับ form1 ผมสมมุติว่าเราใส่ตัวเลขล่าสุด โดยเปิด Form2 ไว้ ข้อมูลจะอัพเดทตาม

โดย form2 สามารถนำไปใช้งานดูข้อมูลได้ โดยเช็คข้อมูลผ่าน query โดยใช้ Max เช็คค่าสูงสุดที่เพิ่มขึ้นมาครับ แล้วใช้ Dlookup มาเช็คข้อมูลปัจจุบันที่ Form2 ครับ

« แก้ไขครั้งสุดท้าย: 09 พ.ย. 61 , 15:58:38 โดย ปิ่นณรงค์ »
:love: :grin:
 

09 พ.ย. 61 , 15:57:39
ตอบกลับ #6

prajak

: รบกวนสอบถามฟอร์มแสดงผลแบบ realtime
« ตอบกลับ #6 เมื่อ: 09 พ.ย. 61 , 15:57:39 »
รบกวนสอบถามนะครับ เนื่องจากทั้ง form1และform2 มาจากqueryเดียวกัน ถ้าผมตั้งให้ฟอร์ม2 requeryทุกๆ 30วินาที จะมีผลเสียมากหรือเปล่าครับ
ลองทำตามที่คุณปิ่นณรงค์บอก โดยตั้งTime Interval ไว้ที่ 125 สังเกตเม้าส์จะขยับตลอดเลยครับ

 

09 พ.ย. 61 , 16:01:40
ตอบกลับ #7

ปิ่นณรงค์

: รบกวนสอบถามฟอร์มแสดงผลแบบ realtime
« ตอบกลับ #7 เมื่อ: 09 พ.ย. 61 , 16:01:40 »
รบกวนสอบถามนะครับ เนื่องจากทั้ง form1และform2 มาจากqueryเดียวกัน ถ้าผมตั้งให้ฟอร์ม2 requeryทุกๆ 30วินาที จะมีผลเสียมากหรือเปล่าครับ
ลองทำตามที่คุณปิ่นณรงค์บอก โดยตั้งTime Interval ไว้ที่ 125 สังเกตเม้าส์จะขยับตลอดเลยครับ

ลองตัวอย่างที่ส่งไปดูหรือยังครับ

ไม่มีการใช้ Refresh แล้วครับ
ใช้แค่การเปลี่ยนค่า เม้าไม่น่ากระพริบได้นะครับ
โดยตรวจสอบค่าเมื่อถึงเวลา จากคิวรี่
โค๊ด: [Select]
Private Sub Form_Timer()
If IsNull(Me.ShowPlan) Then
Me.ShowPlan = DLookup("Plan_Hr", "Query1")
End If
If Me.ShowPlan <> DLookup("Plan_Hr", "Query1") Then
Me.ShowPlan = DLookup("Plan_Hr", "Query1")
End If
End Sub
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: prajak

12 พ.ย. 61 , 13:42:22
ตอบกลับ #8

prajak

: รบกวนสอบถามฟอร์มแสดงผลแบบ realtime
« ตอบกลับ #8 เมื่อ: 12 พ.ย. 61 , 13:42:22 »
ทำได้แล้วครับ ขอบคุณมากนะครับ

 


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