Solved

Export Access data to Excel using Access VBA

Posted on 2013-01-28
4
377 Views
Last Modified: 2013-01-28
Hi all.

I have the following code that exports my Access data to Excel. But I want to make some changes so instead of the data appearing in column A, B, C, D of row 1, I want it to appear as

Column A, row 1--"Contract Number" data
Column A, row 2--"Status" data
Column A, row 3--"Facility ID" data
Column A, row 4--"Facility Name" data

Any ideas?

Dim xlWb1 'Script for creating excel files
Dim xlWs1

    Set xlApp1 = CreateObject("Excel.Application")
    Set xlWb1 = xlApp1.Workbooks.Add
    Set xlWs1 = xlWb1.Worksheets("Sheet1")
    xlApp1.Visible = True
    xlApp1.UserControl = True
    xlApp1.DisplayAlerts = True
    Dim objCon1  As New ADODB.Connection
    Dim objRS1 As ADODB.Recordset
    Set objRS1 = New ADODB.Recordset
    Dim rsExcel1 As DAO.Recordset
    Set rsExcel1 = CurrentDb.OpenRecordset("Select tblContract_Header.Contract_ID,tblContract_Header.Status,  tblContract_Detail.Facility_ID,tblContract_Detail.Name  FROM tblContract_Header INNER JOIN tblContract_Detail ON tblContract_Header.Contract_Number = tblContract_Detail.Contract_Number where tblContract_Header.[Contract_Number] = " & Me.txtContract__Number)
    xlWs1.Cells.CopyFromRecordset rsExcel1
    xlWs1.Rows("1").Insert
    xlWs1.Cells(1).Value = "Contract Number"
    xlWs1.Cells(2).Value = "Status"
    xlWs1.Cells(3).Value = "Facility ID"
    xlWs1.Cells(4).Value = "Facility Name"
    

    xlApp1.Rows(1).Font.Bold = True
    xlWs1.UsedRange.Borders.LineStyle = 1
    xlApp1.Columns.AutoFit

    Set xlWs1 = Nothing
    Set xlWb1 = Nothing
    Set xlApp1 = Nothing 'End Excel

Open in new window

0
Comment
Question by:printmedia
  • 2
  • 2
4 Comments
 
LVL 120

Expert Comment

by:Rey Obrero (Capricorn1)
ID: 38827295
change this part

   xlWs1.Cells(1).Value = "Contract Number"
    xlWs1.Cells(2).Value = "Status"
    xlWs1.Cells(3).Value = "Facility ID"
    xlWs1.Cells(4).Value = "Facility Name"

with

   xlWs1.Cells(1,1).Value = "Contract Number"
    xlWs1.Cells(2,1).Value = "Status"
    xlWs1.Cells(3,1).Value = "Facility ID"
    xlWs1.Cells(4,1).Value = "Facility Name"



post sample excel file  result
0
 

Author Comment

by:printmedia
ID: 38827355
Thanks capricorn.

But that just makes the words "Contract Number", "Status", "Facility ID" and "Facility Name" appear in Column A, but the data is still placed on row 1 Column A, Column B, Column C and Column D.

I have attached a sample excel file of how it will need to appear.
Sample-Excel.xlsx
0
 
LVL 120

Accepted Solution

by:
Rey Obrero (Capricorn1) earned 500 total points
ID: 38827385
try this
Dim xlWb1 'Script for creating excel files
Dim xlWs1

    Set xlApp1 = CreateObject("Excel.Application")
    Set xlWb1 = xlApp1.Workbooks.Add
    Set xlWs1 = xlWb1.Worksheets("Sheet1")
    xlApp1.Visible = True
    xlApp1.UserControl = True
    xlApp1.DisplayAlerts = True
    Dim objCon1  As New ADODB.Connection
    Dim objRS1 As ADODB.Recordset
    Set objRS1 = New ADODB.Recordset
    Dim rsExcel1 As DAO.Recordset
    Set rsExcel1 = CurrentDb.OpenRecordset("Select tblContract_Header.Contract_ID,tblContract_Header.Status,  tblContract_Detail.Facility_ID,tblContract_Detail.Name  FROM tblContract_Header INNER JOIN tblContract_Detail ON tblContract_Header.Contract_Number = tblContract_Detail.Contract_Number where tblContract_Header.[Contract_Number] = " & Me.txtContract__Number)
   
   ' xlWs1.Cells.CopyFromRecordset rsExcel1
   
    xlWs1.Cells(1,1).Value = "Contract Number"
	xlWs1.Cells(1,2).Value =  rsExcel1("Contract Number")
    xlWs1.Cells(2,1).Value = "Status"
	 xlWs1.Cells(2,2).Value = rsExcel1("Status")
    xlWs1.Cells(3,1).Value = "Facility ID"
	 xlWs1.Cells(3,2).Value = rsExcel1("Facility ID")
    xlWs1.Cells(4,1).Value = "Facility Name"
	xlWs1.Cells(4,2).Value = rsExcel1("Facility Name")
    

    xlApp1.Rows(1).Font.Bold = True
    xlWs1.UsedRange.Borders.LineStyle = 1
    xlApp1.Columns.AutoFit

    Set xlWs1 = Nothing
    Set xlWb1 = Nothing
    Set xlApp1 = Nothing 'End Excel
                                  

Open in new window

0
 

Author Closing Comment

by:printmedia
ID: 38827416
Thanks!
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Introduction When developing Access applications, often we need to know whether an object exists.  This article presents a quick and reliable routine to determine if an object exists without that object being opened. If you wanted to inspect/ite…
Experts-Exchange is a great place to come for help with solutions for your database issues, and many problems are resolved within minutes of being posted.  Others take a little more time and effort and often providing a sample database is very helpf…
Familiarize people with the process of utilizing SQL Server stored procedures from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Micr…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question