Zkontrolujte zdroj ovládacích prvků všech ovládacích prvků ve vašem projektu MS Access
Šťastný nový rok!
Nedávno jsem pracoval na projektu, kde jsem implementoval vytváření formulářů, aby můj klient mohl vidět alespoň dva různé záznamy pomocí dvou identických formulářů, jeden ze skutečných formulářů a druhý jako spawnovanou verzi sebe sama (téma, které jsem vytvořil diskutováno na mých schůzkách SQL Server s Access, kliknutím se připojíte k seznamu oznámení!). Protože předchozí vývojář nepoužil vytváření formulářů, musel jsem prohledat všechny instance ve zdroji ovládacích prvků všech formulářů, abych identifikoval odkazy na původní formulář a nahradil jej TempVars.
Projekt má desítky formulářů a tisíce ovládacích prvků, takže jsem vytvořil následující kód, abych naskenoval všechny zdroje záznamů formulářů pro problematický zdroj řádků a také zdroj ovládacích prvků všech ovládacích prvků ve formuláři.
Public Sub ScanForms()
On Error Resume Next
Dim obj As AccessObject, dbs As Object
Dim ctrl As Control
Dim strRowsource As String
Nastavit dbs =Application.CurrentProject
Pro každý objekt v 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, “frmPatientProcessing”)> 0 Then
Debug.Print “Form:” &obj.Name
End If
End If
Pro každý ctrl In Forms(obj.Name).Controls
On Error Resume Další
strRowsource =ctrl.ControlSource
If Err.Number Then
strRowsource =vbNullString
End If
On Error Přejít na 0
If Len(strRowsource) Then
If InStr(1, strRowsource, “frmPatientProcessing”)> 0 Pak
Debug.Print “Form:” &obj.Name &” Control:” &ctrl.Name
End If
End If
Next ctrl
DoCmd.Close acForm, obj.Name
Next obj
End Sub