Jim Dettman
jimdettman at verizon.net
Fri Feb 16 12:54:04 CST 2007
John, <<In such a case, the fact that it "just works" outweighs all other considerations.>> Well except for the case where there is a loop for a million times<g>. As you say, it is a trade off. My point was that the performance issue was not mentioned and it should be as it's significant enough to make a difference. <<The resolution of the object certainly takes longer, but often times that time will be dwarfed by other things. For example suppose I late bind excel objects. Yes, it takes longer to resolve the reference, but How long does it take to Open Excel? To make a new sheet? To insert data from a query into the sheet? To save the sheet back to disk?>> According to Microsoft, the difference is that it is at least twice as fast using early vs. late. See here: http://support.microsoft.com/kb/245115 and read the section "Which Form of Binding Should I Use?" almost at the bottom. In overall time with all operations taken into account, I have found the difference to amount to 10% to 15% between early and late. That is a generalization to a certain extent as I have worked on projects where the manipulation of an Excel spreadsheet for example was almost cut in half when I switched. Then I've worked on other where the difference has been small. As you said, it depends on the mix of operations. But there is no denying that there is a difference and the difference more often then not is significant. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of JWColby Sent: Friday, February 16, 2007 10:03 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Missing references I would have to take issue with that statement Jim. The resolution of the object certainly takes longer, but often times that time will be dwarfed by other things. For example suppose I late bind excel objects. Yes, it takes longer to resolve the reference, but How long does it take to Open Excel? To make a new sheet? To insert data from a query into the sheet? To save the sheet back to disk? I do understand your point and I think there are situations where it can be critical, inside a loop executing a million times for example, but many times the effect on overall system operation will be negligible. And then there is the simple matter of "yea, it affects the time, but it simply doesn't matter since I have no idea what version of the library the user will have on their machine". In such a case, the fact that it "just works" outweighs all other considerations. John W. Colby Colby Consulting www.ColbyConsulting.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman Sent: Friday, February 16, 2007 9:50 AM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Missing references Bryan, One thing you didn't mention is the performance hit; late binding costs you 10-15% for every operation perform. Jim. -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Bryan Carbonnell Sent: Thursday, February 15, 2007 4:38 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Missing references On 2/15/07, Mark A Matte <markamatte at hotmail.com> wrote: > Since I'm not versed in Binding(Late or Early) ...I've looked at MS > knowledge base...and most of what I found was problems and fixes. > > Any suggestions for 'crash course READING' in bindings? Here's a quick description that I lifted from an article I wrote http://www.databaseadvisors.com/newsletters/newsletter072002/0207wordautomat ionlpt1.asp Early Binding Versus Late Binding First you need to decide whether to use Early Binding or Late Binding. Early Binding allows you to dimension variables by their specific data type. For example, the following declarations refer to the Word Application and Document objects rather than declaring both as generic objects: Dim objWord as Word.Application Dim doc as Word.Document Early Binding also enables a few built-in Intelli-sense features: Auto Complete, Auto List Members, and Auto Quick Info. In addition, using early binding allows you to view Word's object model in the Object Browser. The downside to Early Binding is that you have to set a reference to a specific version of Word. Sometimes Access is smart enough to change the reference to the specific version of Word that is installed on the PC you are deploying your application; often it isn't, and you could end up with problems relating to the references. If you decide to use Late Binding, you will have to dimension all of your variables as Objects as follows: Dim objWord as Object Dim doc as Object Consequently, you cannot access any of your variables until you set them to a specific object as shown below: Set objWord = CreateObject("Word.Application") Set doc = objWord.Documents.Open("C:\Path\To\file.doc") In addition, the Intelli-sense features, Auto Complete, Auto List Members, Auto Quick Info and disables viewing of Word's object model in the Object Browser. However, Late Binding doesn't require that you set a reference to any Word Object Library, which can be advantageous if you are deploying run-time versions of your application to mixed OS/Office Version platforms. Instead of choosing one or the other, we suggest you compromise and use both. During the development phase use Early Binding. Once you release the application, remove all specific references and change each to Object-the best of both worlds! Now that the binding issue is resolved, let's roll up our sleeves and dive into writing some code. -- Bryan Carbonnell - carbonnb at gmail.com Life's journey is not to arrive at the grave safely in a well preserved body, but rather to skid in sideways, totally worn out, shouting "What a great ride!" -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com