Kiểm tra nguồn điều khiển của tất cả các điều khiển trong dự án MS Access của bạn
Chúc mừng năm mới!
Gần đây, tôi đang làm việc trong một dự án trong đó tôi đang triển khai tạo biểu mẫu để khách hàng của tôi có thể thấy ít nhất hai bản ghi khác nhau bằng cách sử dụng hai biểu mẫu giống nhau, một trong các biểu mẫu thực tế và một biểu mẫu khác là phiên bản sinh sản của chính nó, (một chủ đề mà tôi đã thảo luận tại cuộc họp SQL Server của tôi với Access, hãy nhấp để tham gia danh sách thông báo!). Bởi vì nhà phát triển trước không sử dụng tạo biểu mẫu, tôi phải tìm kiếm tất cả các phiên bản trong nguồn kiểm soát của tất cả các biểu mẫu để xác định các tham chiếu đến biểu mẫu ban đầu và thay thế nó bằng TempVars.
Dự án có hàng chục biểu mẫu và hàng nghìn điều khiển, vì vậy tôi đã tạo đoạn mã sau để quét tất cả các nguồn bản ghi biểu mẫu cho nguồn hàng vi phạm và cả nguồn kiểm soát của tất cả các điều khiển trên biểu mẫu.
Public Sub ScanForms()
On Error Resume Next
Dim obj As AccessObject, dbs As Object
Dim ctrl As Control
Dim strRowsource As String
Đặt dbs =Application.CurrentProject
For Each obj In dbs.AllForms
'Debug.Print “Working on:” &obj.Name
DoCmd.OpenForm obj.Name, acDesign
strRowsource =Forms (obj.Name) .RecordSource
If Err.Number then
strRowsource =vbNullString
End If
If Len (strRowsource) then
If InStr (1, strRowsource, “frmPworthyProcessing”)> 0 Then
Gỡ lỗi. In “Biểu mẫu:” &obj.Name
Kết thúc Nếu
Kết thúc Nếu
Đối với mỗi ctrl Trong Biểu mẫu (obj.Name). Kiểm soát
Khi Tiếp tục Lỗi Tiếp theo
strRowsource =ctrl.ControlSource
If Err.Number then
strRowsource =vbNullString
End If
On Error GoTo 0
If Len (strRowsource) Then
If InStr (1, strRowsource, “frmPatologyProcessing”)> 0 Then
Debug.Print “Form:” &obj.Name &”Control:” &ctrl.Name
End If
End If
Next ctrl
DoCmd.Close acForm, obj.Name
Next obj
End Sub