David McAfee
davidmcafee at gmail.com
Mon Mar 2 18:06:30 CST 2009
Got it working, for the archives: Private Sub RGAsOver90aysExp_Click() Dim strmySql As String, strOutPutFile As String, objXL As Object, row As Integer strmySql = "EXEC stpRptRGAsStep190Days" strOutPutFile = Me.Application.CurrentProject.Path & "\RGAsOver90Days.xls" DoCmd.OutputTo acOutputStoredProcedure, strmySql, acFormatXLS, strOutPutFile, False 'Now, format the sheet Set objXL = CreateObject("Excel.Application") With objXL.Application .Visible = True .Workbooks.Open strOutPutFile objXL.Cells.EntireColumn.AutoFit row = objXL.CountA(objXL.Worksheets("EXEC stpRptRGAsStep190Days").Range("A:A")) With objXL.Worksheets("EXEC stpRptRGAsStep190Days").Range(.Cells(1, 1), .Cells(row, 9)) 'LineStyle = 1 = xlContinuous .Borders(7).LineStyle = 1 'xlEdgeLeft .Borders(8).LineStyle = 1 'xlEdgeTop .Borders(9).LineStyle = 1 'xlEdgeBottom .Borders(10).LineStyle = 1 'xlEdgeRight .Borders(11).LineStyle = 1 'xlInsideVertical .Borders(12).LineStyle = 1 'xlInsideHorizontal End With End With Set objXL = Nothing End Sub On Mon, Mar 2, 2009 at 12:41 PM, David McAfee <davidmcafee at gmail.com> wrote: > I have a command button that exports an Stored Procedure as an Excel File: > > > Private Sub RGAsOver90aysExp_Click() > Dim strmySql As String, strOutPutFile As String > strmySql = "EXEC stpRptRGAsStep190Days" > strOutPutFile = Me.Application.CurrentProject.Path & "\RGAsOver90Days.xls" > DoCmd.OutputTo acOutputStoredProcedure, strmySql, acFormatXLS, > strOutPutFile, True > End Sub > > The export works great, but the columns aren't autosized, and has no grid. > > I created this Excel macro, which works if I manually create and run > it in the Excel file: > > Sub FormatSheet() > > Dim a As Range > 'Autofit all cells > Cells.Select > 'Range("E1").Activate > Cells.EntireColumn.AutoFit > 'Get to upper left corner of screen > Range("A1").Select > Set a = Selection.CurrentRegion > 'Go Down then Right then Select all > Selection.End(xlDown).Select > Selection.End(xlToRight).Select > Range(Selection, Cells(1)).Select > 'Add Grid > Selection.Borders(xlDiagonalDown).LineStyle = xlNone > Selection.Borders(xlDiagonalUp).LineStyle = xlNone > With Selection.Borders(xlEdgeLeft) > .LineStyle = xlContinuous > .Weight = xlThin > .ColorIndex = xlAutomatic > End With > With Selection.Borders(xlEdgeTop) > .LineStyle = xlContinuous > .Weight = xlThin > .ColorIndex = xlAutomatic > End With > With Selection.Borders(xlEdgeBottom) > .LineStyle = xlContinuous > .Weight = xlThin > .ColorIndex = xlAutomatic > End With > With Selection.Borders(xlEdgeRight) > .LineStyle = xlContinuous > .Weight = xlThin > .ColorIndex = xlAutomatic > End With > With Selection.Borders(xlInsideVertical) > .LineStyle = xlContinuous > .Weight = xlThin > .ColorIndex = xlAutomatic > End With > With Selection.Borders(xlInsideHorizontal) > .LineStyle = xlContinuous > .Weight = xlThin > .ColorIndex = xlAutomatic > End With > 'Deselect Cells > Range("A1").Select > Set a = Selection.CurrentRegion > > End Sub > > Can I create and run this macro from within my Access > RGAsOver90aysExp_Click() sub? Is there a better way to do what I am > trying to do? > > Thanks, David >