[AccessD] Broken Reference

Rocky Smolin - Beach Access Software bchacc at san.rr.com
Mon Aug 7 15:07:00 CDT 2006


Marty:

Here's what it says:

Function Open(FileName As String, [CloseOutFirstFormat As Boolean = 
False], [UsePrinter As String]) As Format
    Member of BarTender.Formats
    Opens an existing format file.

'as Format' doesn't make sense though, does it?

Rocky


MartyConnelly wrote:
> Under the library selection pane of OB,  when you open the library the 
> two lower panes
> the left  most has the members, It will say somethinglike classes, 
> select the one
> you want and its members are displayed in the right pane,  left click on 
> the one
> you want to see in right pane and its calling parameters input and ouput 
> will be displayed in
> lowest pane along with datatypes. You also may have to right click and 
> select hidden members.
>
>
> Rocky Smolin - Beach Access Software wrote:
>
>   
>> It says Formats is a member of Bar Tender.  and Open is a member of 
>> Formats.  Where do I see the data type being returned?
>>
>> T&R
>>
>> Rocky
>>
>>
>> MartyConnelly wrote:
>>  
>>
>>     
>>> Err the Object Browser should tell you the data type being returned.
>>> if you have the reference set.
>>>
>>> MartyConnelly wrote:
>>>
>>>  
>>>    
>>>
>>>       
>>>> If you are setting it, you must be returning an object rather than a 
>>>> variant.
>>>> Set a reference to bartender and look at the values in the Object Browser
>>>> libary for Bartender to see what they should be set to.
>>>>
>>>> Rocky Smolin - Beach Access Software wrote:
>>>>
>>>>
>>>>
>>>>    
>>>>      
>>>>
>>>>         
>>>>> Marty:
>>>>>
>>>>> I deleted the Reference to Bartender and changed the declarations to:
>>>>>
>>>>> Public BtApp As Object 'BarTender.Application
>>>>> Public BtFormat As Variant 'BarTender.Format
>>>>>
>>>>> In the load event I put:
>>>>>
>>>>> Set BtApp = CreateObject("BarTender.Application")
>>>>> In the Print event however, on the line
>>>>>
>>>>> Set BtFormat = BtApp.Formats.Open(Me.fldFABLabelFile)
>>>>>
>>>>> I get an 'argument not optional' error.  With the old declarations it 
>>>>> worked.  Any idea what's going wrong?
>>>>>
>>>>> Thanks and regards,
>>>>>
>>>>> Rocky
>>>>>
>>>>>
>>>>> MartyConnelly wrote:
>>>>>
>>>>>
>>>>>   
>>>>>
>>>>>      
>>>>>        
>>>>>
>>>>>           
>>>>>> You are mixing Early and Late Binding methods
>>>>>> First remove the reference
>>>>>> Then just change your declarations to things like
>>>>>>
>>>>>> Public BtApp As Object 'BarTender.Application
>>>>>> Public BtFormat As String 'BarTender.Format
>>>>>>
>>>>>>
>>>>>> If you are unsure of the type returned  try using  a variant
>>>>>> especially in the case of returned arrays.
>>>>>>
>>>>>> or leave both types in and do a conditional compile around them
>>>>>>
>>>>>> #Const DebugVersion = 0
>>>>>>
>>>>>> #if DebugVersion = 1 then
>>>>>>  Dim wa as  BarTender.Application
>>>>>>  Set wa = new BarTender.Application
>>>>>> #else
>>>>>>  Dim wa as Object
>>>>>>  set wa = createobject ("BarTender.Application")
>>>>>> #endif
>>>>>> You'l have to set the flag to 1
>>>>>>  (#Const DebugVersion = 1)
>>>>>> and then add a reference to Bartender
>>>>>> for the debug intellisence to work..
>>>>>>
>>>>>> Then to check if Bartender is actually installed  on the machine
>>>>>>
>>>>>> On Error Resume Next
>>>>>> Set objExcelapp = CreateObject("BarTender.Application")
>>>>>> If Err.Number Then
>>>>>>   MsgBox "Bartender not installed or not registered for Automation"
>>>>>>   Exit Sub
>>>>>> End If
>>>>>> 'reset error
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Rocky Smolin - Beach Access Software wrote:
>>>>>>
>>>>>>
>>>>>>  
>>>>>>
>>>>>>     
>>>>>>
>>>>>>        
>>>>>>          
>>>>>>
>>>>>>             
>>>>>>> Dear List:
>>>>>>>
>>>>>>> I have a client who prints bar coded labels through an application 
>>>>>>> called Bartender (cute, huh?).  I wrote a production management system 
>>>>>>> for them which contains all the information in the db that they are 
>>>>>>> inputting manually into Bartender.  So the client asked me to add a 
>>>>>>> function to the app to run Bartender from the production system and that 
>>>>>>> is working great. 
>>>>>>>
>>>>>>> To do this I downloaded and installed the trial version of Bartender and 
>>>>>>> so was able to set a reference to it in the VBA code so I could run 
>>>>>>> Bartender from the client's app (stuff like Public BtApp As 
>>>>>>> BarTender.Application and Public BtFormat As BarTender.Format and Set 
>>>>>>> BtApp = CreateObject("BarTender.Application")).
>>>>>>>
>>>>>>> Problem is that the app won't run on any machine which doesn't have 
>>>>>>> Bartender loaded - it gets a broken reference error when the app opens.
>>>>>>>
>>>>>>> So I'm wondering how to handle this.  Perhaps I unset the reference in 
>>>>>>> the Tools-->References and set it when the bar code form opens?  Or is 
>>>>>>> there a way to trap and get around this error when the app loads?
>>>>>>>
>>>>>>> What's the best way to handle this?
>>>>>>>
>>>>>>> MTIA,
>>>>>>>
>>>>>>> Rocky
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>  
>>>>>>>    
>>>>>>>
>>>>>>>       
>>>>>>>
>>>>>>>          
>>>>>>>            
>>>>>>>
>>>>>>>               
>>>>>>  
>>>>>>
>>>>>>     
>>>>>>
>>>>>>        
>>>>>>          
>>>>>>
>>>>>>             
>>>>>   
>>>>>
>>>>>      
>>>>>        
>>>>>
>>>>>           
>>>>    
>>>>      
>>>>
>>>>         
>>>  
>>>    
>>>
>>>       
>>  
>>
>>     
>
>   

-- 
Rocky Smolin
Beach Access Software
858-259-4334
www.e-z-mrp.com




More information about the AccessD mailing list