Heenan, Lambert
Lambert.Heenan at AIG.com
Wed Jun 1 11:43:00 CDT 2005
Can't you just design a query that uses the column headings you want to
display?
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Mark Boyd
Sent: Wednesday, June 01, 2005 12:24 PM
To: Access Developers discussion and problem solving
Subject: RE: [AccessD] Excel Macro Automation from within Access
Thanks Lambert. I can't use DoCmd.TransferSpreadsheet b/c I need to send an
Access report to Excel, not a table or select query. I would use a query,
but I need to keep the report headings intact. The macro that runs
afterward formats the headings and columns appropriately.
Mark Boyd
I/S Supervisor
McBee Associates, Inc.
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert
Sent: Wednesday, June 01, 2005 12:09 PM
To: 'Access Developers discussion and problem solving'
Subject: RE: [AccessD] Excel Macro Automation from within Access
You cannot set the excel type with OutputTo, but with
DoCmd.TransferSpreadsheet you can.
Lambert
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Mark Boyd
Sent: Wednesday, June 01, 2005 11:53 AM
To: Access Developers discussion and problem solving
Subject: RE: [AccessD] Excel Macro Automation from within Access
Thanks to everyone who helped with this issue. I greatly appreciate it. The
only issue that I'm now having is the excel file seems to be created with
Excel 5.0/95. I'm using Office 2003, and the excel file is created with
("DoCmd.OutputTo acOutputReport, strXLName, acFormatXLS, "c:\" & strXLName &
".xls", False"). Why does Access create the file using a lower version of
Office than what is running on the client? Is there a way to specify the
Office version when exporting the file?
FYI - The macro automation function is below:
Function ExcelMacro(ByVal strFileName As String) On Error GoTo
Err_ExcelMacro
Dim xlApp As Excel.Application
Dim xlWkb As Excel.Workbook
If fIsAppRunning("Excel") Then
Set xlApp = GetObject(, "Excel.Application")
Else
Set xlApp = CreateObject("Excel.Application")
End If
xlApp.Application.Visible = True
Set xlWkb = xlApp.Workbooks.Open(strFileName, 0)
'run Excel macro code here
'...
'...
'end macro code
Exit_ExcelMacro:
On Error Resume Next
Set xlWkb = Nothing
Set xlApp = Nothing
Exit Function
Err_ExcelMacro:
Select Case Err
Case 0 'insert Errors you wish to ignore here
Resume Next
Case Else 'All other errors will trap
MsgBox Err.Number & " - " & Err.Description, vbCritical, "Error"
Resume Exit_ExcelMacro
End Select
End Function
Thanks again,
Mark Boyd
I/S Supervisor
McBee Associates, Inc.
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock
Sent: Thursday, May 26, 2005 5:22 AM
To: accessd at databaseadvisors.com
Subject: Re: [AccessD] Excel Macro Automation from within Access
Hi Mark
Here is how (as I learned from Mr. Colby).
It works very reliably:
Function RunExcelMacros( _
ByVal strFileName As String, _
ParamArray avarMacros()) As Boolean
Debug.Print "xl ini", Time
On Error GoTo Err_RunExcelMacros
Static xlApp As Excel.Application
Dim xlWkb As Excel.Workbook
Dim varMacro As Variant
Dim booSuccess As Boolean
Dim booTerminate As Boolean
If Len(strFileName) = 0 Then
' Excel shall be closed.
booTerminate = True
End If
If xlApp Is Nothing Then
If booTerminate = False Then
Set xlApp = New Excel.Application
End If
ElseIf booTerminate = True Then
xlApp.Quit
Set xlApp = Nothing
End If
If booTerminate = False Then
Set xlWkb = xlApp.Workbooks.Open(FileName:=strFileName,
UpdateLinks:=0, ReadOnly:=True)
' Make Excel visible (for troubleshooting only) or not.
xlApp.Visible = False 'True
For Each varMacro In avarMacros()
If Not Len(varMacro) = 0 Then
Debug.Print "xl run", Time, varMacro
booSuccess = xlApp.Run(varMacro)
End If
Next varMacro
Else
booSuccess = True
End If
RunExcelMacros = booSuccess
Exit_RunExcelMacros:
On Error Resume Next
If booTerminate = False Then
xlWkb.Close SaveChanges:=False
Set xlWkb = Nothing
End If
Debug.Print "xl end", Time
Exit Function
Err_RunExcelMacros:
Select Case Err
Case 0 'insert Errors you wish to ignore here
Resume Next
Case Else 'All other errors will trap
Beep
MsgBox "Error: " & Err & ". " & Err.Description, vbCritical +
vbOKOnly, "Error, macro " & varMacro
Resume Exit_RunExcelMacros
End Select
End Function
/gustav
>>> MarkBoyd at McBeeAssociates.com 05/25 11:28 pm >>>
I have a need to run Excel macro code from within Access VBA. Basically, the
code logic flows as follows: 1. Export Access report as a new Excel file
(DoCmd.OutputTo acOutputReport, strXLName, acFormatXLS, , True) 2. Run Excel
macro (from within Access VBA) to format the Excel file accordingly.
Does anyone have any sample code and/or resources related to this logic? Any
help is greatly appreciated.
Thanks,
Mark Boyd
I/S Supervisor
McBee Associates, Inc.
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com
-----------------------------------------
This message and any attachments are intended only for the use of the
individual or entity to which it is addressed and may contain information
that is privileged, confidential, and exempt from disclosure under
applicable law. If the reader of this message is not the intended recipient,
or the employee or agent responsible for delivering the message to the
intended recipient, you are hereby notified that any dissemination,
distribution or copying of this communication is strictly prohibited. If you
have received this communication in error, please notify the sender by
replying to this message, and then delete it from your system.
-------------------------------------------
--
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
-----------------------------------------
This message and any attachments are intended only for the use of the
individual or entity to which it is addressed and may contain information
that is privileged, confidential, and exempt from disclosure under
applicable law. If the reader of this message is not the intended recipient,
or the employee or agent responsible for delivering the message to the
intended recipient, you are hereby notified that any dissemination,
distribution or copying of this communication is strictly prohibited. If you
have received this communication in error, please notify the sender by
replying to this message, and then delete it from your system.
-------------------------------------------
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com