1.คำสั่ง DoCmd.RunSQL"......"
ผมเห็นมีหลายคำสั่งที่ใช้ได้ เช่น SELECT,UPDATE,INSERT INTO,DELETE,CREATE TABLE,ALTER TABLE,DROP TABLE
ซึ่งลักษณะการใส่คำสั่ง เป็นลักษณะ DoCmd.RunSQL"SELECT [field name] FROM [table name]"
ซึ่งถ้าผมจะสร้างคำสั่งนี้เป็น Function ไว้ใช้ใน Module อื่นๆ โดยอยากให้ [field name] และ [table name] เป็นตัวแปร
จะสามารถทำได้ไหมครับ เช่น
A = fieldname
B = tablename
DoCmd.RunSQL"SELECT A FROM B"
- .RunSQL method เป็นคำสั่งที่ต้องการ SQL statement ที่ไปทำอะไรกับข้อมูลเท่านั้น การอ่านเรคอร์ดออกมาเฉยๆด้วย SELECT statement นั้นใช้ไม่ได้กับ .RunSQL ครับ แต่ถ้า SELECT ... INTO ... อันนี้ใช้ได้ เพราะเป็นการสร้างเรคอร์ดที่ได้จากการอ่านอีกที
- ทำเป็นฟังก์ชั่นได้ครับ แต่ผมไม่เห็นประโยชน์ในการทำอย่างนั้น เพราะฟังก์ชั่นจะมีแค่คำสั่งเดียวอยู่ดี ซึ่งไม่แตกต่างอะไรกับการสั่ง .RunSQL ตามธรรมดาๆเลย
2.คำสั่งต่างๆที่อ.สันติสุขให้ผมมาเพิ่มเติมเช่น DLookUp,DFirst,... เป็นคำสั่งของ SQL ใช่ไหมครับ ถ้าเป็น SQL ผมก็สงสัยแบบข้างบนน่ะครับ
- ไม่ใช่ครับ เป็นฟังก์ชั่นของตัว Access เอง ไม่ได้ผ่าน DAO/ADO แต่อย่างใด ทำงานได้เทียบเท่าบางคำสั่งของ SQL เท่านั้น
3.วิธีที่อ.สันติสุขแนะนำคือให้ Excel ไปสร้างตารางใน Access หรือ ให้ Access ไปอ่านค่าจาก Excel มาสร้างตารางครับ
ผมงงตรงที่ อ.สันติสุข พูดถึงการอ่านค่าใน tblFactor ใน Excel เพื่อไปใส่ค่าใน Access ทีละ Record ครับ
- เพราะเห็นบอกว่าการป้อน tblFactor ลง Access ตรงๆ (เทเบิลที่มีฟิลด์ Row Header, Column Header, Pivot Value) อาจมี human error ได้ ผมก็เลยคิดว่างั้นก็ป้อนเป็นตารางใน Excel อย่างเดิมที่ส่งรูปมานี่แหล่ะ แต่ให้โค้ด VBA ใน Access อ่านตารางนี้ แล้วแปลง 1 pivot ใส่เป็น 1 เรคอร์ดลงเทเบิล tblFactor ใน Access อีกที (พอดีใช้ชื่อเดียวกันก็เลยทำให้สับสน)
4.Excel.Application คือคำสั่งให้ Access สามารถใช้งานคำสั่งใน Excel ได้รึเปล่าครับ ผมหาวิธีค้นหาในเวปนี้ไม่เจอน่ะครับ เห็นช่องค้นหา
ในหน้าแรกแล้วไปค้นหาใน Google
- เป็น keyword ที่จะช่วยหากระทู้เก่าที่พูดคุยถึงโค้ดที่จะอ่านข้อมูลจาก Excel เท่านั้นครับ ลองดูอันนี้ น่าจะใกล้เคียงครับ
www.thai-access.com/yeadram_view.php?topic_id=44305.สอบถามเพิ่มเติมเกี่ยวกับชื่อ table ครับ พอดีผม Import ข้อมูลออกมาจากโปรแกรมคำนวนทางวิศวกรรม
แล้วชื่อเป็นลักษณะ [Frame Force Assignments] เลยอยากทราบว่าชื่อ Table ควรไม่มีเว้นวรรครึเปล่าครับ
ผมจะสามารถลบเว้นวรรค หรือ แทนค่าเป็น _ จาก table ที่ผม Import 30 กว่า table ด้วย vba หรือ sql ได้ไหมครับ
- Access/DAO/ADO รองรับชื่อที่มี space อยู่ภายในได้ เวลาอ้างถึงก็เพียงใส่ [ ] ครอบชื่ออย่างที่คุณเขียนมานี่แหล่ะครับ
ขอบพระคุณ อ.สันติสุข มากๆเลยครับ
- ขอบคุณครับ