snasui.com ยินดีต้อนรับ ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ผมสงสัยครับ สมมุติผมออกแบบหน้ารายงานไว้หน้าหนึ่ง เพื่อดึงข้อมูลที่อยู่ในฐานข้อมูล MySQL มาแสดงเพื่อสั่งพิมพ์ โดยที่ผมคิดไว้มี 2 แบบคือ
1. ดึงผ่าน Get Data นำมาพักไว้ที่ Sheet ใด Sheet หนึ่ง แล้วค่อยดึงมาใช้อีกทีในหน้ารายงาน (Sheet1=รายงาน,Sheet2=Database ที่ดึงมาพักไว้) วิธีนี้ผมคิดว่าดีอย่างหนึ่งคือ ไม่มีการเปิดปิด mysql บ่อยๆเวลาเปิด/ปิดไฟล์ แต่ข้อเสียน่าจะเป็นที่ขนาดของไฟล์ที่ใหญ่ขึ้น เพราะต้องนำข้อมู่ลจาก mysql มาพักในไฟล์ excel ก่อน และอีกข้อคือ ข้อมูลที่จะได้จะไม่เรียลไทม์ ต้องกด refresh ถึงจะอัปเดท แต่อย่างที่บอกคือคิดว่า ปัญหาคือไฟล์ excel จะใหญ่ขึ้นถ้าข้อมูลใน mysql มากขึ้น ถูกต้องไหมครับ
2. ใช้ VBA ดึงด้วยการ Select จาก MySQL DATABASE ตรงๆ แบบ field by field ... Connect open close กันสดๆทุกครั้ง ที่เปิดหรือปิดไฟล์ นั่นหมายถึง mysql จะมีการเชื่อมต่อ/ตัดการเชื่อมต่อทุกครั้งที่เปิด/ปิดไฟล์ แต่ผมคิดว่าวิธีนี้จะได้ไฟล์ Excel ที่มีขนาดเล็ก เพราะไม่ได้เก็บข้อมูล database ในไฟล์เลย ไม่ว่า mysql จะมีข้อมูลที่มากขึ้นเพียงใดไฟล์ Excel ก็ยังคงขนาดเท่าเดิม เพราะแค่ดึงข้อมูลจาก mysql มาแสดงเท่านั้น