7 BƯỚC CƠ BẢN, CÂU LỆNH SELECT
Để bắt đầu bước vào các câu lệnh nâng cao hơn, hôm nay chúng ta sẽ tìm hiểu cấu trúc cơ bản của một chương trình cơ bản và câu lệnh đầu tiên SELECT
1. 8 Bước cơ bản để thiết lập 01 câu lệnh SQL trong Excel/Access VBA
1.1 Create ADODB Connection (tạo kết nối)
Dim cn As Object
Set cn = CreateObject("ADODB.Connection")
Trong đó:
Dim: khai báo biến
As: gán kiểu biến
Set: thiết lập giá trị cho biến
1.2 Create ADODB Recordset (tạo nơi chứa dữ liệu)
Đây sẽ là nơi dữ liwwju của bạn được lưu trữ khi mới lấy dữ liệu từ database và chưa lưu vào trên sheet.
Dim rst As Object
Set rst = CreateObject("ADODB.Recordset")
1.3 Define Sources (khai báo đường dẫn)
Đường dẫn ở đây chính là đường dẫn đến database trên máy của các bạn
Dim duong dan As String
duong dan = "đường dẫn”
vd:
Dim duong dan As String
duong dan = "D:\Excel SQLITraining Online SeminarisQL in Excel\Database.xisx”
1.4 Connection String (mở kết nối)
Sau khi đã tạo kết nối ở bước 1 chúng ta sẽ mở kết nối để có thể lấy dữ liệu từ database.
Tên_biến.Open ("Provider = Microsoft.ACE.OLEDB.12.0;Data Source = "& duong dan & ";Extended Properties = Excel 12.0")
Lưu ý: tên_biến là biến kết nối được khai báo ở bước 1. Trong trường hợp này là biến “cn”
1.5 SQL statement
Ở bước 5 chúng ta sẽ dung các câu lệnh truy vấn để lấy dữ liệu từ database theo yêu cầu nhất định.
1.6 Clean existing data report (làm sạch vùng chứa dữ liệu)
Sheetn.Range("vùng trả kết quả").ClearContents
Chú ý:
n: là sheet code (thứ tự của sheet) bạn muốn trả kết quả
vùng trả kết quả: là vùng dữ liệu sẽ trả về khi lấy dữ liệu từ database
1.7 Copy Field Name from Recordset
Dim i As Integer
For i=1 To rst.Fields.Count
Sheetn.Range("AI").Offset(0, i- 1).Value = rst.Fields( - 1).Name
Next
1.8 Copy data from Recordset into Excel
Sheetn. Range("A2").CopyFromRecordset rst
Trong bước 7 và 8 tên cột sẽ được ghi vào sheet mới ở bước 7 và dữ liệu của cột sẽ được ghi vào sheet mới ở bước 8.
Ví dụ tổng quát 8 bước cơ bản:
Sub demo2()
Dim cn As Object
Set cn = CreateObject("ADODB.Connection")
Dim rst As Object
Set rst = CreateObject("ADODB.Recordset")
Dim duongdan As String
duongdan = "C:\Users\ASUS\OneDrive\Desktop\SQL_web\Database_demo.xlsx"
cn.Open ("Provider = Microsoft.ACE.OLEDB.12.0;Data Source = " & duongdan & ";Extended Properties = Excel 12.0")
rst.Open ("select ProductID from [Purchasing_ProductVendor$]"), cn
Sheet1.Range("A1:H15000").ClearContents
Dim i As Integer
For i = 1 To rst.Fields.Count
Sheet1.Range("A1").Offset(0, i - 1).Value = rst.Fields(i - 1).Name
Next
Sheet1.Range("A2").CopyFromRecordset rst
End Sub
Sau khi chạy đoạn code ví dụ trên ta thu được kết quả nhưu hình bên dưới
Sheet1.Range("A2").CopyFromRecordset rst
2 Câu lệnh Select
2.1 Select là gì?
Seclect là một câu lệnh để lấy dữ liệu từ 1 hay nhiều bảng trong cơ sở dữ liệu. Câu lệnh select thường được kết hợp với một số các câu lệnh và điều kiện khác để lấy được dữ liệu theo yêu cầu.
2.2 Cú pháp câu lệnh Select
Trước tiên chúng ta hãy cùng đến với cú pháp của một câu lệnh select căn bản nhất.
SELECT tên cột FROM [tên bảng$]
Vd: SELECT ProductID, BusinessEntityID FROM [Purchasing_ProductVendor$]
Ngoài còn một số câu lệnh select khác như:
Select TOP n: lấy ra n dòng đầu tiên trong database
Select TOP n percent: lấy ra n% dòng đầu trong database
Select Distinct: lấy các dòng dữ liệu không trùng.
Ngoài ra Select có thể kết hợp với các câu lệnh khác như where, group by, order by, having để lọc và sắp xếp dữ liệu theo yêu cầu.