เปิดฟอร์ม ใช้เวลานาน
กระทู้เก่าบอร์ด อ.Yeadram

 3,307   23
URL.หัวข้อ / URL
เปิดฟอร์ม ใช้เวลานาน

เรียน อาจารย์ทุกท่าน ช่วยพิจารณา หน่อยครับว่า เมื่อเวลาผมเปิด ฟอร์ม ตัวนี้ขึ้นมาจะเกิดปัญหาดังนี้
1. เปิดฟอร์ม ขึ้นมาจะใช้เวลาประมาณ 3-5 วินาที ซึ่งเทียบกับฟอร์มอื่นๆดูถือว่าช้ามาก
2. เวลากดปุ่มค้นหาต่างๆ เหมือนกับว่า มันวิ่งไปค้นหาทุก ฟิลล์ และทุกหน้า สังเกตุจาก หน้าฟอร์ม จะกระตุ๊กหรือกระพริบๆ เรื่อยๆ ทั้งๆที่ค้นหาข้อมูลพบแล้ว ก็ยังกระพริบ
3. ลองลบหน้า ข้อมูลที่อยู่ ข้อมูลบิดา-มารดา ภาพการออกเยี่ยบ้าน ผลการเรียน ตารางเรียน (เป็นไฟล์รูปภาพ ใช้การลิงห์) ทั้งหมดออก ให้เหลือ หน้าเดียวคือ ข้อมูลประวัติ ผลยังเหมือนเดิม
4.ไม่ทราบว่าจะแก้ตรงไหนครับ
5. ปุ่มค้นหาต่างๆ สร้างจาก Macro ครับ


23 Reply in this Topic. Dispaly 2 pages and you are on page number 1

1 @R21100
1. ลองเอารูปออกจากฟอร์มแล้วเปรียบเทียบเวลาดูครับ
2. น่าจะขึ้นกับคำสั่งที่ใช้ค้นหา
4. ถ้าเป็นเพราะรูป และถ้าใช้ Bound Object Frame control เป็นตัวคอนโทรลในการแสดงภาพ ก็ต้องลองเปลี่ยนไปใช้ Image control แทน ลองค้นกระทู้เก่าจากหน้าโฮมเพจด้วยคำว่า รูป ดูครับ มีคุยกันเยอะแล้ว ส่วนอื่นๆที่จะปรับแต่งให้มีความเร็วดีขึ้น ก็ลองอ่าน http://www.thai-access.com/yeadram_view.php?topic_id=504
2 @R21101
อาจารย์ครับ ผมได้ดำเนินการตามที่บอกดังนี้
1. เอารูปออกจากฟอร์ม
    ผล รันฟอร์มช้าเหมือนเดิม กดปุ่ม ค้นหา ก็กระพริบ เหมือนวิ่งค้นหาทุกฟิลด์เหมือนเดิม
2.คำสัั่งที่ใช้ในการค้าหา ใช้ macro ดังนี้ครับ
   GoToControl
        ชื่อตัวควบคุม [id_student]
   FindRecord
        สิ่งที่ค้นหา =[text79]
        ตรงตาม   เขตข้อมูลทั้งหมด
        ตรงตามตัวพิมพ์เล็ก-ใหญ่ ไม่ใช่
        ค้นหา     ทั้งหมด
        ค้นหาตามรูปแบบที่จัดไว้ ไม่ใช่
        เฉพาะเขตข้อมูลปัจจุบัน   ใช่
        ค้นหาตั้นแต่ต้น   ใช่
*** ซึ่ง เงื่อนไขต่างๆใน คำสั่ง Macro ผมก็ได้ลองสลับเปลี่ยนดูแล้ว ***** ผลก็ยังเหมือนเดิม
3. รูป ผมใช้   Image control ครับ **** แต่ก็ลองเอารูปออก โดยการลบ control รูปภาพทิ้ง ไม่ให้มีภาพ ตามข้อ 1. แล้ว ***** ผล เหมือนเดิม *****
4. เพิ่มเติม ลองไปลบความสัมพันธ์ของตารางทิ้งหมด *****ผลเหมือนเดิม*****
    แต่ที่แปลกคือ เหมือนกับความพันธ์ของตารางที่จับคู่กันยังใช้ได้ เพราะไม่แจ้ง Error เลยครับ
5. ลองลบหน้า อีก 5 หน้าออก ให้เหลือแต่ประวัติข้อมูล *****ผล เหมือนเดิม*******
6.ลองสร้างฟอร์มขึ้นใหม่ โดยใช้ tab control (ที่สร้างหลายๆหน้า ไม่รู้ผมเรียกถูกไหม) ****ผล ใช้คำสั่ง ปุ่มค้นหา   กระพริบเหมือนเดิม******
7. ในข้อ 6. ไม่ได้ใส่รูป และลองทำเฉพาะ แท็ป หน้าประวัติข้อมูล   หน้าเดียวเท่านั้น ครับ
8.ผมคงจะลองสร้างฐานข้อมูลใหม่ลองดู แล้วทำเหมือนวิธีเดิม ว่าจะได้ผลยังไง
   เพราะผมสงสัยว่า ฐานข้อมูลที่ผมลองทำ ไปใช้กับงานอื่นๆ มันไม่เป็น เป็นเฉพาะฐานข้อมูลนี้ครับ
**** ขอบคุณ อ.สันติสุข มากครับ *****
ปล. ผมว่าผมต้องทำอะไรผิดสักสักอย่าง เพราะมือใหม่ จะค่อยๆไปไล่ดูอีกทีครับ
3 @R21102
สงสัยตรงจุดที่มันกระพริบนี่แหล่ะ

แต่ผมทดลองกับข้อมูลของผมซึ่งมีแสนกว่าเรคอร์ด ด้วยแมโครเดียวกับที่คุณบอก ก็หาได้รวดเร็วในเวลาไม่ถึง 1 วินทีครับ เลยคิดว่าฐานข้อมูลอยู่บนเครื่องของเราเองหรือมาจากไฟล์เซิฟเวอร์ ถ้าเป็นอย่างหลัง เราลิงค์เทเบิลจากฐานข้อมูลบนเซิฟเวอร์มายังไฟล์ฐานข้อมูลบนเครื่องเรา (ซึ่งเป็นวิธีที่ถูกต้อง) หรือเปิดใช้ฐานข้อมูลที่แชร์มาทั้งก้อนตรงๆเลย (เป็นวิธีที่ไม่ถูกต้อง) ยังไงก็ตามผมไม่เคยทำอย่างวิธีที่ผิดนะครับ ก็เลยไม่รู้ว่าวิธีที่ผิดจะก่อให้เกิดปัญหาอย่างที่พบหรือเปล่า
4 @R21103
ฐานข้อมูลอยู่บนเครื่องผมครับ และได้ทดลองตาม (R21101) ข้อ 8 แล้วปรากฎว่า เหมือนเดิม แต่เปิดเร็วขึ้นนิดหนึง แทบไม่เห็นความแตกต่าง
แต่การกระพริบ ยังเหมือนเดิมทุกประการ ผมเลยนำข้อมูล แต่ละหน้า คือ ประวัติ ข้อมูลที่อยู่ บิดา-มารดา ฯลฯ เอามาสร้างเป็นฟอร์มใหม่ ให้ทุกฟิลด์ อยู่บนหน้าเดียวกัน รวมทั้งรูปภาพด้วย
ปรากฎว่า
1.รวดเร็วเป็นปกติ
2.การค้นหาข้อมูล ไม่มีการกระพริบ ไม่รวดเร็วด้วย ข้อมูลประมาณ 3500 เรคคอร์ดครับ
3.ผมจึงสันนิฐานว่า "น่าจะเป็นกับการสร้างฟอร์ม โดยใช้ ปุ่ม คอลโทรมแท็บ ซึ่งสร้างหลายๆหน้าในฟอร์มเดียวกัน
ไม่ทราบว่าผมสันนิษฐานถูกไหม แต่ก็ดูจากการทดลองทำครับ อาจารย์
5 @R21104
ทีนี้หลังจากที่ นำฟิลด์ มารวมกันในฟอร์มเดียวแล้ว คำสั่งที่ใช้พิมพ์รายงานหน้าฟอร์มปัจจุบันกลับใช้ไม่ได้

DoCmd.OpenReport "พิมพ์รายชื่อตามห้อง", acViewPreview, , "[class] = '" & class & "'", acWindowNormal

ไม่ทราบว่าจะแก้ไขยังไงครับ อาจารย์
6 @R21105
ไม่ได้นี่คือยังไงครับ มีข้อความอะไรฟ้องออกมาหรือไม่
7 @R21108
เป็นสีเหลือง ตรงคำว่า class คำที่ 2 ครับ
8 @R21109
ที่ถูกน่าจะเป็น DoCmd.OpenReport "พิมพ์รายชื่อตามห้อง", acViewPreview, , "[class] = '" & class & "'" แต่ถึงจะมี , acWindowNormal ต่อท้าย ก็ไม่น่าทำให้เกิด error ที่ว่าได้

ให้ลองคอมไพล์ดูก่อนนะครับว่าติดปัญหาอะไรหรือไม่
9 @R21110
อาจารย์ครับ ขอเรียนถามเพิ่มเติมครับ
ถ้าต้องการให้ไม่ให้แก้ไข รหัสนักเรียนตามรูป คือ 24773 โดย ผมไปล๊อคฟิลด์ที่ชื่อว่า id_student แต่เวลา กดที่ปุ่ม ค้นหารหัสนักเรียน มันไม่ยอมค้นหาให้เนื่องจากมันล็อค
สิ่งที่ผมต้องการคือ จะ เขียนโค๊ดง่ายๆ อย่างไรเมื่อ.....
1.ล๊อคเฉพาะฟิลด์ id_student เมื่อเปิดฟอร์มขึ้นมา อย่างอื่นแก้ไขได้
2.เมื่อกดปุ่ม "ค้นหา" (รหัสนักเรียน) ให้ไปทำการ แก้แก้ฟิลด์ id_student ให้สามารถค้นหาได้
3. เมื่อเจอแล้ว ให้ล๊อค ฟิลด์ id_student เหมือนเดิม (ทั้งนี้เพื่อป้องกันการแก้ไขครับ)
***** ไม่ทราบว่าจะเขียนโค๊ด สั้นๆ ง่ายๆ ยังไงครับ *****
10 @R21111
เข้าใจว่าที่คุณทำคงกำหนด Enabled property ให้ไปกำหนด Locked property เป็น Yes/True แทนครับ
11 @R21112
แต่ถ้าใช้โค๊ดนี้ ก็พิมพ์ได้ แต่ต้องไปกำหนดว่าจะเลือกพิมพ์ห้องไหนเวลาสั่งพิมพ์ครับ

DoCmd.OpenReport "พิมพ์รายชื่อตามห้อง", acViewPreview, , "[class] = [Forms]![frm_student].[class]"
12 @R21113
ฟิลด์ class ของคุณมี data type เป็น Text หรือ Number
13 @R21114
เป็น Text   ครับ รบกวนเวลาอาจารย์มากเลย ต้องขอโทษน๊ะครับ
14 @R21115
ถ้าเป็น Text โค้ดเดิมก็น่าจะทำได้นะครับ   ตอนจะเปิดรายงาน ที่ช่อง class มีข้อมูลอยู่แล้วหรือยัง
15 @R21116
ที่ผมตอบช้า เพราะ เวลาผม post ไป มันฟ้อง
Spamming is not permitted!
You have exceeded the number of posts permitted in the time span.

ตอนเปิดรายงานที่ช่อง class มีข้อมูลอยู่ครับ
16 @R21117
1. Compile หรือยัง
2. ช่อง Class บนฟอร์มมีค่าเป็นอะไร มีช่องว่างนำหน้าหรือต่อท้ายหรือไม่
3. ฟิลด์ Class ในเทเบิลที่จะค้นหา มีค่าเป็นอะไร มีช่องว่างนำหน้าหรือต่อท้ายหรือไม่
4. ให้ใช้โค้ดนี้นะ DoCmd.OpenReport "พิมพ์รายชื่อตามห้อง", acViewPreview, , "[class] = '" & class & "'"
17 @R21118
เรียน อาจารย์ครับ
ข้อ 1. compile แล้วครับ
2. ช่อง class บนฟอร์ม มีค่าเป็น text เช่น ม.2/1
3. ฟิลด์ class ไม่มีช่องช่องนำหน้าหรือต่อท้าย ครับ
4. ใช้โค๊ด DoCmd.OpenReport "พิมพ์รายชื่อตามห้อง", acViewPreview, , "[class] = '" & class & "'" ที่อาจารย์ให้มา
มันฟ้องว่า
compile error
Variable not defined
ครับ
18 @R21119
DoCmd.OpenReport "พิมพ์รายชื่อตามห้อง", acViewPreview, , "[class] = '" & Me.class & "'"
19 @R21120
Me.class ก็ยังไม่ได้ครับ เป็นสีนำเงินที่ class เหมือนเดิม รบกวนอาจารย์มานานแล้วครับ ดึกด้วยเกรงใจครับ
หรือเป็นเพราะว่า ผมใช้วิธีการ copy ฟิลด์ทุกฟิลด์ ทุกหน้า ที่ผมทำบนฟอร์ม ก่อนหน้านี้ มาสร้างฟอร์มใหม่ ก็ไม่รู้
20 @R21121
แน่ใจหรือเปล่าว่าเท็กซ์บ็อกซ์ที่คุณคิดว่าเป็น Class มันชื่อ Class จริงๆ   หรือว่าชื่ออื่น   ให้ดูใน Name property นะครับ   ถ้ามันไม่ได้ชื่อ Class ก็เปลี่ยนให้เป็น Me.ชื่ออื่นนั้น
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3007s