Shamil Salakhetdinov
shamil at users.mns.ru
Wed Aug 9 09:30:08 CDT 2006
Thank you, Rocky, A gallon of vodka would kill me. A glass and in several shots with good snacks that would be enough. :) In fact I prefer a few of good red wine or Tequila or Caperinja or Cointreau or Whiskey or Martini - nothing special... -- Shamil -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin - Beach Access Software Sent: Wednesday, August 09, 2006 7:40 AM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Removing a missing reference I'll be damned. Who knew? When all else fails, read the manual? I owe you a beer or maybe two. Or three. (I owe Shamil a gallon of Vodka as well). Might be able to pay off the debt as well next week. We're in Vancouver for the week. And are planning a day trip to Victoria. Maybe we can say hello. Best, Rocky MartyConnelly wrote: > All the docs on the calls are in C:\Program > Files\Seagull\BarTender\7.74\Automation.chm > The VB.Net code is almost same as VBA except instantiation. > > This runs and prints > > Sub testbar() > 'Declaring a BarTender application variable > Dim btApp As Object > 'Declaring a format variable > Dim btFormat As Object > 'Instantiating the BarTender object > Set btApp = CreateObject("BarTender.Application") > 'Setting the BarTender Application Visible > btApp.Visible = True > 'Setting the BarTender format to open > 'the .btw template file might have to be previously saved from Bartender > Set btFormat = btApp.Formats.Open("c:\temp\Format1.btw", False, "") > 'Printing the label format > Dim lRet As Long > lRet = btFormat.PrintOut(True, True) > 'Ending the BarTender process > btApp.Quit (BarTender.BtSaveOptions.btDoNotSaveChanges) > End Sub > > > > Rocky Smolin - Beach Access Software wrote: > > >> Shamil: >> >> I tried using late binding which would work real well but partway into >> the code I got an error. On the statement: >> >> Set BtFormat = BtApp.Formats.Open(Me.fldFABLabelFile) >> >> I get an 'argument not optional' error - don't know why. But the >> reference is to the Bartender.exe, if that makes any difference. Using >> early binding, this code works well. >> >> To change from early to late binding I changed >> >> Public BtApp As BarTender.Application >> Public BtFormat As BarTender.Format >> >> to >> >> Public BtApp As Object 'BarTender.Application >> Public BtFormat As Variant 'BarTender.Format >> >> and then in the load event: >> >> Set BtApp = CreateObject("BarTender.Application") >> >> There is no object model for Bartender so I don't know what it is >> expecting for BtFormat. >> >> But late binding would solve the problem. >> >> Any ideas? >> >> If I want to try your other solution I'll have some questions. It's a >> bit past my capabilities. >> >> Thanks and regards, >> >> Rocky >> >> >> Shamil Salakhetdinov wrote: >> >> >> >>> Rocky, >>> >>> I still think the easiest and the most reliable solution for your case is to >>> use late binding. Did I miss something in this thread - why it didn't work >>> for you? >>> >>> If you decide to not use late binding and if remove reference doesn't work >>> for you - then you can use Add Reference (anyway your intention to use >>> Remove Reference forces your FE to loose its compiled state as well as Add >>> Reference does). >>> >>> I mean the following: >>> >>> - put all your bar code printing code into a separate library/utility >>> database, set reference to bar code printing library in this database; >>> >>> - in your FE keep the code to check is it possible to create bar code >>> printing object or not; >>> >>> - if it's possible to create bar code printing object then add reference to >>> its library (code to add reference MUST BE kept in another library database >>> - if executed in FE such will force FEs global vars to loose their values); >>> >>> Etc. >>> >>> This above is a flexible solution but its above description isn't a full >>> story - in this case if your FE uses global variables then you have to >>> create another "proxy" FE to keep start-up code, (dynamic) references, >>> commandbars... and use your current FE as a library database - then >>> CurrentDb if you use it becomes a problem etc. >>> >>> This above technique works very well - it was used in real life apps here >>> and there back to the years 1998-2000 but program databases and their code >>> should be refactored to be used within this technique.... >>> >>> It's very shortly described here - "A method to modularize MS Access >>> applications" - http://smsconsulting.spb.ru/shamil_s/downloads.htm >>> >>> But applying it for your case looks like using "cannons to shoot at >>> nightingales" - why not use simple and effective late binding? >>> >>> -- >>> Shamil >>> >>> -----Original Message----- >>> From: accessd-bounces at databaseadvisors.com >>> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin - >>> Beach Access Software >>> Sent: Tuesday, August 08, 2006 11:45 PM >>> To: Access Developers discussion and problem solving >>> Subject: Re: [AccessD] Removing a missing reference >>> >>> Marty: >>> >>> Access.References.Remove refCurr still generates error: -2147319779 - Object >>> library not registered. >>> >>> Rocky >>> >>> >>> >>> >>> >>> >>> >>> >> >> >> > > -- Rocky Smolin Beach Access Software 858-259-4334 www.e-z-mrp.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com