Page 1 of 1

การดึงข้อมูลจาก mysql เข้า worksheet ระหว่างวิธี get data กับ ดึงสดๆจาก mysql เลย แบบไหนดีกว่ากัน

Posted: Thu Sep 01, 2022 10:17 pm
by 10idlnw
ผมสงสัยครับ สมมุติผมออกแบบหน้ารายงานไว้หน้าหนึ่ง เพื่อดึงข้อมูลที่อยู่ในฐานข้อมูล 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 มาแสดงเท่านั้น

อยากสอบถามครับว่า วิธีทั้ง 2 นี้ผมควรใช้วิธีใด หรือส่วนใหญ่คนทั่วไปหรือคนที่เชี่ยวชาญ ส่ว่นใหญ่เลือกใช้วิธีไหน เพราะเหตุใดครับ

Re: การดึงข้อมูลจาก mysql เข้า worksheet ระหว่างวิธี get data กับ ดึงสดๆจาก mysql เลย แบบไหนดีกว่ากัน

Posted: Thu Sep 01, 2022 10:38 pm
by snasui
:D ถ้าไม่ได้ดึงมาแล้วแปลงข้อมูลหรือสร้างความสัมพันธ์กับข้อมูลอื่นใดก็ใช้วิธีที่ 2 ครับ

วิธีที่ 1 น่าจะเป็นการดึงผ่านเมนู Data จะเป็นการสร้าง Connection เอาไว้ให้พร้อมที่จะทำการ Refresh ข้อมูลเพื่อจะได้ข้อมูลล่าสุด การทำเช่นนี้ข้อมูลจะถูกวางที่ Excel ไม่ว่าจะวางใน Sheet หรือวางใน Data Model หากข้อมูลมากก็จะทำให้ไฟล์ใหญ่

ประโยชน์จากการดึงข้อมูลมาพักไว้ใน Excel จะมีส่วนดีคือหาก Network มีปัญหาไม่สามารถ Refresh เพื่อดึงข้อมูลมาใหม่ก็ยังมีข้อมูลเดิมให้ดูได้ครับ