กระทู้เก่าบอร์ด อ.Yeadram
2,164 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.3815s
ผมก็เห็นปรากฎการณ์ดังกล่าวด้วย แต่ไม่คิดว่ามันเป็นปัญหาและไม่เคยค้นหาวิธีแก้ปัญหาดังกล่าว พอได้อ่านคำถาม ก็คิดว่าน่าสนใจ
จะรอดูคำตอบของท่านอื่นๆ ด้วยเช่นกัน
แต่เบื้องต้น ลองคิดเล่นๆ ขอให้คุณแดนน้อยช่วยไปทดสอบแล้วกลับมาแจ้งด้วยนะครับ พอดีไม่มีไฟล์ใดในมือ ขณะนี้ ที่จะพอทำการทดสอบ (จะเขียนมาใหม่ก็กลัวเหนื่อย อิอิ)
คือลองเอาโค้ดนี้ไปฝังในปุ่มคำสั่ง บนฟอร์มใดๆ ที่ตั้งคุณสมบัติเป็น modal หรือเป็น popup แบบให้ขยายหน้าต่างเต็มหน้าครับ ไม่ทราบว่าลองหรือยัง ปรากฏการณ์ดังกล่าว หายไปหรือไม่อย่างไรบ้างครับ