2010-07-27 42 views
10

Tôi cần lấy tất cả các tên cột của bảng bằng VBA hoặc Access SQL và lặp qua chúng để xác thực, có ai có giải pháp cho điều này không, tôi đã tìm kiếm trên Google để không có kết quả.Lấy tên cột

Trả lời

14

này sẽ làm việc

Set db = CurrentDb() 
Set rs1 = db.OpenRecordset("Table1") 
Dim fld As DAO.Field 
For Each fld In rs1.Fields 
    MsgBox (fld.Name) 
Next 
Set fld = Nothing 
+0

nhanh, sạch và chính xác những gì tôi muốn, cảm ơn bạn! +1 – Yoda

+0

Tốt để nghe nó, bạn được chào đón .. –

+3

Tôi thường không bao giờ sử dụng bộ đếm cho các bộ sưu tập có loại dữ liệu riêng cho các mục trong bộ sưu tập. Tôi muốn sử dụng Đối với Mỗi fld Trong rs1.Fields, thay vào đó (với biến fld là loại DAO.Field). –

2
Dim l As Integer 

For l = 0 To CurrentDb.TableDefs("tbl_Name").Fields.Count - 1 
    Debug.Print CurrentDb.TableDefs("tbl_Name").Fields(l).name 
Next l 
+0

Đây là những gì Feral đã có 3 năm trước, nhưng đã thay đổi nó thành mã tốt hơn nhiều do David đề xuất. Tôi không hiểu tại sao bạn thêm nó (ba năm sau); thậm chí ít hơn lý do tại sao nó có upvotes. – Johanness