2012-05-01 30 views
7

Tôi có một DB trong Access với số lượng bảng đáng kinh ngạc. Thật không may, người sáng tạo đã sử dụng các tên rất không mang tính mô tả, do đó, về cơ bản không thể đoán được cái bàn chỉ bằng cách nhìn vào tên của nó. Tôi cần phải khẩn trương tìm một bảng có chứa một số dữ liệu nhất định, và tôi khá chắc chắn rằng tôi biết tên của một số cột của nó, hoặc ít nhất là từ chứa trong tên của các cột. Về cơ bản, những gì tôi cần là một số loại 'Tìm kiếm theo tên cột trong mỗi bảng trong toàn bộ cơ sở dữ liệu', cho thấy tất cả các bảng có chứa tên cột nhất định.Tìm bàn khi bạn biết tên cột?

Có cách nào để thực hiện điều này, trước khi tôi bắt đầu đi từng người một như một con khỉ không?

Trả lời

7

Quy trình này sẽ liệt kê tên bảng và tên cột cho bất kỳ cột nào có tên chứa văn bản bạn cung cấp. Các kết quả được in trong cửa sổ Immediate (đi đến đó với Ctrl +g)

Public Sub ListTablesWithColumnNamesContaining(ByVal pText As String) 
Dim db As DAO.Database 
Dim tdf As DAO.TableDef 
Dim fld As DAO.Field 
Set db = CurrentDb 
For Each tdf In db.TableDefs 
    For Each fld In tdf.Fields 
     If InStr(1, fld.Name, pText, vbTextCompare) > 0 Then 
      Debug.Print tdf.Name & ":", fld.Name 
     End If 
    Next fld 
Next tdf 
Set fld = Nothing 
Set tdf = Nothing 
Set db = Nothing 
End Sub 
+0

Làm việc như một nét duyên dáng, cảm ơn! – Antrim

2

Có một cách để tìm tất cả các bảng có tên cột cụ thể, nhưng nó yêu cầu một số mã (trái với việc có thể chỉ chạy truy vấn).

Trước tiên, bạn cần phải làm cho các bảng hệ thống "hiển thị" trong cơ sở dữ liệu. Bạn không đề cập đến phiên bản nào của MS Access đang được sử dụng, nhưng hộp thoại Tùy chọn sẽ cho phép cái gì đó along these lines.

Bảng này hiển thị bảng MSysObjects chứa tất cả tên bảng của người dùng.

Bạn có thể muốn lặp lại qua tất cả các bảng người dùng, chuyển các tên đó vào một số mã mở bảng như đối tượng DAO.TableDef và kiểm tra các thuộc tính của bộ sưu tập Fields tương ứng.

Allen Browne có some VBA code that displays these attributes. Bạn có thể tùy chỉnh điều này theo nhu cầu của bạn.

Các vấn đề liên quan