กระทู้เก่าบอร์ด อ.Yeadram
1,296 5
URL.หัวข้อ /
URL
รบกวนผู้เชียวชาญการเขียน VBA เกี่ยวกับการQuery DBห
คือผมเจอปัญหาอยู่ว่า ถ้าเรา connect database ด้วย ADO เพื่อการ query ข้อมูล ลงใน Form ถ้าเจอข้อมูลก็คือปกติ สามารถโหลดข้อมูล ลง Form ใน textbox ได้ตามปกติ แต่ถ้าเกิดconnect ข้อมูลแล้วไม่เจอข้อมูลตามที่ ได้ใส่ fillter ไว้เลย มันจะมีปัญหาคือพอมันโหลดform form นั้นจะเหมือนเป็น เอกสารเปล่าเลย คือจริงๆ มันมี พวก textbox, button ต่างๆ แต่ว่ามันไม่แสดงเลย เห็นเป็นเหมือน A4 เปล่าๆ
เลยอยากจะถามว่ากรณีนี้ควรแก้ไขอย่างไร ขอบคุณครับ
เลยอยากจะถามว่ากรณีนี้ควรแก้ไขอย่างไร ขอบคุณครับ
5 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R16329
ใช่ครับคุณ Frank ปัญหาที่ผมพบคือ ถ้า query แล้วไม่พบข้อมูล
form มันไม่โหลดกลายเป็นหน้าเปล่าๆ
คือผมเองก็เป็นมือใหม่หัดทำเหมือนกันนะครับ คือตอนนี้ผมก็ใช้วิธีที่คุณ Frank แนะนำมาอยู่นะครับ แต่คือมันไม่หายอะ ถ้าไม่พบข้อมูล form มันก็จะกลายเป็นหน้าเปล่าๆ
form มันไม่โหลดกลายเป็นหน้าเปล่าๆ
คือผมเองก็เป็นมือใหม่หัดทำเหมือนกันนะครับ คือตอนนี้ผมก็ใช้วิธีที่คุณ Frank แนะนำมาอยู่นะครับ แต่คือมันไม่หายอะ ถ้าไม่พบข้อมูล form มันก็จะกลายเป็นหน้าเปล่าๆ
3 @R16330
อ่อลืมบอกไป ใน form นั้นผมมีการ query ข้อมูลากกว่า 1 ครั้งนะครับ คือ query รอบแรกแล้วก็ สั่งปิดแล้วก็สั่งเคลียค่า
adoRs.Close
Set adoRs = Nothing
adoCon.Close
Set adoCon = Nothing
จากนั้นจึงค่อย connect db ใหม่ครับ
adoRs.Close
Set adoRs = Nothing
adoCon.Close
Set adoCon = Nothing
จากนั้นจึงค่อย connect db ใหม่ครับ
4 @R16331
ลองส่ง code โปรแกรมมาช่วยกันดูมั้ยครับ
เพราะผมเองก็ยังไม่เก่งพอที่เห็นปัญหาแล้วจะตอบได้เลย
ต้องจับๆคลำๆดูก่อน ฮ่าๆๆ
ถ้าเดาๆดูผมว่า ค่าที่ส่งไป query มันน่าจะค้างอยู่มั้งครับ form มันถึงกลายเป็น
หน้าเปล่าๆไปเลยอะ
คงต้องรอ ท่านอาจารย์ทั้งหลายมาช่วยตอบปัญหาอีกทีแล้วละครับ
เพราะผมเองก็ยังไม่เก่งพอที่เห็นปัญหาแล้วจะตอบได้เลย
ต้องจับๆคลำๆดูก่อน ฮ่าๆๆ
ถ้าเดาๆดูผมว่า ค่าที่ส่งไป query มันน่าจะค้างอยู่มั้งครับ form มันถึงกลายเป็น
หน้าเปล่าๆไปเลยอะ
คงต้องรอ ท่านอาจารย์ทั้งหลายมาช่วยตอบปัญหาอีกทีแล้วละครับ
5 @R16334
AllowAddition property ของหน้าฟอร์มต้องกำหนดเป็น Yes ครับ
แต่ถ้ากำหนดเป็น Yes แล้วยังทำไม่ได้ แนะนำว่า ควรเช็คก่อนว่าผลจากคิวรี่นั้นมีเรคอร์ดหรือไม่ ถ้าไม่มีก็เปลี่ยนส่วน WHERE clause ให้เป็น WHERE 1=0 จะทำให้ได้ empty recordset ซึ่งเอาไว้สำหรับป้อนเรคอร์ดเพิ่มเท่านั้น
แต่ถ้ากำหนดเป็น Yes แล้วยังทำไม่ได้ แนะนำว่า ควรเช็คก่อนว่าผลจากคิวรี่นั้นมีเรคอร์ดหรือไม่ ถ้าไม่มีก็เปลี่ยนส่วน WHERE clause ให้เป็น WHERE 1=0 จะทำให้ได้ empty recordset ซึ่งเอาไว้สำหรับป้อนเรคอร์ดเพิ่มเท่านั้น
Time: 0.2668s
form มันไม่โหลดกลายเป็นหน้าเปล่าๆอย่างงั้นใช่ป่ะครับ
ที่ผมทำคือหลังจาก query ผมใส่โค้ดมาเช็คว่า query ที่เราส่งไปนั้นมีข้อมูล
หรือเปล่าแล้วถึงค่อยดำเนินการต่อ
If rs.RecordCount = 0 Then
..
..
End if
ผมเองก็มือใหม่หัดทำครับ อาจจะตอบไม่ตรงประเด็น