Modules & VBA :: Opening Excel File Errors Second Time
May 13, 2014
I have the following code, which works the way I want it to when I click the button the first time. However, if I close out the excel and click the button again, it errors at the line "ActiveWorkbook.Worksheets("Ref").UnProtect", with the message "Run-time error '91', Object variable or With block variable not set". I can not figure this out, why in the world does it work the first time, but not the second???
Private Sub cmdReport_Click()
Dim path As String
Dim XL As Object
Dim oBook As Excel.Workbook
Dim pic As Excel.Shape
Set XL = CreateObject("Excel.Application")
Question: Is it possible, using VBA, to determine the actual Excel file type without opening the file?
I receive data files from other departments. Seems like every time someone changes their download structure, I end up with file types that do not match the download extension (example: xlm file with a xls extension). The files can't even be opened because of this. I think I can fix it if I could figure out how to determine what the file type really is.
I am trying to program a button on my ms access form to open up an excel file.. So far the simplest code ive found online was from URL....
<code>
Private Sub Command57_Click() Dim xlTmp As Excel.Application Set xlTmp = New Excel.Application xlTmp.Workbooks.Open "C:Excel1.xls" xlTmp.Visible = True
[code]...
However the code doesn't work, any way to open a file from within access?
I have a macro in access that will create a folder and create a word doc in the folder with the name of the folder. I would like to add to the same folder an excel file. The excel file is in a folder and needs to be copied every time in a new folder when created. where to add the excel file from the below folder:
C:Excel CopyCombine_PDF.xls
this is the macro:
Code:
Private Sub Command22_Click() 'this will register the letter and create folder, word doc and open all Me.[DateRegistered] = Date Me.[PersonRegister] = Environ("Username") Me.Refresh
Hi guys, this might be a quickie, I did a quick search but couldn't find anything :/
Basically my database creates a table which some people would rather analyse within excel because they're not comfortable with access. I can get the table exporting to an xls file no problem, howeevr what I would like is for the database to export the file and open the file in excel at the same time so the user doesn't need to open up excel and find the file etc...
Hi All, I have three excel files (ActualHires.xls, ActualPromotions.xls and ActualSeparation.xls). These are password protected files (with the same password). They are linked to an access database and whenever the files are opened, one must supply the password and click the 'Enable automatic refresh button.' What I was wondering was if this could be done in access with a command button. I have pasted some code below that I found but now I'm getting an error. This is the code:
For B = LBound(BookNames) To UBound(BookNames) WorkBooks.Open FileName:=BookNames(B), _ UpdateLinks:=3, Password:="*******" WorkBooks(B).Close SaveChanges:=False Next B
But when I click the button, I get this error: Run-time error '9' Subscript out of range.
and this line is highlighted: WorkBooks(B).Close SaveChanges:=False
A few of my users are getting the error "The Microsoft Jet database engine could not find the object 'MSysDB'. Make sure the object exists and that you spell its name and path name correctly."
The access version is 2002, but at the top it says "(Access 2000 format)".
I don't get this error, it is only on two of 8 computers that the error occurs.
So each combination has an ID. It's called the SuWID. I want to Transfer the data to a fixed Excel sheet. I wrote the following code
Dim xlApp As Object ' Excel.Application Dim xlBook As Object ' Excel.Workbook Dim xlSheet As Object ' Excel.Worksheet Dim rst As DAO.Recordset Set xlApp = CreateObject("Excel.Application") xlApp.Visible = True
[Code] ....
The only Thing what i still want to have is that, before it opens the Excel form, which works already perfectly well, that a msgbox will Show up and ask me, which SuWID do you want to see in the Excel sheet.
I want to open files from a networklocation from VBA, only normal users don't have access to that location (and should preferably not get it).
I instead of using shell("explorer.exe filepath") to open files using windows standard app for the file, which needs userpermissions to the path the file is located, for the currently logged in user.
I'm trying to use CPAU in combination with Shell, because using CPAU you can pass a user/password that has permission to open a process
The only problem is that the filepaths have spaces in them and that is Always a bit of a tricky thing to tackle.
The last command start explorer, but doesn't open the file (just as the first line I posted, it opens Explorer, but not the file. Must be something with the way I pass the filename?)
When creating an incoming inspection database, I want to set it up so when I am in a form to add data, I want to have a command button where I can pull up the associated CAD drawing based on part number and drawing number. I would like to enter the directory location into a table so I could change it if I need to.
I would need removing the lines from an .xls file(stored in shared folder) and saving the same. I used the below code and not successful in removing and saving the file stored in the shared area..When I execute the code, Cursor hangs at this line
Set objWB = objXL.Workbooks.Open(filename)
Code:
Set objXL = CreateObject("Excel.Application") Set objWB = objXL.Workbooks.Open(filename) Set objWS = objWB.Worksheets("Sheet1") objWS.Rows("1:6").Delete
Using Access 2007, can I return a value for CurrentProject.FileFormat WITHOUT opening the database?
I'm looking for a way to determine the file version of a given Access database without actually "opening" the database in Access (I don't want it to ever be visible at all or in any way).
So to open a database in Access 2007 "without opening it," I'm using:
Code: Dim db As DAO.Database Set db = DBEngine.Workspaces(0).OpenDatabase("C:Path-ToFile.accdb")
From here, there are at least two different "version" indicators that can be used, as in this example:
Now, if you run this code on an Access 2002/2003 .MDB file, you will get:
Code: 4.0 09.50
If you run this code on an Access 2007 .ACCDB file, you get:
Code: 12.0 09.50
Note two important factors:The db.Properties("Version") seems to be returning the JET version from what I can see in research. This is NOT what I'm after.
The db.Properties("AccessVersion") returns THE SAME VALUE for an '07 ACCDB as it does for an '02-'03 MDB, since Microsoft never updated it, apparently.
Now.... the one way that I have found that ACCURATELY describes the version of a given access database file is to use:
Code: Debug.Print CurrentProject.FileFormat
...as this will always return, for example, 2.0 for an Access 2.0 .MDB file; 10 for an Access 2002/03 .MDB file; and 12 for and Access 2007 .ACCDB file (and there are others; these are AcFileFormat bitmask constants as described in Access support).
BUT, this CurrentProject object doesn't seem to be available (so far as I can see) when using the "open without opening" method described above.
SO, is there any way to return the FileFormat value without opening the database visibly? (Merely basing it in the extension isn't right either.... that would be easy but not accurate as several formats use MDB.
I have a database that I converted to an .mde and I then distributed it using the 2003 Developers Extension Tools Packaging Wizard. So it is being accessed using a runtime version of Access 2003. On one of the reports, I am concatenating two fields, [LastName] and [FirstName], from the underlying query. When the end user tries to preview the report, #error# shows up where the concatenated field is. When I view it using a full version of Access, the field shows as it should. Can anyone give me some direction as to how to fix this problem? Thanks.
i have a form and i want to export it to excel file the form will be updated someties and the data will be changed here is my code, but there is a problem with it
Code:
Private Sub Command0_Click() Dim xlApp As Object Dim xlBook As Object Dim rs As ADODB.Recordset Dim sql As String Dim i As Integer Dim Conn1 As ADODB.Connection Dim Cmd1 As ADODB.Command
I'm writing to an excel file from two separate Access tables, for which I'm using two separate DAO.Recordsets in VBA.The first table has 190 columns, the second table has more than 66 columns, so more than 256 columns will be written to the excel file.So I'm not expecting any error due to any maximum of 256 columns, but still I'm getting an error while trying to populate the 257th excel-column:
Run-time error '1004': Application-defined or object-defined error.(The same VBA works fine when I use another table with less columns.)Even more strange: on another computer I did not get the error and I was able to populate more than 256 excel-columns.
Code:
Option Compare Database Option Explicit Dim xlApp As Excel.Application Dim xlWkb As Excel.Workbook Dim xlWks As Excel.Worksheet Dim FileNameOut As String Dim RowNr As Long Dim ColNr As Long
I want to save NOW() (i.e. Date and time) into an event log file. But I just cannot work out the syntax. My insert statement works fine without the date field in, but fails on a syntax error (3134) when I include it.
All I need to do is copy an excel file from a location (while coping the file, the location of the source file remains same all the time)and paste that excel file where ever I want (Browser Option) from an Access VBA.
Any definitive way of exporting a query to an Excel file and then saving it as a new file without saving over the original.
I've tried to remove any confidential info from the code below so it's not exactly the same.
Code: Dim XLApp As Excel.Application Dim XLSheet As Excel.Worksheet Dim tmpRS As DAO.Recordset Dim strFolder as String strFolder = ("C:Profiles"& [Name] & "")
[Code] ....
The error seems to be with the SQL statement although that may just be the first error that it got to. I read that you can't refer to a Query if it has a criteria and that you have to write the SQL directly into the code.
Some vba code which is able to get the last updated or last modified value of an excel file stored in a folder in a shared drive and update a field on a form in ms access.
I'm spinning my wheels on this. Trying to copy a recordset into an existing excel file.
Private Sub cmdExport_Click()
Dim conn As ADODB.Connection Dim conn2 As ADODB.Connection Dim rst As New ADODB.Recordset Dim strSQL As String Dim strConnection2 As String Dim wks As Excel.Worksheet
I am writing code to Refresh table links. I only want to refresh the Access table links and ignore the Excel Table links. Is there a way to determine in VBA if the table link is pointing to an Excel file?
I have the following code. In the Else part of the code, after the wb.Activate line, what code can I place here that will assign wb.Name to the objExcelApp object ao that when the line .Visible = False kicks in, it will make the already opened MS Excel file invisible.
Code: Dim strExcelFile As String Dim wb As Workbook Set objExcelApp = GetObject(, "Excel.Application") If objExcelApp Is Nothing Then Set objExcelApp = CreateObject("Excel.Application") objExcelApp.Workbooks.Open FileName:=strExcelFile
i want to make an excel file from a query and then export it to mail. i want to make an excel and then send it as an attachhment. also i want to insert the mail address to manually because each time it is sent to a different person.