snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Access 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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่างเพิ่มเติม)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
tast107
Member
Posts: 88 Joined: Sun Apr 03, 2011 5:51 pm
#1
Post
by tast107 » Thu Jan 03, 2013 9:21 am
เช่น มีข้อมูล
ชื่อ นามสกุล อายุ เพศ การศึกษา ประวัติการทำงาน < เป็น Query บน main form ที่ดึงมาจากหลายเทเบิล
ชื่อ < เป็น combo box บน main form
จะมีขั้นตอนการทำงานคือ เมื่อเลือก combo box ชื่อไหน ก็จะแสดงรายละเอียดใน query ด้านล่าง
ขอคำแนะนำด้วยครับ
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#2
Post
by snasui » Thu Jan 03, 2013 1:37 pm
จะแนะนำได้ต้องเขียน Code มาก่อนครับ
tast107
Member
Posts: 88 Joined: Sun Apr 03, 2011 5:51 pm
#3
Post
by tast107 » Thu Jan 03, 2013 1:41 pm
ถามเพิ่มครับว่า ถ้า combo box เราดึงค่าจาก query มาแล้วให้ไปแสดงอีก query โดย คิวรีนั้นดึงค่าจาก combo box คอลลัมน์ที่ 2
ซึ่งผมดึงค่าจาก combo box คอลลัมน์ที่ 1 ได้แล้ว คือ
[forms]![QFm_X_Cat_Choose]![combo2] แต่ดึงค่าคอมลลัมน์ถัดไปไม่เป็นครับ
tast107
Member
Posts: 88 Joined: Sun Apr 03, 2011 5:51 pm
#5
Post
by tast107 » Thu Jan 03, 2013 2:09 pm
ขอถามคุณsnasui เพิ่มเติมครับว่า ถ้า ผมใช้ query สำหรับดึงค่า combo box ครับ ซึ่ง [forms]![QFm_X_Cat_Choose]![combo2] ผมเขียนภายใตั where หรือพูดง่ายๆ มันเป็น sql ครับ ไม่ใช่ vba ไม่แน่ใจว่าจะทำอย่างไรครับ
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#6
Post
by snasui » Thu Jan 03, 2013 2:45 pm
ลองตามนี้ครับ
[forms]![QFm_X_Cat_Choose]![combo2].
[Column]![2]
tast107
Member
Posts: 88 Joined: Sun Apr 03, 2011 5:51 pm
#7
Post
by tast107 » Thu Jan 03, 2013 3:47 pm
ไม่ได้ครับคุณsnasui ว่าแต่ผมจะทำอย่างไรในการดูค่า [forms]![QFm_X_Cat_Choose]![combo2].[column]![2] ว่าผมลัพท์คืออะไร เพราะผมไม่รู้ว่าค่าที่ได้คืออะไร อีกอย่าง
รู้สึกตอนผมพิม .[coumn มันจะ auto ขึ้น columnOrder columnCount แต่ไม่มี column นะครับ
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#8
Post
by snasui » Thu Jan 03, 2013 5:47 pm
ขอเดาไปเรือย ๆ นะครับ
ลองแก้ไขปัญหาเฉพาะหน้าโดยกา
รสร้าง TextBox มารับค่าจาก ComboBox ในแต่ละคอลัมน์ จากนั้นค่อยนำค่าใน TextBox ไปใช้ใน SQL อีกทีครับ ดูเพิ่มเติมที่นี่ครับ
http://www.access-programmers.co.uk/for ... ostcount=7
tast107
Member
Posts: 88 Joined: Sun Apr 03, 2011 5:51 pm
#9
Post
by tast107 » Fri Jan 04, 2013 9:30 am
แก้ปัญหาเฉพาะหน้าได้แล้วครับคุณsnasui คือผมมี id ของสินค้าแต่ละตัว ผมก็จัดไว้ที่คอลลัมน์แรกของ combo box มันก็ทำได้ แต่ผมอยากได้วิธีที่สามารถดึงค่าจากคอลลัมน์แต่ละคอลลัมน์มากกว่า เพราะผมอาจจะต้องดึงค่าในคอลลัมน์อื่นมา ฉะนั้น วิธีที่ผมแก้ปัญหาได้มันก็เป็นวิธีแก้ขัดชั่วคราว
ปกติ ถ้าใช้ VBA แล้วเราจำเป็นต้องใช้ macro query ร่วมด้วยหรือป่าวครับ หรือว่าใช้ VBA เพียวๆ ได้เลย เพราะผมยังรู้เกี่ยวกับ VBA ไม่ลึก ก็แค่ทำปุ่มในฟอร์มแล้วก็ใช้vba เรียกฟอร์ม ปิดฟอร์ม ผมเลยอยากรู้ขอบเขตว่า vba สามารถทำงานแทน query, macro ได้หรือป่าวหรือว่าต้องใช้ร่วมกัน
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#10
Post
by snasui » Fri Jan 04, 2013 1:36 pm
tast107 wrote: ปกติ ถ้าใช้ VBA แล้วเราจำเป็นต้องใช้ macro query ร่วมด้วยหรือป่าวครับ หรือว่าใช้ VBA เพียวๆ ได้เลย เพราะผมยังรู้เกี่ยวกับ VBA ไม่ลึก ก็แค่ทำปุ่มในฟอร์มแล้วก็ใช้vba เรียกฟอร์ม ปิดฟอร์ม ผมเลยอยากรู้ขอบเขตว่า vba สามารถทำงานแทน query, macro ได้หรือป่าวหรือว่าต้องใช้ร่วมกัน
ด้วย VBA สามารถทำได้ทุกอย่างเพราะมันคือภาษา Programming ส่วนจะทำได้ขนาดไหนขึ้นอยู่กับความสามารถของผู้ใช้ครับ
tast107
Member
Posts: 88 Joined: Sun Apr 03, 2011 5:51 pm
#11
Post
by tast107 » Fri Jan 04, 2013 1:47 pm
ตอนนี้งานผมคือ ต้องการPrintReportมาดู จะให้เราเลือกช่วงวันเดือนปี แล้วเลือกหมวดสินค้า ก็จะแสดงรายละเอียดว่าสินค้าไหนเข้าวันไหน
คำถามคือ ถ้าเลือกช่วงเวลาแล้วเลือกหมวดสินค้าตามปกติผมทำได้แล้ว
แต่ถ้าเลือกแค่ช่่วงเวลาอย่างเดียวให้มันแสดงหมวดสินค้าทั้งหมดของช่วงเวลานั้น
ถ้าเลือกแต่หมวดสินค้าอย่างเดียวก็จะแสดงแต่สินค้านั้น
ถ้าทำหลายฟอร์มหลาย query ผมทำได้ แต่อยากให้ใช้ query เดิมโดยผมคิดว่าน่าจะเพิ่มเงื่อนไขใน query ได้หรือป่าว เช่น ถ้าเลือกช่วงเวลาก็ให้เข้าเงื่อนไขช่วงเวลา แต่ถ้าไม่เลือกก็ให้แสดงหมด(ไม่มีเงือนไข) ผมไม่แน่ใจว่าตรงช่อง Critical จะเขียนโค้ดลักษณะนี้ได้หรือป่าว
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#12
Post
by snasui » Fri Jan 04, 2013 1:50 pm
ผมตอบไปแล้วครับ
snasui wrote: tast107 wrote: ปกติ ถ้าใช้ VBA แล้วเราจำเป็นต้องใช้ macro query ร่วมด้วยหรือป่าวครับ หรือว่าใช้ VBA เพียวๆ ได้เลย เพราะผมยังรู้เกี่ยวกับ VBA ไม่ลึก ก็แค่ทำปุ่มในฟอร์มแล้วก็ใช้vba เรียกฟอร์ม ปิดฟอร์ม ผมเลยอยากรู้ขอบเขตว่า vba สามารถทำงานแทน query, macro ได้หรือป่าวหรือว่าต้องใช้ร่วมกัน
ด้วย VBA สามารถทำได้ทุกอย่างเพราะมันคือภาษา Programming ส่วนจะทำได้ขนาดไหนขึ้นอยู่กับความสามารถของผู้ใช้ครับ
tast107
Member
Posts: 88 Joined: Sun Apr 03, 2011 5:51 pm
#13
Post
by tast107 » Fri Jan 04, 2013 1:59 pm
ถ้าใช้ VBA อย่างเดียวผมคงไม่สามารถ แต่ถ้าใช้ร่วมคิดว่าน่าจะถนัดกว่า ซึ่งไม่แน่ใจว่า critical ใน query มันจะเหมือนคำสั่ง if ใน vba หรือป่าว
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#14
Post
by snasui » Fri Jan 04, 2013 2:26 pm
tast107
Member
Posts: 88 Joined: Sun Apr 03, 2011 5:51 pm
#15
Post
by tast107 » Sat Jan 05, 2013 3:39 pm
ขอบคุณครับคุณsnasui สำหรับคำแนะนำ
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#16
Post
by snasui » Thu Feb 28, 2013 8:47 pm
แนบตัวอย่างไฟล์มาดูด้วยครับ
laurenz
Member
Posts: 2 Joined: Thu Aug 07, 2014 12:31 am
Contact:
#17
Post
by laurenz » Thu Aug 07, 2014 12:54 am
ข้อมูลที่ดีมาก ข้อมูล