Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion GroupsFormsForms ProgrammingQueriesModules / DAO / VBAReports / PrintingMacrosDatabase DesignSecurityConversionImporting / LinkingSQL Server / ADPMultiuser / NetworkingReplicationSetup / ConfigurationDeveloper ToolkitsActiveX ControlsNew UsersGeneral 1General 2
Access DirectoryToolsTutorialsUser Groups
Related Topics
SQL ServerOther DB ProductsMS OfficeMore Topics ...

MS Access Forum / Forms Programming / January 2005

Tip: Looking for answers? Try searching our database.

Count lines of code?

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Bill - 27 Jan 2005 21:25 GMT
Is there a utility available that will count the
lines of code within a project? I.e., the code
sheets of forms, reports and modules?
Thanks,
Bill
Paul Overway - 27 Jan 2005 22:01 GMT
This function will do it...just call it from the immediate window.  If you
really want a utility, you might look at Total Access Analyzer.

Function CountCodeLines() As Long

Dim db As Database
Dim cnt As Container
Dim rpt As Report
Dim frm As Form
Dim mdl As Module
Dim doc As Document

On Error Resume Next

   Set db = CurrentDb()
   Set cnt = db.Containers("Forms")
   For Each doc In cnt.Documents
       DoCmd.OpenForm doc.Name, acDesign
       For Each frm In Forms
           If frm.Name = doc.Name Then
               If frm.Properties("HasModule") Then
                   Set mdl = frm.Module
                   CountCodeLines = CountCodeLines + mdl.CountOfLines
               End If
           End If
       Next
       DoCmd.Close acForm, doc.Name
   Next

   Set cnt = db.Containers("Reports")
   For Each doc In cnt.Documents
       DoCmd.OpenReport doc.Name, acDesign
       For Each rpt In Reports
           If rpt.Name = doc.Name Then
               If rpt.Properties("HasModule") Then
                   Set mdl = rpt.Module
                   CountCodeLines = CountCodeLines + mdl.CountOfLines
               End If
           End If
       Next
       DoCmd.Close acReport, doc.Name
   Next

   Set cnt = db.Containers("Modules")
   For Each doc In cnt.Documents
       DoCmd.OpenModule doc.Name

       Set mdl = Modules(doc.Name)

       If mdl.Name = doc.Name Then
           CountCodeLines = CountCodeLines + mdl.CountOfLines
       End If
       DoCmd.Close acModule, doc.Name
   Next

End Function

Signature

Paul Overway
Logico Solutions
http://www.logico-solutions.com

> Is there a utility available that will count the
> lines of code within a project? I.e., the code
> sheets of forms, reports and modules?
> Thanks,
> Bill
Jeff Conrad - 27 Jan 2005 22:54 GMT
I created an Access Add-In called the "Albert Kallal Database Statistics"
that does exactly this. The add-in will make a one-page report that lists
the total number of lines of code in Modules, Forms, and Reports (a
sub total for each and a grand total) as well as a count of each other
type of database object (a sub total for each category and a grand total).

Once installed (takes less than a minute) all you have to do is
Tools | Add-Ins | Albert Kallal Database Statistics. Poof!
After a short time a slick report is displayed on the screen. Easy as pie!
A few words of warning though. This will have some INTENSE screen
flickering so you may want to look away from the monitor. Serious!
Also, make sure you always have good backups of your file before
launching since it is intense code! Don't miss that step.

I am awaiting word back from Albert about the possibility of having him post
it on his web site where anyone can download it. In the meantime, I do not
believe he would have a problem if I sent you a copy. If you do wish to have
a copy please let me know where you would like it sent to (please mung the
e-mail address so you won't get spammed!). There is one version for Access
97 and one for 2000 which works with Access 2000, 2002, and 2003.
I will need to know which version you need.

Signature

Jeff Conrad
Access Junkie
Bend, Oregon

> Is there a utility available that will count the
> lines of code within a project? I.e., the code
> sheets of forms, reports and modules?
> Thanks,
> Bill
MikeB - 27 Jan 2005 23:31 GMT
> I created an Access Add-In called the "Albert Kallal Database Statistics"
> that does exactly this. The add-in will make a one-page report that lists
> the total number of lines of code in Modules, Forms, and Reports (a
> sub total for each and a grand total) as well as a count of each other
> type of database object (a sub total for each category and a grand total).

Jeff,
 I just ran the Statistics report of MzTools and it returns this information:

File-File Type-Code Lines-Comment Lines-Total Lines-Procedures-Controls

Project Group Project Group 1,777 (90%) 205 (10%) 1,982 174 0
test (test.mdb) Project 1,777 (90%) 205 (10%) 1,982 174 0
AddressOf Module 35 35 70 2 0
Form_CalMike VBA Document 216 3 219 56 0
Form_CalMike2 VBA Document 32 7 39 7 0
Form_Dummy VBA Document 15 0 15 2 0
Form_frmAddAppointmentDates VBA Document 26 0 26 1 0
Form_frmCalendar VBA Document 57 0 57 5 0
Form_frmCalendar1 VBA Document 82 0 82 16 0
Form_TestCbo VBA Document 39 2 41 4 0
Form_TestForm VBA Document 41 0 41 5 0
Form_TestFormSub VBA Document 6 0 6 1 0
Form_TestListBox VBA Document 63 17 80 6 0
Form_TestWebBrowser VBA Document 13 0 13 2 0
Form_UsaMap VBA Document 10 0 10 3 0
Form_WindowsCalcDemo VBA Document 50 3 53 5 0
main Module 358 24 382 33 0
modCalendarScheme Module 59 1 60 1 0
modDialogColor Module 31 8 39 1 0
modMCAccessWindow Module 36 0 36 1 0
modMCAVIError Module 13 2 15 1 0
modMCAVIFunctions Module 112 12 124 6 0
modMCCurrentDBDir Module 9 5 14 1 0
modMCDayClick Module 38 3 41 1 0
modMCDetermineMonthInformation Module 35 2 37 1 0
modMCGlobalVariables Module 22 0 22 0 0
modMCMiniCalendar Module 89 17 106 1 0
modMCMonthToNumber Module 13 1 14 1 0
modMCNumberToMonth Module 5 0 5 1 0
modMCSysTray Module 209 54 263 7 0
modMCWeekOfDates Module 36 9 45 1 0
Report_repTestDate VBA Document 26 0 26 2 0
subMain Module 0 0 0 0 0
TestNoExplicit Module 1 0 1 0 0

I am wondering in what way your addin differs from MzTools?
Jeff Conrad - 28 Jan 2005 03:21 GMT
> Jeff,
>   I just ran the Statistics report of MzTools and it returns this information:
>
>  <<Output Snipped>>
> I am wondering in what way your addin differs from MzTools?

Hi Mike,

I have used MzTools before, but it has been a while.

Here is the report output from one of my databases:
Lines Of Code In Modules: 9714
Lines Of Code In Forms: 24076
Lines Of Code In Forms: 6327
Total Lines Of Code: 40117
Number Of Tables (Including System): 40
Number Of Tables (User Defined): 33
Number Of Queries: 113
Number Of Forms: 103
Number Of Reports: 84
Number Of Macros: 3
Number Of Modules: 45
Total Number Of Database Objects: 388

Signature

Jeff Conrad
Access Junkie
Bend, Oregon

> > I created an Access Add-In called the "Albert Kallal Database Statistics"
> > that does exactly this. The add-in will make a one-page report that lists
> > the total number of lines of code in Modules, Forms, and Reports (a
> > sub total for each and a grand total) as well as a count of each other
> > type of database object (a sub total for each category and a grand total).
Paul Overway - 28 Jan 2005 04:19 GMT
Jeff:

You keep track of all that in a single database?  Hats off...you must have a
mind like a steel trap.  :o)

My biggest app has roughly the same number of lines, but I split it into
reference libraries (9) and a DLL, plus the main database and back end.
39,510 lines of code, 49 user defined tables, 1,133 queries, 49 reports, 151
forms and growing!   I think splitting up large apps like this into
libraries of functionality makes it more managable.

Signature

Paul Overway
Logico Solutions
http://www.logico-solutions.com

>> Jeff,
>>   I just ran the Statistics report of MzTools and it returns this
[quoted text clipped - 29 lines]
>> > type of database object (a sub total for each category and a grand
>> > total).
Jeff Conrad - 28 Jan 2005 05:26 GMT
Hi Paul,

> You keep track of all that in a single database?

Yes, but it is split into a FE/BE. The report counts the table links.

> Hats off...you must have a mind like a steel trap.  :o)

Steel plate maybe.
<g>

> My biggest app has roughly the same number of lines, but I split it into
> reference libraries (9) and a DLL, plus the main database and back end.
> 39,510 lines of code, 49 user defined tables, 1,133 queries, 49 reports, 151
> forms and growing!   I think splitting up large apps like this into
> libraries of functionality makes it more manageable.

Good golly that is a lot of queries Paul! Who has the steel trap mind?
:-)

This is a growing program to say the least. I am receiving feedback as
to what the users would like to see added, as well as including new
features that I have come up with. This next version will see a ton of new
stuff added. However, at the same time it is growing, I'm actually
condensing things somewhat. For example, I used to have three different
forms (and queries) for entering Vendor information. Now I condensed
that all into one form and query.

Keeping track of things sometimes can be a little hairy yes. What I am
doing right now is stripping out each menu of common tasks into its
own separate MDB file. This way I can work on all the queries, forms,
reports, etc. for that particular area. For example, all the Vendor stuff
is now in one file. When I am all completed I will bring everything back
together again in one file.

Signature

Jeff Conrad
Access Junkie
Bend, Oregon

> >> Jeff,
> >>   I just ran the Statistics report of MzTools and it returns this
[quoted text clipped - 29 lines]
> >> > type of database object (a sub total for each category and a grand
> >> > total).
Paul Overway - 28 Jan 2005 05:52 GMT
Yes...it is a mind numbing number of queries.  That doesn't even count SQL
in VBA.  :o/

I bit the bullet version before last splitting it into libraries, but I'm
glad I did.  It really is much easier to work on now...I just released v6.0
and dev time was much less even with some major changes....think I added
over 200 queries this last version.   I wrote a little app that builds all
the MDEs in a batch, so, that part is easy too.

You really should look into using libraries, it would save you from
stripping stuff out and putting it back in.  That has to be a job all by
itself!  I broke mine up by functionality, i.e., one for reports and
queries, one for donation functionality, one for pledge functionality, etc..
Plus, I've got it where specially designed Access add-ins can be loaded in
my app....no reference for those.

Now, I guess we both have to pray that Microsoft doesn't pull the rug out
from under us by making some radical change in direction for Access.

Signature

Paul Overway
Logico Solutions
http://www.logico-solutions.com

> Hi Paul,
>
[quoted text clipped - 66 lines]
>> >> > type of database object (a sub total for each category and a grand
>> >> > total).
MikeB - 28 Jan 2005 18:08 GMT
> Now, I guess we both have to pray that Microsoft doesn't pull the rug out
> from under us by making some radical change in direction for Access.

VBA dot NOT ??
Paul Overway - 28 Jan 2005 21:57 GMT
Yeah...I'm really not interested in see Access move to VB.NET.  Jeez...users
have enough problems learning fairly simple VBA.  And I have yet to see a
compelling reason for using it as a developer....other than that is where
Microsoft wants everyone to go.   IMO, VB.NET was a pretty stupid move on
Microsoft's part.

Signature

Paul Overway
Logico Solutions
http://www.logico-solutions.com

>> Now, I guess we both have to pray that Microsoft doesn't pull the rug out
>> from under us by making some radical change in direction for Access.
>
> VBA dot NOT ??
Jeff Conrad - 28 Jan 2005 22:07 GMT
Hi Paul,

I may have to break the application apart into various sub-sets at some
point, but for now everything is humming along just fine. I also do not
have any experience with creating DLL files at this point.

Personally, I'm hoping Microsoft will just continue to add new features
to Access and release many, many new versions in the future. I may
have to be put in isolation if they choose not to. <g>

Signature

Jeff Conrad
Access Junkie
Bend, Oregon

> Yes...it is a mind numbing number of queries.  That doesn't even count SQL
> in VBA.  :o/
[quoted text clipped - 85 lines]
> >> >> > type of database object (a sub total for each category and a grand
> >> >> > total).
Bill - 29 Jan 2005 16:53 GMT
Thanks Jeff. And yes, please send me Albert's add-in
per reply to my e-mail to you.
Bill

>I created an Access Add-In called the "Albert Kallal Database Statistics"
> that does exactly this. The add-in will make a one-page report that lists
[quoted text clipped - 25 lines]
>> Thanks,
>> Bill
Bill - 29 Jan 2005 17:49 GMT
Jeff,

Apparently jeffc@ernstbrothers.com is a mung'd address, as my
e-mail was rejected. I should have realized that from the start.

In my e-mail, I'd asked you to send me Albert's statistics add-in.

If you would please, send it to me at jps@stanton.net (the domain
being jps.net)

Thanks,
Bill Stanton
Graeagle, CA

>I created an Access Add-In called the "Albert Kallal Database Statistics"
> that does exactly this. The add-in will make a one-page report that lists
[quoted text clipped - 25 lines]
>> Thanks,
>> Bill
Jeff Conrad - 29 Jan 2005 19:45 GMT
Hi Bill,

You are correct; my posted e-mail address goes to Never-Never Land.
Keeps the SPAM down.

Sure, I can send along a copy of the Add-In.
Do you need the 97 version or the 2000 version?
The 2000 version works with Access 2000, 2002, and 2003.

And just to double check, the file should go here:
stanton
at
jps
dot
net
Correct?

Signature

Jeff Conrad
Access Junkie
Bend, Oregon

> Jeff,
>
[quoted text clipped - 39 lines]
> >> Thanks,
> >> Bill
Bill - 29 Jan 2005 21:11 GMT
Jeff,
Yes, the e-mail address is correct as you note.

My current environment is Office 2000, so the 2000
version will work just fine.

Earthlink owns JPS and I have the spam blocker turned
on so I don't get bombarded with spam. Thus, since I
don't have your address, I'll keep an eye out for your
e-mail in the spam folder at Earthlink, so I can "open
the door" to your address when it arrives.

Thanks,
Bill

> Hi Bill,
>
[quoted text clipped - 64 lines]
>> >> Thanks,
>> >> Bill
Jeff Conrad - 29 Jan 2005 22:32 GMT
Hi Bill,

File has been sent to the address you provided.
Subject line will be:
"Access Add-In You Requested From The Newsgroup"
Please follow these steps to install the Add-In.
Also, please read the important information in Step 4!

The Add-In will not work on MDE files for obvious reasons.

1. Unzip the file AKStats.MDA to your Office or Access directory
to easily find it when we install the Add-In.

2. Now open any Access database and go up to "Tools" on the main
Access menu bar. From there go down to the option called "Add-Ins".
This sub-menu will list any installed Access add-ins on your system, as
well as an option called "Add-In Manager". Click on the option called
"Add-In Manager" and a new screen will appear.

3. The box will display a list of available add-ins on the left side. Depending
upon where you unzipped the add-in file, you may see the Albert Kallal
Database Statistics already listed in this box. If the file is listed, click on the
option to highlight it and then press the "Install" button to complete the installation.
There should now be a little "x" next to the option meaning it has now been
installed. If you do not see the add-in listed in this box simply click the button
called "Add New..." where you can browse for the location of the file. Once
you find the file and click on it in the browse window, you will be taken back
to the Add-In Manager screen. Now you should see our add-in listed in the
box with a "x" by it meaning it has been successfully installed. If not, highlight
the option and then press the "Install" button to complete the installation. Hit the
"Close" button on the Add-In Manager when finished.
That's it, now we're ready to use the utility!

4. Before launching the Add-In on a database, make sure you make at least TWO
backups of your database file. Why two? Two is better than one backup. The
add-in will be accessing every bit of your code so if there is ANY possible VBA
corruption in your database, Access will cough up a hairball. I specifically tested
it on a database with corruption for this purpose and it crashed every time. So,
PLEASE make backups before beginning. One last thing, look AWAY from the
monitor because it will have some serious screen flashing!!

5. To launch the add-in, simply open any database you wish to document and go
up to Tools | Add-Ins and click on the new option "Albert Kallal Database Statistics".
Depending upon the number of objects in your database the utility should only take a
short time to create the report and display it on the screen. It will be a one-page report
that you can just print. Doesn't get any easier than that!

Please post back to the newsgroup when you receive the file and if you have any
problems. The e-mail was being sent from a "dump" e-mail account and will not be
checked if a reply is sent. The ONLY way I will know if you received the file is
through the newsgroup.

Also, besides myself, Albert, and one other person, no one else has used this utility
so I woulnd't mind knowing if everything works OK. Feedback is welcome.

Hope you find it useful.

Signature

Jeff Conrad
Access Junkie
Bend, Oregon

> Jeff,
> Yes, the e-mail address is correct as you note.
[quoted text clipped - 79 lines]
> >> >> Thanks,
> >> >> Bill
Bill - 29 Jan 2005 23:13 GMT
Jeff,
As I would expect, Albert's code works great. I tried it out
on one of my small databases, using the source mdb file from
which I maintain the code and from which I create the mde
file for the end users.
Thanks very much,
Bill

Snapshot of test follows:
========================================================
   Database Statistics

   C:\GCC\GCC-Source V4.8.4.mdb

 Lines Of Code In Modules:  1130

 Lines Of Code In Forms:  3084

 Lines Of Code In Reports:  391

 Total Lines Of Code:  4605

 Number Of Tables (Including   25

 Number Of Tables (User Defined):  20

 Number Of Queries:  29

 Number Of Forms:  29

 Number Of Reports:  12

 Number Of Macros:  0

 Number Of Modules:  20

           Total Number Of Database Objects:            115
========================================================
> Hi Bill,
>
[quoted text clipped - 163 lines]
>> >> >> Thanks,
>> >> >> Bill
Jeff Conrad - 30 Jan 2005 02:18 GMT
Hi Bill,

Excellent, glad to hear you received the file OK and
everything worked perfectly. Also, thank you for the
feedback and even displaying the output. Cool!

Signature

Jeff Conrad
Access Junkie
Bend, Oregon

> Jeff,
> As I would expect, Albert's code works great. I tried it out
[quoted text clipped - 201 lines]
> >> >> >> Thanks,
> >> >> >> Bill
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.