snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
noom5555
Member
Posts: 18 Joined: Fri Feb 25, 2011 1:04 pm
#1
Post
by noom5555 » Wed Apr 20, 2011 2:34 pm
จากรูปที่แนบครับ
ผมต้องการที่จะดึงข้อมูลจากฐานข้อมูล access โดยการใช้ excelดึงข้อมูลครับ คือสามารถเลือกวันที่ เวลาได้
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Wed Apr 20, 2011 6:20 pm
การดึงข้อมูลจาก Access สามารถทำดังนี้ครับ
เข้าเมนู Data > Import External Data > New Database Query > เลือก MS Access Database* > OK > เลือก Drive, Folder, File > OK
เลือก Table จาก Available table and column > คลิกเครื่องหมาย > เพื่อ Add ไปยัง Columns in your query > Next > Next > Next > View data or edit query in Microsoft Query
ที่ Microsoft Query คลิกเมนู Criteria > Add Criteria เพื่อกำหนดเงื่อนไขตามต้องการ > Close
เข้าเมนู File > Return data to Microsoft Excel
noom5555
Member
Posts: 18 Joined: Fri Feb 25, 2011 1:04 pm
#3
Post
by noom5555 » Thu Apr 21, 2011 9:20 am
ขอบคุณครับ
แล้วถ้าผมจะทำแบบให้ user ทำงานโดยเปิด excel แล้วคลิกปุ่มใน sheet โดยแต่ละปุ่มมีกำหนดโดย
1.แสดงข้อมูลทุก 5 นาที
2.แสดงข้อมูลวันที่ สามารถระบุได้
จะต้องเขียน code ยังไงครับ
ช่วยแนะนำตัวอย่างให้หน่อยครับโดยข้อมูลตารางอ้างอิงจากรูปภาพครับ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Thu Apr 21, 2011 1:12 pm
ภาพที่ส่งมาไม่ได้ช่วยในการเขียน Code ครับ ถ้าจะทำเช่นนั้น คิดว่าให้
บันทึก Macro ตามขั้นตอนที่ผมแนะนำไป แล้วส่ง Code มาดูครับ สำหรับการเลือกเงื่อนไขต้องสร้างเป็นตัวแปรเพื่อรับข้อมูลที่ User เลือกเข้ามาด้วยตัวเอง
ส่วนการให้ Refresh ตามเวลาที่กำหนดไม่ต้องใช้ Macro เนื่องจาก Excel สามารถทำเช่นนั้นได้อยู่แล้ว ให้ลองคลิกขวาแล้วเลือก Data Range Properties > ตรง Refresh Control > ทำเครื่องหมายที่ Refresh every แล้วกำหนดค่าที่ต้องการให้ Refresh
noom5555
Member
Posts: 18 Joined: Fri Feb 25, 2011 1:04 pm
#5
Post
by noom5555 » Fri Apr 29, 2011 10:43 am
จากฐานข้อมูล access นะครับคือเวลาเครื่องรันข้อมูลในฐานข้อมูลก็จะบันทึกไปเรื่อยๆ
ผมก็สามารถทำการ query เหมือนที่แนะนำได้แล้วครับอีกอย่างครับข้อมูลไม่สามารถโชว์มาถึงข้อมูลล่าสุดได้ครับเนื่องจากแถวใน excelจำกัดที่ 65536
ที่นี้ผมเลยต้องการ query ข้อมูลจากฐานข้อมูล access เฉพาะในขณะที่เครื่องรันได้ไหมครับ
และในข้อ3.ที่ Microsoft Query คลิกเมนู Criteria > Add Criteria เพื่อกำหนดเงื่อนไขตามต้องการ > Close
ผมสามารถกำหนดเช่นต้องการเลือกดูข้อมูลระหว่างวันที่ 4/23/2010 10:00 ถึง 4/25/2010 10:00 ได้ไหมครับ
ขอรบกวนอีกที่แนะนำด้วยครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Fri Apr 29, 2011 12:10 pm
การให้ Run ตามเวลาปัจจุบันคงต้องใส่เงื่อนไข วันที่ เวลา เข้าไปครับ ไม่เช่นนั้นข้อมูลก็จะมาทั้งหมด การกำหนดเงื่อนไข สามารถกำหนดได้ตามต้องการ ดูตัวอย่างภาพด้านล่างประกอบครับ
You do not have the required permissions to view the files attached to this post.
noom5555
Member
Posts: 18 Joined: Fri Feb 25, 2011 1:04 pm
#7
Post
by noom5555 » Thu May 12, 2011 11:23 am
ขอรบกวนถามอีกครับ
แล้วถ้าผมต้องการ Query เวลาทุก 5 นาที ผมต้องใส่่สุตรยังไงครับ
รบกวนด้วยผมลองแล้วมันยังไม่โชว์เลยครับ
ขอบคุณครับ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#8
Post
by snasui » Thu May 12, 2011 11:38 am
ลองทำตามนี้แล้วหรือไม่ครับ
snasui wrote: ...ส่วนการให้ Refresh ตามเวลาที่กำหนดไม่ต้องใช้ Macro เนื่องจาก Excel สามารถทำเช่นนั้นได้อยู่แล้ว ให้ลอง
คลิกขวา แล้วเลือก Data Range Properties > ตรง Refresh Control > ทำเครื่องหมายที่ Refresh every แล้วกำหนดค่าที่ต้องการให้ Refresh
คลิกขวาหมายถึงคลิกลงใน Excel บนข้อมูลที่ได้จากการ Query ครับ
noom5555
Member
Posts: 18 Joined: Fri Feb 25, 2011 1:04 pm
#9
Post
by noom5555 » Thu May 12, 2011 3:29 pm
จากฐานข้อมูล access ที่ลองทำตามคำแนะนำอาจารย์ผมสามารถดึงข้อมูลได้แล้วครับ
โดยใน query ช่อง Criteria ผมใส่ date_time และในช่อง Value ผมใส่ between[start]and[end]แล้วพอผมสั่ง refresh ก็จะให้ใส่วันทีและเวลาครับ
แต่ทีนี้ผมอยากให้มัน auto กว่านี้ครับ คือ ทุก 60 นาที ให้ refresh ข้อมูลใหม่จากฐานข้อมูล access ครับ
ผมต้องเขียนสูตร query แบบไหนครับ
รบกวนแนะนำด้วยครับ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#10
Post
by snasui » Thu May 12, 2011 3:33 pm
ไม่ทราบว่าคุณ noom5555 ได้อ่านตามด้านล่างแล้วยังครับ ผมตอบเรื่องการ Refresh ข้อมูลตามเวลาที่กำหนดไปสองรอบแล้วครับ
รอบแรก
snasui wrote: ภาพที่ส่งมาไม่ได้ช่วยในการเขียน Code ครับ ถ้าจะทำเช่นนั้น คิดว่าให้
บันทึก Macro ตามขั้นตอนที่ผมแนะนำไป แล้วส่ง Code มาดูครับ สำหรับการเลือกเงื่อนไขต้องสร้างเป็นตัวแปรเพื่อรับข้อมูลที่ User เลือกเข้ามาด้วยตัวเอง
ส่วนการให้ Refresh ตามเวลาที่กำหนดไม่ต้องใช้ Macro เนื่องจาก Excel สามารถทำเช่นนั้นได้อยู่แล้ว ให้ลองคลิกขวาแล้วเลือก Data Range Properties > ตรง Refresh Control > ทำเครื่องหมายที่ Refresh every แล้วกำหนดค่าที่ต้องการให้ Refresh
รอบที่สอง
snasui wrote: ลองทำตามนี้แล้วหรือไม่ครับ
snasui wrote: ...ส่วนการให้ Refresh ตามเวลาที่กำหนดไม่ต้องใช้ Macro เนื่องจาก Excel สามารถทำเช่นนั้นได้อยู่แล้ว ให้ลอง
คลิกขวา แล้วเลือก Data Range Properties > ตรง Refresh Control > ทำเครื่องหมายที่ Refresh every แล้วกำหนดค่าที่ต้องการให้ Refresh
คลิกขวาหมายถึงคลิกลงใน Excel บนข้อมูลที่ได้จากการ Query ครับ
noom5555
Member
Posts: 18 Joined: Fri Feb 25, 2011 1:04 pm
#11
Post
by noom5555 » Thu May 12, 2011 3:58 pm
ได้ทำตามที่อาจารย์บอกแล้วครับทำได้แต่
ในเงื่อนไขผมใส่ ดังนี้ between[start]and[end] พอถึงกำหนดเวลา refresh ตามทีอาจารย์แนะนำ ก็จะโชว์ให้ใส่วันที่-เวลาตามเงื่อนที่ผมใส่ไว้ครับ
แต่ทีนี้ผมอยากให้มัน auto กว่านี้ครับ เช่น กำหนด refresh ตามที่อาจารย์แนะนำ แล้วได้วันที่-เวลาใหม่จากฐานข้อมูล access โดยที่ผมไม่ต้องใส่วันที่-เวลาตามเงื่อนไขครับ
รบกวนอีกรอบครับ
ผมอาจจะอธิบายไม่เข้าใจเองต้องขออภัยด้วยครับ
ขอบคุณครับ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#12
Post
by snasui » Thu May 12, 2011 4:30 pm
ผมอ่านแล้วไม่กระจ่างครับ
เงื่อนไขในการดึงข้อมูลถ้ากรอกไปใน Microsoft Query แล้วมันก็จะดึงให้ตามนั้น การตั้งเวลาก็เพื่อให้แสดงข้อมูลที่ Update อ่านดูยังไม่ทราบว่าติดขัดตรงไหน คำว่าให้ Auto ที่ว่านั้นให้ Auto เปลี่ยนเงื่อนไขให้ใช่หรือไม่ ถ้าใช่ ต้องเขียน VBA ครับ
หากจะเขียน VBA ผมแนะนำให้บันทึก Macro ตามขั้นตอนที่ผมแนะนำไปจนกระทั่งได้ข้อมูลมาแสดงที่ Excel แล้วส่ง Code ที่ได้จากการบันทึกมาดูกันต่อครับ