Định nghĩa tên cột trong ADO
Chào anh chị,
Em có 1 câu hỏi là ví dụ bảng của mình có chứa các cột mà tiêu đề là chữ tiếng việt có dấu thì làm thế nào để viết câu lệnh cho SQL hiểu là mình đang làm việc với tên cột đó ạ? Em mới tìm hiểu nên không biết. Em viết bằng VBA. Ví dụ: Select * from Data where Tài nguyên like 'dd' thì viết chỗ Tài Nguyên kia ntn để chạy đúng được ạ?
Mong anh chị giải đáp giúp em ạ. Em cảm ơn!
Thử thế này xem được không.
Select * from Data where [Tài nguyên] like 'dd'
Được. Nhưng ví dụ mà là từ Mã số thì làm ntn ạ? Ví nó bị chuyển đổi trong vba. Với lại có cách nào định nghĩa hoặc lấy tên cột tự động theo ý mình để thay thế vào câu truy vấn k ạ?
Em cảm ơn!
Không dùng theo kiểu tên nữa.Bạn chọn kiểu F1,F2 là được.
Khoan :xmasbiggrin: vậy là đầu bài đưa ra đã giải quyết xong ?
Còn ý số 02 là like "dd", thay vì like "dd" thì là"Mã số" mà từ Mã số thì trong VBA kg gõ được ?
Ý em là tên cột ạ. Thay bằng F1 F2 như thế nào ạ? Anh nói thêm giúp em vs. Em mới tìm hiểu nên bị mắc.
Cả cái này nữa. Anh giải đáp giúp em ạ.
Em cảm ơn
Chỗ HDR=YES thay bằng HDR=NO
Xong gọi tên cột ntn ạ? Tên cột là Mã Số nếu viết [Mã số] nó sẽ sai ạ.
Bạn không nên dùng chữ tiếng việt có dấu trên tiêu đề (kể cả việc tên file hoặc đường dẫn đến database có dấu tiếng việt)
(Tránh viết tắt trong bài viết nhé: "ntn")
Trường hợp tên cột là tiếng Việt có dấu, không thể sửa được thì bạn không thể gõ trực tiếp vào câu lệnh SQL được thì bạn truyền nó vào như tham số lấy từ Cell.
Ví dụ: như hình
2670
– Bạn từ gõ tay tên các cột cần xử lý.
– Truyền nó vào câu lệnh SQL: ô có nhiều cột cần lấy thì dùng lệnh Split đưa nó vô mảng
'# Xu lý chuoi Fields --> SQL statement
'--------------------------------------------------
sGroup = Sheet1.Range("C5").Value 'lrow.Offset(0, 2)
sFieldsSumList = Sheet1.Range("D5").Value 'lrow.Offset(0, 3)
sCriteria = "1=1"
sSQL = ""
sFldSum = ""
arrFlds = Split(sFieldsSumList, ",")
For i = 0 To UBound(arrFlds)
sFldSum = sFldSum & "SUM(" & Trim(arrFlds(i)) & ") AS " & Trim(arrFlds(i)) & ","
Next
sFldSum = Left$(sFldSum, Len(sFldSum) - 1)
sSQL = "SELECT " & sGroup & "," & sFldSum & " FROM [" & sRange & "] GROUP BY " & sGroup
Debug.Print sSQL
Set oRst = GetADORecordset(sSQL)
www.giaiphapexcel.com/diendan/threads/%C4%90%E1%BB%8Bnh-ngh%C4%A9a-t%C3%AAn-c%E1%BB%99t-trong-ado.159026/
Học Nhân sự Tổng hợp – Trở thành chiến binh nhân sự vững nghiệp vụ
Con người là một trong những yếu tố quan trọng của công ty, là tài sản quý giá của doanh nghiệp. Chính vì thế,...
Xem khóa học