अपने MS Access प्रोजेक्ट में सभी नियंत्रणों के नियंत्रण स्रोत का निरीक्षण करें
नया साल मुबारक हो!
हाल ही में मैं एक ऐसे प्रोजेक्ट पर काम कर रहा था जहां मैं फॉर्म स्पॉनिंग लागू कर रहा था ताकि मेरा क्लाइंट दो समान रूपों का उपयोग करके कम से कम दो अलग-अलग रिकॉर्ड देख सके, वास्तविक रूपों में से एक और दूसरा स्वयं का एक स्पॉन्डेड संस्करण, (एक विषय जो मैंने किया है एक्सेस मीटिंग्स के साथ मेरे SQL सर्वर पर चर्चा की गई, घोषणा सूची में शामिल होने के लिए क्लिक करें!) चूंकि पूर्व डेवलपर ने फॉर्म स्पॉनिंग का उपयोग नहीं किया था, इसलिए मुझे मूल फॉर्म के संदर्भों की पहचान करने और इसे TempVars से बदलने के लिए सभी रूपों के नियंत्रण स्रोत में सभी उदाहरणों को खोजना पड़ा।
प्रोजेक्ट में दर्जनों रूप और हजारों नियंत्रण हैं, इसलिए मैंने आपत्तिजनक पंक्ति स्रोत के लिए सभी प्रपत्र रिकॉर्ड स्रोतों और प्रपत्र पर सभी नियंत्रणों के नियंत्रण स्रोत को भी स्कैन करने के लिए निम्न कोड बनाया है।
Public Sub ScanForms()
On Error Resume Next
Dim obj As AccessObject, dbs As Object
Dim ctrl As Control
Dim strRowsource As String
डीबीएस सेट करें =एप्लिकेशन। करंटप्रोजेक्ट
प्रत्येक obj के लिए dbs.AllForms
'Debug.Print “इस पर काम कर रहा है:” और obj.Name
DoCmd.OpenForm obj.Name, acDesign
strRowsource =Forms(obj.Name).RecordSource
अगर एरर.नंबर है तो
strRowsource =vbNullString
End if
अगर Len(strRowsource) तो
अगर InStr(1, strRowsource, "frmPatientProcessing")> 0 तो
Debug.Print “Form:” और obj.Name
End if
End if
प्रत्येक ctrl in Forms(obj.Name).Controls
के लिए एरर रिज्यूमे पर अगला
strRowsource =ctrl.ControlSource
अगर Err.Number तब
strRowsource =vbNullString
End if
Error GoTo 0
if Len(strRowsource) पर तब
अगर InStr(1, strRowsource, “frmPatientProcessing”)> 0 फिर
डीबग करें। प्रिंट करें “फ़ॉर्म:” और obj.Name और “कंट्रोल:” और ctrl.Name
End if
समाप्त अगर
अगला ctrl
DoCmd.Close acForm, obj.Name
अगला obj
अंत उप