Asger Blond
ab-mi at post3.tele.dk
Tue Sep 21 10:02:09 CDT 2010
Chester, > DoCmd.TransferSpreadsheet acLink, 8, varFileName, True Parameter 4 is supposed to be the filename. So setting this to True obviously give the mentioned error (-1 = True). Parameter 3 is supposed to be the name of the linked table, which in your case might be "Link to Rig Schedule" So the right syntax should be: DoCmd.TransferSpreadsheet acLink, 8, "Link to Rig Schedule", varFileName, True But if your Excel file is password-protected then this code will produce another error telling that the file couldn't be decrypted. As I read your code you are trying to solve this protection issue by opening the file via automation supplying the password. Problem is that this won't do any good to the DoCmd.TransferSpreadsheet because the TransferSpreadsheet method doesn't use the instance of the file you have just opened via automation. I don't think you can use DoCmd.TransferSpreadsheet at all create a link to a password protected Excel file. Maybe you could make the link by creating a new TableDef from your oWb and then appending it to the database's TableDefs collection. Asger -----Oprindelig meddelelse----- Fra: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] På vegne af Kaup, Chester Sendt: 21. september 2010 15:55 Til: Access Developers discussion and problem solving Emne: Re: [AccessD] Link to spreadsheet Code shows that the file exists. Changing dim on varFileName to String made no difference. Still getting the error The file '-1' does not exist -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Darryl Collins Sent: Monday, September 20, 2010 7:12 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Link to spreadsheet _______________________________________________________________________________________ Note: This e-mail is subject to the disclaimer contained at the bottom of this message. _______________________________________________________________________________________ Hi Chester, Maybe obvious, but the first thing I would check is that the path and file name is 100% correct. If you are on a LAN I would recommend you change the drive to a URL name rather than a drive letter. You can use a function to test if the file exists first before attempting to open if. If the function below returns true the file exists. I would suggest you test for the file first. If the function passes you can then start checking other options for the failure. varFileName = "F:\DATA\PUBLIC\Rig Schedule\Rig Schedule.xls" If CheckFileOrDirExists(varFileName) = True Then wb.open blah blah.. End If '=========================================================== Function CheckFileOrDirExists(PathName As String) As Boolean 'Macro Purpose: Function returns TRUE if the specified file ' or folder exists, false if not. 'PathName : Supports Windows mapped drives or UNC ' : Supports Macintosh paths 'File usage : Provide full file path and extension 'Folder usage : Provide full folder path ' Accepts with/without trailing "\" (Windows) ' Accepts with/without trailing ":" (Macintosh) Dim iTemp As Integer 'Ignore errors to allow for error evaluation On Error Resume Next iTemp = GetAttr(PathName) 'Check if error exists and set response appropriately Select Case Err.Number Case Is = 0 CheckFileOrDirExists = True Case Else CheckFileOrDirExists = False End Select 'Resume error checking On Error GoTo 0 End Function '=============================================================================== -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Kaup, Chester Sent: Tuesday, 21 September 2010 5:07 AM To: Access Developers discussion and problem solving Subject: [AccessD] Link to spreadsheet I am using the following code in an attempt to link to a password protected spreadsheet. I am running it from a terminal server instance of Access 2007 if that matters. I get the following error message. Could it have anything to do with the spreadsheet asking if I want to enable macros when I open it manually? The file '-1' does not exist Here is the code: Sub LinkSpreadsheet() On Error GoTo LinkSpreadsheet_Err Dim varFileName As Variant Dim strPassword As String Dim db As Database Dim oExcel As Object, oWb As Object Set oExcel = CreateObject("Excel.Application") DoCmd.SetWarnings False Set db = CurrentDb() strPassword = "rig" varFileName = "F:\DATA\PUBLIC\Rig Schedule\Rig Schedule.xls" Set oWb = oExcel.Workbooks.Open(FileName:=varFileName, ReadOnly:=True,_ Password:=strPassword, UpdateLinks:=0, IgnoreReadOnlyRecommended:=True) DoCmd.TransferSpreadsheet acLink, 8, varFileName, True oWb.Close SaveChanges:=False DoCmd.SetWarnings True LinkSpreadsheet_Exit: oExcel.Quit Set oExcel = Nothing Exit Sub LinkSpreadsheet_Err: MsgBox Error$ Resume LinkSpreadsheet_Exit End Sub Chester Kaup Engineering Technician Kinder Morgan CO2 Company, LLP Office (432) 688-3797 FAX (432) 688-3799 No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com _______________________________________________________________________________________ The information transmitted in this message and its attachments (if any) is intended only for the person or entity to which it is addressed. The message may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon this information, by persons or entities other than the intended recipient is prohibited. If you have received this in error, please contact the sender and delete this e-mail and associated material from any computer. The intended recipient of this e-mail may only use, reproduce, disclose or distribute the information contained in this e-mail and any attached files, with the permission of the sender. This message has been scanned for viruses. _______________________________________________________________________________________ -- 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