Periksa Sumber Kontrol dari Semua Kontrol di Proyek MS Access Anda
Selamat Tahun Baru!
Baru-baru ini saya sedang mengerjakan sebuah proyek di mana saya menerapkan pemijahan formulir sehingga klien saya dapat melihat setidaknya dua catatan berbeda menggunakan dua formulir yang identik, salah satu formulir sebenarnya dan yang lainnya adalah versi yang muncul dari dirinya sendiri, (topik yang saya dibahas di pertemuan SQL Server dengan Access saya, klik untuk bergabung dengan daftar pengumuman!). Karena pengembang sebelumnya tidak menggunakan pemijahan formulir, saya harus mencari semua contoh di sumber kontrol semua formulir untuk mengidentifikasi referensi ke formulir asli dan menggantinya dengan TempVars.
Proyek ini memiliki lusinan formulir dan ribuan kontrol, jadi saya membuat kode berikut untuk memindai semua sumber rekaman formulir untuk sumber baris yang melanggar dan sumber kontrol dari semua kontrol pada formulir juga.
Public Sub ScanForms()
On Error Resume Next
Dim obj As AccessObject, dbs As Object
Dim ctrl As Control
Dim strRowsource As String
Setel dbs =Application.CurrentProject
Untuk Setiap obj Dalam dbs.AllForms
'Debug.Print “Bekerja pada:” &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 Kemudian
Debug.Print “Form:” &obj.Name
End If
End If
Untuk Setiap ctrl Dalam Forms(obj.Name).Kontrol
Pada Error Resume Selanjutnya
strRowsource =ctrl.ControlSource
Jika Err.Number Kemudian
strRowsource =vbNullString
End If
On Error GoTo 0
If Len(strRowsource) Kemudian
If InStr(1, strRowsource, “frmPatientProcessing”)> 0 Kemudian
Debug.Print “Form:” &obj.Name &” Control:” &ctrl.Name
End If
End If
Next ctrl
DoCmd.Close acForm, obj.Name
Next obj
End Sub