กระทู้เก่าบอร์ด อ.Yeadram
        
           2,379   4		  
          
					  
		    URL.หัวข้อ / 
		    URL
        
        ไม่อยากให้โชว์การทำงานเบื้องหลัง      
    
      Code ด้านล่างผมใช้สำหรับสร้าง Form ใหม่ ถ้าใครขี้เกียจอ่านไม่เป็นไรครับ
คำถามก็คือเวลาที่มันสร้าง form ใหม่หน้าจอมันจะกระพริบ ผมไม่อยากให้มันกระพริบต้องใส่ code อย่างไรครับ ...พอดีรู้แต่ใน Excel จะใส่ว่า ScreenUpdate = False แต่ใน access ไม่มีหรือเปล่า
Dim frm As Form
Dim fName As String
Dim ctlText(20) As Control
Dim RS As Recordset
DoCmd.Echo False
Set RS = CurrentDb.OpenRecordset(SourceName)
Set frm = CreateForm
fName = frm.Name
frm.RecordSource = SourceName
For I = 1 To RS.Fields.Count
Set ctlText(I) = CreateControl(frm.Name, acTextBox, , "", RS.Fields(I - 1).Name)
ctlText(I).Name = RS.Fields(I - 1).Name
Next
frm.DefaultView = 2
DoCmd.Close acForm, frm.Name, acSaveYes
DoCmd.Rename "sfmSetupLookup", acForm, fName
    
    
  คำถามก็คือเวลาที่มันสร้าง form ใหม่หน้าจอมันจะกระพริบ ผมไม่อยากให้มันกระพริบต้องใส่ code อย่างไรครับ ...พอดีรู้แต่ใน Excel จะใส่ว่า ScreenUpdate = False แต่ใน access ไม่มีหรือเปล่า
Dim frm As Form
Dim fName As String
Dim ctlText(20) As Control
Dim RS As Recordset
DoCmd.Echo False
Set RS = CurrentDb.OpenRecordset(SourceName)
Set frm = CreateForm
fName = frm.Name
frm.RecordSource = SourceName
For I = 1 To RS.Fields.Count
Set ctlText(I) = CreateControl(frm.Name, acTextBox, , "", RS.Fields(I - 1).Name)
ctlText(I).Name = RS.Fields(I - 1).Name
Next
frm.DefaultView = 2
DoCmd.Close acForm, frm.Name, acSaveYes
DoCmd.Rename "sfmSetupLookup", acForm, fName
				4 Reply in this Topic. Dispaly 1  pages and you are on page number 1 
				
        
    2 @R05874    
        
  
      Application.Echo False 
...
...
Application.Echo True
แต่ระวังไว้ว่าถ้าเกิด error อะไรระหว่างที่ echo off อยู่ คุณจะไม่เห็นอะไรเลย เสมือนหน้าจอแฮงค์ไป ดังนั้นจึงต้องทดสอบโปรแกรมให้แน่ใจก่อนใส่คำสั่งนี้ครอบไว้ และถ้ามี error handling routine ก็ต้องสั่ง echo on เอาไว้ด้วยนะครับ
    
  ...
...
Application.Echo True
แต่ระวังไว้ว่าถ้าเกิด error อะไรระหว่างที่ echo off อยู่ คุณจะไม่เห็นอะไรเลย เสมือนหน้าจอแฮงค์ไป ดังนั้นจึงต้องทดสอบโปรแกรมให้แน่ใจก่อนใส่คำสั่งนี้ครอบไว้ และถ้ามี error handling routine ก็ต้องสั่ง echo on เอาไว้ด้วยนะครับ
        
    3 @R05891    
        
  
      Echo On/Off   เวริคครับ แต่ว่า form ที่ผมใช้ถูก maximize เอาไว้ ...ตอนที่มันทำงานแม้จะไม่ขั้นตอนสร้าง form แต่ว่า menu bar มันจะปรับเปลี่ยนตามแวบไปแวบมาอยู่ แต่ไม่เป็นไรครับ ถือว่า OK แล้ว
ถามเพิ่มอีกนิดสิครับ
Echo เฉยๆกับ Docmd.Echo ต่างกันไหมครับ
    
  ถามเพิ่มอีกนิดสิครับ
Echo เฉยๆกับ Docmd.Echo ต่างกันไหมครับ
        
    4 @R05892    
        
    
      เหมือนกันครับ เพียงแต่ DoCmd.Echo เขาคงไว้เพื่อให้โปรแกรมยุคก่อนๆยังทำงานได้ (backward compatibility) แต่ถ้าเป็นโปรแกรมเขียนใหม่ แนะนำว่าให้ใช้ Application.Echo แทนครับ    
    
  
      Time: 0.0856s
    
      
		
ผมก็เห็นปรากฎการณ์ดังกล่าวด้วย แต่ไม่คิดว่ามันเป็นปัญหาและไม่เคยค้นหาวิธีแก้ปัญหาดังกล่าว พอได้อ่านคำถาม ก็คิดว่าน่าสนใจ
จะรอดูคำตอบของท่านอื่นๆ ด้วยเช่นกัน
แต่เบื้องต้น ลองคิดเล่นๆ ขอให้คุณแดนน้อยช่วยไปทดสอบแล้วกลับมาแจ้งด้วยนะครับ พอดีไม่มีไฟล์ใดในมือ ขณะนี้ ที่จะพอทำการทดสอบ (จะเขียนมาใหม่ก็กลัวเหนื่อย อิอิ)
คือลองเอาโค้ดนี้ไปฝังในปุ่มคำสั่ง บนฟอร์มใดๆ ที่ตั้งคุณสมบัติเป็น modal หรือเป็น popup แบบให้ขยายหน้าต่างเต็มหน้าครับ ไม่ทราบว่าลองหรือยัง ปรากฏการณ์ดังกล่าว หายไปหรือไม่อย่างไรบ้างครับ