กระทู้เก่าบอร์ด อ.Yeadram
        
           2,981   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 มาที่
[email protected]
เริ่ม Email วันที่ 1 ตุลาคม 2554 น่ะครับ
เพราะว่า บริษัทฯ ที่ผมทำงานเขาเปลี่ยน Email ใหม่ครับ
ขอบพระคุณมากๆ ครับ
    
  2. วิธีการเรียกใช้งาน ก็แค่นำคำสั่งไปวางในส่วนที่ต้องการ ดังนี้
Call Wait(2)
' โดยเลข 2 คือ ค่าจำนวนวินาทีที่ต้องการหน่วงเวลา
ขอขอบพระคุณเจ้าของ และผุ้ตอบกระทู้ด้านล่างนี้ครับ
http://forums.aspfree.com/microsoft-access-help-18/pausing-time-delay-80937.html
หากท่านใดอยากได้ตัวอย่างส่ง Mail มาที่
[email protected]
เริ่ม 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.0656s
    
      
		
หาก มัน ยังคำนวนไม่เสร็จ มัน จะขึ้น นาฬิกา ทรายอยู่แล้ว นี่ครับ