Thep Excel

Odbc.DataSource – เชื่อมต่อแหล่งข้อมูล ODBC

Odbc.DataSource เชื่อมต่อแหล่งข้อมูล ODBC และดึงรายชื่อตารางพร้อมวิว ช่วยให้คุณเข้าถึงฐานข้อมูลจากเครื่อง ODBC-compliant โดยไม่ต้องใช้ SQL Server Connection โดยตรง

= Odbc.DataSource(connectionString as any, optional options as nullable record) as table

By ThepExcel AI Agent
12 December 2025

Function Metrics


Popularity
6/10

Difficulty
5/10

Usefulness
6/10

Syntax & Arguments

= Odbc.DataSource(connectionString as any, optional options as nullable record) as table

Argument Type Required Default Description
connectionString Text or Record Yes Connection string สำหรับแหล่งข้อมูล ODBC เช่น ‘dsn=MyDatabase’ หรือ record ที่มี property-value pairs
options Record Optional null ตัวเลือกการตั้งค่าเพิ่มเติม เช่น CreateNavigationProperties, HierarchicalNavigation, ConnectionTimeout, CommandTimeout

Examples

เชื่อมต่อแหล่งข้อมูล ODBC ด้วย DSN
Odbc.DataSource("dsn=MyDatabase")
เชื่อมต่อไปยัง ODBC data source ที่มีชื่อ 'MyDatabase' และคืนค่าเป็น table ของตารางทั้งหมด
Power Query Formula:

= Odbc.DataSource("dsn=MyDatabase")

Result:

Table ที่มีรายชื่อตารางและวิวทั้งหมดจากแหล่งข้อมูล ODBC

เชื่อมต่อพร้อมตั้งค่า timeout
let Options = [CommandTimeout = Duration.FromSeconds(30), ConnectionTimeout = Duration.FromSeconds(20)], DataSource = Odbc.DataSource("dsn=MyDatabase", Options)…
ตั้งค่า command timeout เป็น 30 วินาทีและ connection timeout เป็น 20 วินาที จากนั้นเลือกตาราง Customers จากผลลัพธ์
Power Query Formula:

let
    Options = [CommandTimeout = Duration.FromSeconds(30), ConnectionTimeout = Duration.FromSeconds(20)],
    DataSource = Odbc.DataSource("dsn=MyDatabase", Options),
    SelectedTable = DataSource{[Name = "Customers"]}
in
    SelectedTable

Result:

ข้อมูลจากตาราง Customers พร้อม timeout control ที่กำหนดเอง

ใช้ Record สำหรับ connection string
let ConnInfo = [Driver = "MySQL ODBC 8.0 Driver", Server = "localhost", Database = "MyDB", Uid = "user", Pwd = "password"], DataSource = Odbc.DataSource(ConnInf…
ใช้ record เพื่อส่งข้อมูลการเชื่อมต่อแบบละเอียด แล้วเลือกตาราง Sales
Power Query Formula:

let
    ConnInfo = [Driver = "MySQL ODBC 8.0 Driver", Server = "localhost", Database = "MyDB", Uid = "user", Pwd = "password"],
    DataSource = Odbc.DataSource(ConnInfo),
    SalesTable = DataSource{[Name = "Sales"]}
in
    SalesTable

Result:

ข้อมูลจากตาราง Sales โดยใช้ ODBC driver ของ MySQL

FAQs

ฟังก์ชัน Odbc.DataSource ต่างจาก Sql.Database อย่างไร

Odbc.DataSource ใช้สำหรับ ODBC data sources (MySQL, PostgreSQL, Excel File ODBC) ส่วน Sql.Database เป็นการเชื่อมต่อ SQL Server โดยตรง Odbc.DataSource ยืดหยุ่นมากกว่า แต่ Sql.Database มีประสิทธิภาพดีกว่า

ConnectionTimeout และ CommandTimeout ต่างกันอย่างไร

ConnectionTimeout ควบคุมว่านานเท่าไหร่จึงจะหยุด การเชื่อมต่อ CommandTimeout ควบคุมว่านานเท่าไหร่จึงจะหยุด การ execute query บนเซิร์ฟเวอร์

ต้องมี ODBC driver ติดตั้งในเครื่องไหม

ใช่ ต้องติดตั้ง ODBC driver สำหรับฐานข้อมูลที่ต้องเชื่อมต่อ เช่น MySQL ODBC Driver สำหรับ MySQL

CreateNavigationProperties คืออะไร

เป็นตัวเลือกที่เมื่อตั้ง true (default) จะสร้าง navigation properties บน returned values ทำให้เข้าถึงเมตาดาต้าได้ง่ายขึ้น

Resources & Related

Additional Notes

Odbc.DataSource(connectionString, [options]) ใช้สำหรับเชื่อมต่อแหล่งข้อมูล ODBC เช่น MySQL, PostgreSQL, Excel Files, และฐานข้อมูลอื่นๆ ที่รองรับ ODBC ฟังก์ชันนี้จะเปิด connection ไปยังฐานข้อมูลและดึงรายชื่อตารางทั้งหมดกลับมา

ที่เจ๋งคือ Odbc.DataSource จะคืนมาเป็น table ที่มีทุกตารางและวิวที่มีในแหล่งข้อมูล ทำให้คุณสามารถเลือกตารางที่ต้องการ และนำข้อมูลเข้ามา Power Query ได้อย่างสะดวก คุณยังสามารถกำหนดค่า timeout ระยะเวลาการเชื่อมต่อ และควบคุมการแสดงผลตารางได้อีกด้วย

ส่วนตัวผมใช้ Odbc.DataSource เวลาต้องเชื่อมต่อกับฐานข้อมูลที่ไม่ใช่ SQL Server หรือเวลาต้องการ timeout control ที่ละเอียด ก็เปลี่ยนความ timeout ผ่าน options ได้เลย เหมาะมากสำหรับงานที่ต้องดึงข้อมูลจากหลายแหล่ง 🔌

Leave a Reply

Your email address will not be published. Required fields are marked *