Looking For Example Of Exporting Query Results To Excel Template
Jan 27, 2008
Hi all,
I'm not very experienced with Access. I'm looking for a very simple sample of how to export Query results to an Excel Template document. Especially to specific cell references. Would anyone have one to share. I'm trying to get my head around the concept first.
I may have to use Access 2000 and later versions to run the database, so do I have to cater for both DAO and ADO?
I am able to use DoCmd.TransferSpreadsheet to export data from Access to Excel, however, I want to be able transfer data into a specific sheet within an Excel template (e.g. Tasking.xls), that will then save under a different name (e.g. Tasking 20140429.xls). The other sheets within the Excel template contain pivots etc. so they will need updating during this process. The Excel template should just close down and remain in its original format.
This process will occur once a week so the dates will have to change accordingly.
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.
I just wanted to export the search results into excel files. I have googled about it and I found the VBA code for exporting, which didn't worked out for me.
I used Macros by referencing one of the tutorial and it looks fine. Does the usage of macros for exporting the data into excel is also the correct procedure?
I just wanted to know that am I on the right track?
I have a template csv file which has comes with headers. I now need to export multiple datas from my different tables into the csv file. I thought I would open an instance of excel, open the query as recordset (in VBA) and go through each record and finally use appExcel.saveAs as a CSV file. The approach doesnt look like it will look. I have looked into the DoCmd.Transfer text method but I cant seem to create a export specification because my query requires two parameters (startDate and endDate).
Secondly it is a huge template, over 700 fields and I will only be exporting around 40 fields so there will be huge number of empty fields. If this was a excel file, I would write few queries and write result from one query into the file then skip required columns and then write results from another query but I don't know if its possible with Docmd.write txt.
I am using access 2013 (Office 365 Pro) to perform all of this.
I created a form with lots of conditional formatting that did pretty much everything I wanted it to do. The only problem is that it takes about 4 full minutes for the form to open.
As an experiment I am reluctantly now trying to display the results in Excel. I have created a template xls sheet and all I want to do is, on the press of a button, copy the results from my query and paste them in to cell a1 of my spreadsheet.
I found the following code online which I am trying to adapt.
Code: Private Sub update_tracker_Click() Dim XL As Excel.Application Dim wbTarget As Workbook Dim qdfResults As QueryDef Dim rsResults As Recordset 'Set up refernce to the query to export
[Code] ....
My limited knowledge however results in a couple of errors.
The first error User defined type not defined error appears at the very first line of my code
Code: Dim XL As Excel.Application
The next error occurs as I am not sure how to reference the query to export. The query is called 2014 Resources and outputs also to a form called 2014 Resources.
What I want to do instead is open an existing .XLSM wokrbook delete or update the 7 sheets it creates and replace them with the new query results from access.
I love this code below because it works really well but now I have a new requirement. I have a workbook that has a "dashboard" sheet that looks at the sheets from acccess and summerizes the data. So, I'd like Access to open that "template" excel workbook and delete the old sheets and put in the new ones..The required sheets to keep are called "Metrics", "Validation" and "Mara"
What I was trying to do for the past few hours was another work around which was to have Access run this code, then excel run some code to import the "dashboard" formulas but I can't get it to copy to another workbook because it links to the OLD workbook..Here is the working code that needs modding:
Code:
Option Compare Database Public Function ExportAdvanced() Dim strWorksheet As String Dim strWorkSheetPath As String Dim appExcel As Excel.Application Dim sht As Excel.Worksheet Dim wkb As Excel.Workbook Dim Rng As Excel.Range Dim strTable As String Dim strRange As String Dim strSaveName As String Dim strPrompt As String Dim strTitle As String Dim strDefault As String
I searched the archive and didn't find quite what I was looking for, so..
I have an Excel 2003 spreadsheet work-in-progress being used as a template (developed by others) to prepare project cost estimates in a complex regulatory environment. We are 'modelling on the fly' for a number of projects until we are comfortable with the estimate model, after which time I intend to incorporate our 'stable' estimate methodology into Access. Meanwhile, I am 'stuck' with the Excel spreadsheet.
I have a project tracking database (Access 2003), and I want to be able to track my estimates. I do NOT want to embed my spreadsheets into the db, just a filelink. There can be more than 1 estimate per project.
Ideally, the user should be able to define a project in the Access db (or select one already defined) and click a 'make estimate' button, which would generate a new Excel file in a predefined directory (based on the present version of the .xlt file), give it an appropriate filename (based on the Access ProjectID and estimate sequence number for that project if there were others already), open up that workbook in Excel, and then autopopulate some cells based on information showing on the original form in Access!
A separate button for 'Open existing estimate' will eventually be required, but I think I could do that if I can get someone to walk me through the steps required above.
I am somewhat familiar with vba in Access, but am an absolute rookie when it comes to excel.
Edit: I left out that I would also add an appropriate record to a table like tblEstimate which would contain the link(s) to the estimate(s). This table will obviously contain a FK to tblProject
I've been searching for a good solution for this and can't find it. Hopefully something like this is possible.
I need to produce a report in excel from my database that needs to include information from 5 different tables. The relationship between two of these tables is a many-to-many relationship connected by a junction table. (I hope that is the right terminology)
My report needs to be in a certain format and needs to include all fields in the same order for every record.
The problem arises because of the many-to-many relationship. I have a tblOrder and a tblAgent linked by the junction table tblAgentOrder. For every order there can between 1 and four different agents associated with the order which are stored in the junction table. In addition these agents will be of different types 1-4.
Ex: One order could have an agent of type 1 and an agent of type 4. While another order may only have one agent of type 2.
I need the query to give me the result of OrderID, DateOpened, AgentType1, AgentType2, AgentType3, AgentType4. Regardless of if the order actually had an AgentType3 or 4 associated with it. In this case the fields would be blank.
Right now I'm getting: OrderID, DateOpened, AgentType1 OrderID, DateOpened, AgentType2
I hope this makes sense, but let me know if I need to clarify anything.
I have a form that allows users to specify the information they want to be displayed on a subform. I have used the below code (simpilified for example purposes) to create the SQL string and sent it to the subform for display. I would like to have an export to excel button to export the recordSource to a spredsheet. is this possible?
Hi all, when exporting a query to Excel is it possible to perform page set up controls to the Excel sheet? Or will I need to create VBA page set up controls with in a Set objXL = New Excel.Application??:confused: :confused: :confused:
The code works great, however, I will be making this available to several users who will use access from differenct PCs. In order for them to get the data passed to their respective desktops, they would have to change the Me.txtfilePath.Value in the properties manaually. This is currently in the Row.Source for an unbound text box. I would prefer them not messing with that. The current value is ="C:Documents and Settings’User_ID’Desktop" where the User_ID (varies from user to user) would need to be changed. Can this be done with a variable setting that would prompt the user for their User_ID and then execute to the appropriate desk top. I am a VBA novice and would appreciate any help at all.
I am using the DoCmd.TransferSpreadsheet statement that successfully exports a query result set into excel. I was wondering is there a way to get this result to populate certain fields of an existing excel spreadsheet that I have created and need the information for. Right now the query just creates a new worksheet in the specified workbook.
Did any one get a error message like the one below: “ Run-time error ‘3061’: Too few parameters. Expected 1. “ Basically I have a form with a command button and a combo box. The combo box's row source property is set to the following sql:
SELECT DISTINCTROW tblProjts1.intProjectID, tblProjts1.chrProjectName FROM tblProjts1 ORDER BY tblProjts1.chrProjectName;
I have a command button which runs the following procedure (Thanks, credit goes to madrav72): Private Sub cmdSendToExcel_Click() Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb
'Set rs = db.OpenRecordset("qryOne", dbOpenSnapshot) Set rs = db.OpenRecordset("qryTwo", dbOpenSnapshot)
'Start a new workbook in Excel Dim oApp As New Excel.Application Dim oBook As Excel.Workbook Dim oSheet As Excel.Worksheet
Set oBook = oApp.Workbooks.Add Set oSheet = oBook.Worksheets(1)
'Add the field names in row 1 Dim i As Integer Dim iNumCols As Integer iNumCols = rs.Fields.Count For i = 1 To iNumCols oSheet.Cells(1, i).Value = rs.Fields(i - 1).Name Next
'Add the data starting at cell A2 oSheet.Range("A2").CopyFromRecordset rs
'Format the header row as bold and autofit the columns With oSheet.Range("a1").Resize(1, iNumCols) .Font.Bold = True .EntireColumn.AutoFit End With
oApp.Visible = True oApp.UserControl = True
'Close the Database and Recordset rs.Close db.Close
End Sub qryOne: SELECT tblProjts1.intProjectId, tblProjts1.chrProjectName, tblProjts1.chrBlrPropNum, tblMaxLoad.* FROM tblProjts1 INNER JOIN tblMaxLoad ON tblProjts1.intProjectId = tblMaxLoad.intProjectId;
qryTwo: SELECT tblProjts1.intProjectId, tblProjts1.chrProjectName, tblProjts1.chrBlrPropNum, tblMaxLoad.* FROM tblProjts1 INNER JOIN tblMaxLoad ON tblProjts1.intProjectId=tblMaxLoad.intProjectId WHERE (((tblMaxLoad.intProjectId)=Forms!frmReprtSelen!cb oProj));
My problem: When I run cmdSendToExcel_Click procedure with “ Set rs = db.OpenRecordset("qryOne", dbOpenSnapshot) “ it loads the excel and export the data to Excel without any problem. The Excel spreadsheet will show the rows as follows: ProjtIdProjName Column3Column4 Column5, etc 8Bechtel xxxyyy 9WOPS aaabbb 11Spring zzzttt 12AgP mmmnnn
But when I run with Set rs = db.OpenRecordset("qryTwo", dbOpenSnapshot), I get the error “Run-time error ‘3061’: Too few parameters. Expected 1.”
I even tested the qryTwo using a separate command button with the following code on the click event: stDocName = "qryTwo" DoCmd.OpenQuery stDocName, acNormal, acEdit and it produces the single row based on the projectId selected on combo box (as shonw below in datasheet view): ProjtIdProjName Column3Column4 Column5, etc 8Bechtel xxxyyy
Does any one have any clue what this error 3061 is? Please help. I am struggling almost a week to figure this out, NO LUCK.
Hi, I have some queries in MS-Access, that I run twice every day. I store the query result in excel, with specific name and slot-code like HSC_25-Dec-04_S2.xls ( Exmple : High_Score_Customer_25-Dec-04_Slot-2) .
First few letters of the file name is static, but I want to select the Date, Slot_Code from the controls.
I have designed the form, 'CmdExport' is the command-button name, on clicking the button I need to export query result in MS-Excel.
I need help to proceed.
Can anyone guide me....................please help me...
Am trying to export an excel (97-03) file from a query I have. Some of the columns have exported as number values (as its linked via unique id's). I want it to export certain columns as the text columns. I have tried the lookup route but it doesn't seem to make a difference.
I wrote a SQL query that works fine. But when I call a custom function to export it to Excel, my query SQL will get deleted (not consistent). All that is left of the script is SELECT;
MS Access 2007, Windows 7.
Here's how I call the function:
Code: Private Sub exportQryCustStatusAnalysisLite_Click() Call ExcelSmsOutput("Query", "qry_custStatusAnalysisExport", "qry_custStatusAnalysisExport", Forms![frm_main].[filePath]) End Sub
Here's the custom function:
Code: Public Function ExcelSmsOutput(objectType As Variant, prefixFileName As Variant, objectName As Variant, filePath As Variant) Dim outputFileName As String outputFileName = prefixFileName & " " & Format(Now(), "yyyy-mm-dd hhh mmm sss")
What I am trying to do is EXPORT a query to an Excel Workbook which is read only and I need the data to land in a specific sheet in the excel workbook.
I have tried transferspreadsheet vbcode etc. but nothing works quite right and the fact the spreadsheet is Read Only does not work.
The Name of the Query is "Accrual"
The Name and location of the Excel Spreadsheet is "c:register.xls"
The Sheet inside the workbook is called "data".
I need the data to land in the "data" sheet over the top of the previous data and not create a new sheet or mess with the formulas that are linked to the "data" sheet.
I have always been wondering why this happens, and now I have a problem with it.
When I export a Table/Query from Access to Excel (be it with Right CLick -> Export...or TransferSpreadsheet) there is an apostrophe character (') appended to the front of some/each cell in Excel. You cannot see it immediately, but when you click on the cell, there is this character. WHY? Does anyone else have experience in this? :confused:
It works however I need a space between the date and the folder. But when I use "", it tells me path doesn't exist. get a space in the name when creating the folder.
I have got an existing query which is exported to excel through DoCmd.Transferspreadsheet. In simple terms the query looks like below:
Group | Client
Group1 Client1 Group1 Client2 Group1 Client3
Group2 Client4 Group2 Client5 Group2 Client6
etc.
As some of the groups contain large number of clients, I am trying to find the code to split groups by pre-specified number of clients and export to excel, as follows:
I a trying to search some product from a search button and two combo boxes text values ,and on serch the vba code is :
Code:
Private Sub Command4_Click() Dim db As DAO.Database Dim rs As DAO.Recordset Dim varRecords As Variant
[code]...
I just dont know,the fuile is created on click of button but with headers only,dtaa is not coming but wheni debug ,in immediate window,data is oming but just not coming in excel file.
I know Access can setup an Outlook Task to auto-export query to Excel, but it requires the Outlook to be always open on the user's computer.
Is there an easy way to setup a schedule that can automatically export a query to Excel and this schedule will then auto-email the exported Excel file to an email address every Monday at 5AM for example?
If this can only be done in VBA, any reference I may start with?