กระทู้เก่าบอร์ด อ.Yeadram
2,782 9
URL.หัวข้อ /
URL
ต้องการหน่วงเวลา หลังจาก Event after update
ปัญหาคือ ผมอยากทำการหน่วงเวลาสัก 3 วินาที
หลังจากมีการบันทึกข้อมูลแล้วเสร็จ (Event after update) ใน Field นั้นๆ
เพื่อทำการคำนวณบางอย่างครับ
รบกวนแนะนำด้วยครับ
หลังจากมีการบันทึกข้อมูลแล้วเสร็จ (Event after update) ใน Field นั้นๆ
เพื่อทำการคำนวณบางอย่างครับ
รบกวนแนะนำด้วยครับ
9 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R11213
ต้องขอโทษด้วยครับ ที่ชี้แจงผิด ประเด็นคือ
ผมทำการ Scan Label (Field A) แล้วข้อมูลที่ได้
จะถูก Dlookup เพื่อนำข้อมูลไปใส่ใน Field B อีกอันหนึ่งครับ
แต่ปัญหามันก็คือ ปกติมื่อทำการ Scan Label แล้ว
Cursor จะต้องเลื่อนไปที่ New Record ของ Field A
เพื่อรอ Scan Label รายการต่อไป
ทีนี้มันเหมือนกับว่า Dlookup ไม่เจอเพราะว่า
Cursor มันมารอที่ New record ของ Field A ที่เป็นข้อมูลว่างเปล่า
ผมก็เลยมีความคิดว่า Step คำสั่งน่าจะเป็น
1. หลังจาก Scan Label แล้วให้ Cursor อยู่ตรงนั้นประมาณ
หรือทำหน่วงเวลาหลังจาก Scan label สัก 2-3 วินาที
2. เพื่อให้คำสั่ง Dlookup ทำการค้นหาข้อมูลมาใส่ใน Field B ก่อน
3. แล้ว Cursor จึงเลื่อนไปที่ New record ของ Field A
ขอบคุณสำหรับทุกๆ คำแนะนำครับ
ผมทำการ Scan Label (Field A) แล้วข้อมูลที่ได้
จะถูก Dlookup เพื่อนำข้อมูลไปใส่ใน Field B อีกอันหนึ่งครับ
แต่ปัญหามันก็คือ ปกติมื่อทำการ Scan Label แล้ว
Cursor จะต้องเลื่อนไปที่ New Record ของ Field A
เพื่อรอ Scan Label รายการต่อไป
ทีนี้มันเหมือนกับว่า Dlookup ไม่เจอเพราะว่า
Cursor มันมารอที่ New record ของ Field A ที่เป็นข้อมูลว่างเปล่า
ผมก็เลยมีความคิดว่า Step คำสั่งน่าจะเป็น
1. หลังจาก Scan Label แล้วให้ Cursor อยู่ตรงนั้นประมาณ
หรือทำหน่วงเวลาหลังจาก Scan label สัก 2-3 วินาที
2. เพื่อให้คำสั่ง Dlookup ทำการค้นหาข้อมูลมาใส่ใน Field B ก่อน
3. แล้ว Cursor จึงเลื่อนไปที่ New record ของ Field A
ขอบคุณสำหรับทุกๆ คำแนะนำครับ
3 @R11214
ทำได้แล้วครับ จากการค้นหาทาง Google ผมนำ Code มาดัดแปลง ดังนี้
1. สร้าง Module ขึ้นมาใหม่ แล้วใส่ Code ข้างล่างนี้ลงไป แล้วทำการ Save ไว้
Function Wait(Delay As Integer)
' This function creates a time delay
' you must use a call to run it Call Wait(2)
Dim DelayEnd As Double
DelayEnd = DateAdd("s", Delay, Now)
While DateDiff("s", Now, DelayEnd) > 0
Wend
End Function
ต่อด้านล่าง มัน Post ไม่เข้าครับ
1. สร้าง Module ขึ้นมาใหม่ แล้วใส่ Code ข้างล่างนี้ลงไป แล้วทำการ Save ไว้
Function Wait(Delay As Integer)
' This function creates a time delay
' you must use a call to run it Call Wait(2)
Dim DelayEnd As Double
DelayEnd = DateAdd("s", Delay, Now)
While DateDiff("s", Now, DelayEnd) > 0
Wend
End Function
ต่อด้านล่าง มัน Post ไม่เข้าครับ
4 @R11215
ต่อจากด้่านบนน่ะครับ
2. วิธีการเรียกใช้งาน ก็แค่นำคำสั่งไปวางในส่วนที่ต้องการ
' you must use a call to run it >>> Call Wait(2)
' โดยเลข 2 คือ ค่าจำนวนวินาทีที่ต้องการหน่วงเวลา
ขอโทษด้วยครับ ผมพยายามพิมพ์แค่คำสั่งอย่างเดียวแต่ Web ไม่ยอมให้ post
แจ้งว่ามี Error
Microsoft VBScript runtime error '800a0005'
Invalid procedure call or argument: 'Mid'
/functions/functions_filters.asp, line 37
2. วิธีการเรียกใช้งาน ก็แค่นำคำสั่งไปวางในส่วนที่ต้องการ
' you must use a call to run it >>> Call Wait(2)
' โดยเลข 2 คือ ค่าจำนวนวินาทีที่ต้องการหน่วงเวลา
ขอโทษด้วยครับ ผมพยายามพิมพ์แค่คำสั่งอย่างเดียวแต่ Web ไม่ยอมให้ post
แจ้งว่ามี Error
Microsoft VBScript runtime error '800a0005'
Invalid procedure call or argument: 'Mid'
/functions/functions_filters.asp, line 37
5 @R11216
ลองอีกที
2. วิธีการเรียกใช้งาน ก็แค่นำคำสั่งไปวางในส่วนที่ต้องการ ดังนี้
Call Wait(2)
' โดยเลข 2 คือ ค่าจำนวนวินาทีที่ต้องการหน่วงเวลา
ขอขอบพระคุณเจ้าของ และผุ้ตอบกระทู้ด้านล่างนี้ครับ
http://forums.aspfree.com/microsoft-access-help-18/pausing-time-delay-80937.html
หากท่านใดอยากได้ตัวอย่างส่ง Mail มาที่
suchat.p@th.yusen-logistics.com
เริ่ม Email วันที่ 1 ตุลาคม 2554 น่ะครับ
เพราะว่า บริษัทฯ ที่ผมทำงานเขาเปลี่ยน Email ใหม่ครับ
ขอบพระคุณมากๆ ครับ
2. วิธีการเรียกใช้งาน ก็แค่นำคำสั่งไปวางในส่วนที่ต้องการ ดังนี้
Call Wait(2)
' โดยเลข 2 คือ ค่าจำนวนวินาทีที่ต้องการหน่วงเวลา
ขอขอบพระคุณเจ้าของ และผุ้ตอบกระทู้ด้านล่างนี้ครับ
http://forums.aspfree.com/microsoft-access-help-18/pausing-time-delay-80937.html
หากท่านใดอยากได้ตัวอย่างส่ง Mail มาที่
suchat.p@th.yusen-logistics.com
เริ่ม Email วันที่ 1 ตุลาคม 2554 น่ะครับ
เพราะว่า บริษัทฯ ที่ผมทำงานเขาเปลี่ยน Email ใหม่ครับ
ขอบพระคุณมากๆ ครับ
6 @R11217
ลองเปลี่ยนจาก AfterUpdate event เป็น BeforeUpdate event
7 @R11222
ใช้ประโยชน์อะไรได้บ้างครับ
คือเคยลองเขียนประเภทนี้ หวังจะให้โปรแกรมหยุดรอการคำนวณค่าบ้างอย่างก่อนแล้วจะนำผลนั้นมาคำนวณอีกค่านึง
แต่ปรากฎว่า ช่วงการ loop โปรแกรมก็ไม่สามารถคำนวณค่าอื่นได้อยู่ดี
เช่นใน link ที่ท่านให้ดู ผมก็ยังคิดไม่ออกว่าทำไปทำไม เพราะในตัวอย่าง ตอนสั่งเปิดฟอร์ม แล้วปิดอีกฟอร์มอัตโนมัติ โดยในการหน่วงเวลา แทนที่ฟอร์มจะเปิดก่อน แล้วรอตามเวลา แล้วปิดอีกฟอร์ม ก็เปล่า กลายเป็นฟอร์มที่สั่งเปิดก็แสดงผลไม่ได้เพราะ cpu ไม่ว่า ทำการ loop อยู่ จึงไม่รู้ว่า เราควรใช้ได้ดีกับสถานะการประเภทไหนครับท่าน
ขอบคุณครับ
คือเคยลองเขียนประเภทนี้ หวังจะให้โปรแกรมหยุดรอการคำนวณค่าบ้างอย่างก่อนแล้วจะนำผลนั้นมาคำนวณอีกค่านึง
แต่ปรากฎว่า ช่วงการ loop โปรแกรมก็ไม่สามารถคำนวณค่าอื่นได้อยู่ดี
เช่นใน link ที่ท่านให้ดู ผมก็ยังคิดไม่ออกว่าทำไปทำไม เพราะในตัวอย่าง ตอนสั่งเปิดฟอร์ม แล้วปิดอีกฟอร์มอัตโนมัติ โดยในการหน่วงเวลา แทนที่ฟอร์มจะเปิดก่อน แล้วรอตามเวลา แล้วปิดอีกฟอร์ม ก็เปล่า กลายเป็นฟอร์มที่สั่งเปิดก็แสดงผลไม่ได้เพราะ cpu ไม่ว่า ทำการ loop อยู่ จึงไม่รู้ว่า เราควรใช้ได้ดีกับสถานะการประเภทไหนครับท่าน
ขอบคุณครับ
8 @R11224
ลองใช้ DoEvents() ดูครับ
เอาไปวางแทน Wait()
ไม่แน่ใจว่าในกรณีนี้ได้หรือเปล่า แต่เหมาะมากกับคำสั่ง Sendkeys
ข้อมูลเพิ่มเติมที่ http://greatfriends.biz/webboards/msg.asp?id=5975
เอาไปวางแทน Wait()
ไม่แน่ใจว่าในกรณีนี้ได้หรือเปล่า แต่เหมาะมากกับคำสั่ง Sendkeys
ข้อมูลเพิ่มเติมที่ http://greatfriends.biz/webboards/msg.asp?id=5975
9 @R11226
จริงอย่างที่คุณ PichaiTC กล่าว
Time: 0.3696s
หาก มัน ยังคำนวนไม่เสร็จ มัน จะขึ้น นาฬิกา ทรายอยู่แล้ว นี่ครับ