Định nghĩa tên cột trong ADO

Chia sẻ bởi:hands
★★★★★
Quảng cáo

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ụ
Khóa học SprinGO phù hợp

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
★★★★★ 5 ★ 1 👤 0 ▥ 0
Quảng cáo

Bạn nên đọc

Leave a Reply

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

Quảng cáo

Cũ vẫn chất

Xem thêm