View Full Version : حرفه ای: شمارش تعداد خطوط برنامه
mmbguide
چهارشنبه 22 آبان 1392, 20:19 عصر
سلام به همه
میخواستم بدونم چطور میشه تعداد تمام خطوط برنامه نویسی شده در اکسس (فرم-گزارش-ماژول) رو با استفاده از کد نویسی و یا هر چیز دیگه ای شمارش کرد؟
درضمن افزونه و یا برنامه ای هست که به اکسس اضافه بشه و در محیط کد نویسی شماره خط رو نشون بده؟ مثل ویژوال استودیو.
mmbguide
پنج شنبه 23 آبان 1392, 10:55 صبح
یه سر به این سایت بزنید و افزونه مربوط به افیس رو دانلود و نصب کنید
http://www.mztools.com/index.aspx
بعد از نصب در محیط کدنویسی در در منوی Tools یک گزینه اضافه میشه که کارهای جالبی براتون انجام میده
Abbas Amiri
پنج شنبه 23 آبان 1392, 12:04 عصر
سلام به همه
میخواستم بدونم چطور میشه تعداد تمام خطوط برنامه نویسی شده در اکسس (فرم-گزارش-ماژول) رو با استفاده از کد نویسی و یا هر چیز دیگه ای شمارش کرد؟
درضمن افزونه و یا برنامه ای هست که به اکسس اضافه بشه و در محیط کد نویسی شماره خط رو نشون بده؟ مثل ویژوال استودیو.
برای بدست آوردن تعداد خطوط از تابع زیر استفاده کنید:
Function CodeLineNumbers() As Long
Dim sumLines As Long, obj As AccessObject
Dim objLoaded As Boolean
On Error Resume Next
For Each obj In CurrentProject.AllModules
sumLines = sumLines + Access.Modules(obj.Name).CountOfLines
Next
For Each obj In CurrentProject.AllForms
If Not CurrentProject.AllForms(obj.Name).IsLoaded Then
DoCmd.OpenForm obj.Name, , , , , acHidden
objLoaded = False
Else
objLoaded = True
End If
sumLines = sumLines + Forms(obj.Name).Module.CountOfLines
If Not objLoaded Then DoCmd.Close acForm, obj.Name
Next
For Each obj In CurrentProject.AllReports
If Not CurrentProject.AllReports(obj.Name).IsLoaded Then
DoCmd.OpenReport obj.name, , , , acHidden
objLoaded = False
Else
objLoaded = True
End If
sumLines = sumLines + Reports(obj.Name).Module.CountOfLines
If Not objLoaded Then DoCmd.Close acReport, obj.Name
Next
CodeLineNumbers = sumLines
End Function
قابل ذکر است که خطوط خالی مابین کدها هم منظور می شود
mmbguide
پنج شنبه 23 آبان 1392, 13:13 عصر
ممنون بسیار عالی بود
اگر با خطا مواجه شدید در خط 20 کلمه objname رو صورت obj.name بنویسید
Abbas Amiri
پنج شنبه 23 آبان 1392, 18:52 عصر
کد زیر خیلی سریعتر و آسانتر به جواب می رسد
Function CodeLineNumbers() As Long
Dim i As Integer, sumLines As Long
With VBE.ActiveVBProject
For i = 1 To .VBComponents.Count
sumLines = sumLines + .VBComponents(i).CodeModule.CountOfLines
Next
CodeLineNumbers = sumLines
End With
End Function
روز قبل هم قصد نوشتن همین کدها را داشتم ولی از شی VBE خطای رفرنس می گرفت در صورتی که قبلا استفاده کرده بودم و مشکلی نداشت .
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.