8 Bước cơ bản để để thiết lập một câu lệnh SQL trong Excel

Ngày tạo 09/06/2021

 -  211 Lượt xem

Bước 1: Tạo đối tượng lấy dữ liệu

Để tiến hành truy cập vào nơi chứa dữ liệu thì đầu tiên ta phải tạo ra một phương thức kết nối với nơi chứa dữ liệu gọi là ADODB.Connection.

Dim Duy As Object

Set Duy = CreateObject("ADODB.Connection")
Lưu ý: "Duy" là tên đối tượng có thể thay đổi theo ý muốn.
 
Bước 2: Tạo túi chứa dữ liệu 
 
Sau khi đã tạo ta đối tượng lấy dữ liệu, tiếp theo ta tạo túi chứa dữ liệu tên "rst" với thuộc tính "Recordset" 
Dim rst As Object
Set rst = CreateObject("ADODB.Recordset")
Bước 3: Lấy đường dẫn
 
Dim duong_dan As String
duong_dan = "C:\SQL\Database_SQL.xlsx"
Lưu ý: C:\SQL\Database_SQL.xlsx là toàn bộ đường dẫn của file chứa dữ liệu cần lấy.
 
Bước 4: Mở đường dẫn đi vào nơi chứa dữ liệu
Duy.Open ("Provider = Microsoft.ACE.OLEDB.12.0;Data Source = " & duong_dan & ";Extended Properties = Excel 12.0")
 
 
Bước 5: Cho dữ liệu vào túi và lọc dữ liệu theo điều kiện của bạn
 
Ở bước này, sẽ tiến hành thực hiện các câu lệnh như SELECT, GROUP BY,... để thực hiện hành động truy vấn dữ liệu theo yêu cầu của người dùng (Các câu lệnh sẽ được trình bày ở những bài viết sau).
rst.Open ("SELECT BatNbr,Crtd_User,DocType,InvcNbr FROM [APDoc$]"), Duy
 
Bước 6: Làm sạch dữ liệu
 
Tại vùng để trả kết quả  ta cần phải xóa dữ liệu cũ tại vùng này  đưa dữ liệu mới sau khi truy vấn vào. 
Sheet2.Range("A1:V150000").ClearContents
Chú thích:
  • "Sheet2" là tên sheetcode tại file chúng ta đang thao tác lập trình. 
  • Range("A1:V150000") là vùng cần xóa và có thể thay đổi vùng này tùy vào nhu cầu dùng
  • ClearContents là cú pháp xóa nội dung trong ô tính excel
 
Bước 7: Lấy tên các cột của dữ liệu từ túi dữ liệu "rst"
 
Sau khi SELECT các cột ở bước 5, ta cần phải đưa các header của các cột vào vùng chứa dữ liệu. Cụ thể các header lần lượt ở đây sẽ là: BatNbr, Crtd_User, DocType, InvcNbr. 
 
Dim i As Integer
    For i = 1 To rst.Fields.Count
        Sheet2.Cells(1, i).Value = rst.Fields(i - 1).Name
    Next
Chú thích:
  • Dim i as Interger: khởi tạo biến i
  • rst.Fields.Count: đếm số cột đã Select được ở bước 5 (cụ thể là có 5 cột => rst.Fields.Count = 5)
  • Sheet2.Cells(1, i).Value = rst.Fields(i - 1).Name: tên từng cột được mang qua ô Cell(1,i)
  • Ý nghĩa vòng lặp For - Next: Với mỗi biến "i" chạy từ 1-5 thì sẽ mang từng tên của cột tương ứng qua vùng chứa kết quả
 
Bước 8: Sao chép các dữ liệu từ túi dữ liệu qua vùng chứa kết quả
 
Sheet2.Range("A2").CopyFromRecordset rst
 
Chú thích: 
  • Sheet2 là sheet chứa kết quả
  • Range("A2") là ô trả kết quả
 
 
 
 
phương duy

 
 
Gọi (028) 3514 2046