Tôi cần tạo một danh sách các trường (tên, loại và kích cỡ) từ bảng Access. mã VB đơn giản này mang lại cho tôi gần những gì tôi cần:Lấy tên của kiểu dữ liệu ADO từ thuộc tính recordset.field.type?
Set rs = CurrentDb.OpenRecordset("myTable")
For x = 0 To rs.Fields.Count - 1
Print #1, rs.Fields(x).Name & vbTab & rs.Fields(x).Type & vbTab & rs.Fields(x).Size
Next
Tuy nhiên "Loại" tất nhiên là một hằng số như "10" thay vì một cái gì đó như "Varchar".
tôi sẽ làm điều này:
Select Case rs.Fields(x).Type
Case adChar
fieldType = "adChar"
Case adInteger
fieldType = "adInteger"
Case adDouble
ETCETERA....
Nhưng tôi tự hỏi, nếu có một cách tốt hơn, một cái gì đó giống như DataTypeEnum.FindName (Type) hoặc một cái gì đó?
Xin lỗi trước nếu đây là "câu hỏi ngu ngốc", nhưng tôi không làm việc trong VB mỗi ngày và Googling đã không đưa ra câu trả lời rõ ràng về điều này.
nó không phải là một câu hỏi ngu ngốc. Hãy thử 'Debug.Print TypeName (rs.Fields (x)), VarType (rs.Fields (x))' i havent đã thử nghiệm nó nhưng chỉ cần cung cấp cho nó một đi –
Không có cách nào dễ dàng để chuyển đổi (trong VBA) một giá trị enum thành tên "tương đương" của nó. Cách bạn có nó là khá nhiều cách bạn làm điều đó. –
Allen Browne có một [trang liệt kê các hằng số] tốt (http://allenbrowne.com/ser-49.html) và thậm chí anh ta có [FieldTypeName] (http://allenbrowne.com/func-06.html) (di chuyển xuống một chút trên trang đó) chức năng, nhưng bạn có lẽ sẽ vẫn phải cuộn của riêng bạn để có được chính xác những gì bạn muốn. – Blackhawk