กวดวิชา SQL VBA

Structured Query Language (SQL) เป็นภาษาคอมพิวเตอร์ที่ใช้สำหรับจัดการฐานข้อมูลเชิงสัมพันธ์ Visual Basic for Applications (VBA) เป็นภาษาการเขียนโปรแกรมที่พัฒนาโดย Microsoft เพื่อใช้กับแอปพลิเคชัน Microsoft Office เพื่อสร้างเนื้อหาแบบไดนามิก Microsoft Access เป็นโปรแกรมฐานข้อมูลภายในชุดโปรแกรม Microsoft Office ที่ใช้ทั้ง SQL และ VBA เพื่อจัดการข้อมูลและจัดเตรียมการทำงานอัตโนมัติให้กับฟังก์ชันฐานข้อมูลที่เป็นระบบ เมื่อใช้เชลล์โปรแกรมที่อยู่เบื้องหลัง Microsoft Access คุณสามารถเชื่อมต่อกับฐานข้อมูลหลัก ค้นหาข้อมูล เพิ่มข้อมูลใหม่ และลบข้อมูลโดยการรวมโค้ดการเขียนโปรแกรม SQL และ VBA

ขั้นตอนที่ 1

เปิดฐานข้อมูลที่คุณต้องการใช้งานใน Microsoft Access เปิด Visual Basic Editor โดยคลิกที่แท็บ "เครื่องมือฐานข้อมูล" จากนั้น "Visual Basic"

ขั้นตอนที่ 2

คลิกที่ "แทรก" จากนั้นคลิก "โมดูล" ใน Visual Basic Editor

ขั้นตอนที่ 3

พิมพ์รหัสเพื่อเชื่อมต่อกับฐานข้อมูล คุณจะต้องสร้างการเชื่อมต่อเพื่อใช้คำสั่ง SQL กับฐานข้อมูล

ย่อย SQLTutorial()

 'ตั้งค่าตัวแปรของคุณเพื่อเก็บข้อมูล Dim Conn เป็น ADODB.Connection 'นี่คือการเชื่อมต่อจริง Dim rsSelect เป็น ADODB.Recordset' นี่คือที่ที่คุณจะบันทึกข้อมูล Dim rsDelete เป็น ADODB.Recordset Dim rsInsert เป็น ADODB.Recordset Dim rsUpdate เป็น ADODB.Recordset Dim strSelectQuery เป็นสตริง 'นี่คือคำสั่ง SQL SELECT จริง Dim strDeleteQuery เป็นสตริง' สิ่งนี้จะเก็บคำสั่ง SQL DELETE Dim strInsertQuery เป็นสตริง 'นี่คือคำสั่ง SQL INSERT Dim strUpdateQuery เป็นสตริง' สิ่งนี้จะเก็บคำสั่ง UPDATE 'พิมพ์รายละเอียดเพื่อเชื่อมต่อกับฐานข้อมูลที่คุณต้องการ Set Conn = New ADODB.Connection With Conn .ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" &_ "แหล่งข้อมูล=C:\Documents\SampleDatabase.mdb" .เปิดท้ายด้วย 

ตอนนี้มีการเชื่อมต่อกับฐานข้อมูลของคุณแล้ว ถัดไป คุณจะกำหนดคำสั่ง SQL ให้กับตัวแปรที่คุณได้ประกาศไว้ข้างต้น

ขั้นตอนที่ 4

พิมพ์คำสั่ง SQL "SELECT" เพื่อเลือกข้อมูลจากฐานข้อมูล แบบสอบถาม SELECT มักจะถูกสร้างขึ้นเช่นนี้: "คอลัมน์ SELECT จากตาราง" คุณสามารถเพิ่มเกณฑ์ให้กับคำสั่ง SELECT ได้โดยเพิ่มในส่วนคำสั่ง "WHERE" ตัวอย่างเช่น คุณมีตารางชื่อ "ลูกค้า" ที่คุณต้องการค้นหาลูกค้าทั้งหมดด้วยนามสกุล "Smith" รหัส VBA และ SQL จะมีลักษณะดังนี้:

strSelectQuery = "เลือก * จาก tblCustomers โดยที่นามสกุล = 'Smith'

เครื่องหมายดอกจัน (*) คือไวด์การ์ด หมายความว่าคุณต้องการดึงข้อมูลหรือคอลัมน์ทั้งหมดจากใครก็ตามที่มีนามสกุล "Smith" ในการเลือกบางคอลัมน์ คุณจะใช้:

strSelectQuery = "เลือกชื่อ, นามสกุลจาก tblCustomers โดยที่ LastName = 'Smith'"

ขั้นตอนที่ 5

พิมพ์คำสั่ง "DELETE" หากคุณต้องการลบแถวข้อมูลออกจากตาราง รหัสสำหรับสิ่งนั้นคือ:

strDeleteQuery = "ลบออกจาก tblCustomers โดยที่ LastName = 'Smith'"

คำสั่งนี้จะลบแถวทั้งหมดที่ลูกค้ามีนามสกุล "Smith" ออกจากตาราง "Customers" ไวยากรณ์พื้นฐานสำหรับคำสั่ง DELETE คือ "DELETE FROM table WHERE column = 'value'"

ขั้นตอนที่ 6

พิมพ์ไวยากรณ์เพื่อแทรกแถวใหม่ลงในตาราง ใช้คำสั่ง "INSERT"

strInsertQuery = "INSERT INTO tblCustomers VALUES (John, Smith, 123 Main Street, คลีฟแลนด์, โอไฮโอ)"

ถ้าคุณมีตารางลูกค้าที่มีคอลัมน์ FirstName, LastName, Address, City และ State คำสั่งนี้จะแทรกข้อมูลลงในคอลัมน์ทางขวา เครื่องหมายจุลภาคบอกให้รหัสข้ามไปยังคอลัมน์ถัดไปก่อนที่จะป้อนค่า ตรวจสอบให้แน่ใจว่าคุณกำลังพิมพ์ค่าในลำดับที่ถูกต้องของคอลัมน์ในตารางเพื่อให้ข้อมูลของคุณสอดคล้องกัน

ขั้นตอนที่ 7

พิมพ์คำสั่ง SQL เพื่อเปลี่ยนแถวข้อมูล นี่คือคำสั่ง "UPDATE"

strUpdateQuery = "อัปเดต tblCustomers SET LastName='Jones', First WHERE LastName='Smith'"

คำสั่งนี้จะเปลี่ยนทุกคนที่มีนามสกุล "Smith" เป็น "Jones" และชื่อแรกของพวกเขาเป็น "Jim" คุณสามารถเปลี่ยนข้อมูลหลายคอลัมน์พร้อมกันได้ในคำสั่ง UPDATE คำสั่งเดียวโดยแยกคอลัมน์ด้วยเครื่องหมายจุลภาค ไวยากรณ์พื้นฐานสำหรับ UPDATE คือ "UPDATE table SET column1=value1, column2=value2, column3=value3,... WHERE column = value"

พิมพ์โค้ด VBA ที่จะเรียกใช้คิวรีและบันทึกผลลัพธ์ลงในชุดระเบียน ปิดรหัส VBA

ตั้งค่า rsSelect = ใหม่ ADODB.Recordset

ด้วย rsSelect

       ตั้งค่า .ActiveConnection = Conn .CursorType = adOpenStatic .Source = strSelectQuery .Open 

จบด้วย

ตั้งค่า rsDelete = ใหม่ ADODB.Recordset

ด้วย rsDelete

       ตั้งค่า .ActiveConnection = Conn .CursorType = adOpenStatic .Source = strDeleteQuery .Open 

จบด้วย

ตั้งค่า rsInsert = ใหม่ ADODB.Recordset

ด้วย rsInsert

       ตั้งค่า .ActiveConnection = Conn .CursorType = adOpenStatic .Source = strInsertQuery .Open 

จบด้วย

ตั้งค่า rsUpdate = ใหม่ ADODB.Recordset

ด้วย rsDelect

       ตั้งค่า .ActiveConnection = Conn .CursorType = adOpenStatic .Source = strUpdateQuery .Open 

จบด้วย

'พิมพ์รหัส VBA เพื่อทำงานกับข้อมูลที่คุณรวบรวมผ่านคำสั่ง SQL

'คุณสามารถใช้ข้อมูลเพื่อโพสต์ในแบบฟอร์ม ในตารางอื่น หรือในรายงาน

'ปิดชุดระเบียนและเชื่อมต่อกับคุณเสร็จแล้ว

rsSelect.Close

rsDelete.Close

rsInsert.Close

rsUpdate.Close

จบซับ