How to connect an Excel file to an Access Database - sql

I have created a query in an Access database and exported the query result into an Excel file. Now, I want to connect that Excel file to the Access database (or to that query) so that whenever some fields are updated in database, those changes would be automatically updated in the exported Excel file (report). What would be the best way to do it?
Thanks

You can create a link between Excel and an Access table or query by going to the Data tab on Excel and clicking the "From Access" icon.
Alternatively if there is a trigger inside access that you can use to update data (or if you don't need real time updates just hourly or daily ones), you could have access programmatically re-export.

If you want to work with data in Access, but still maintain the data in Excel, you need to link to the data rather than import it. Follow these steps:
Create a blank database or open an existing file in Access.
Select File, Get External Data, Link Tables.
Select Microsoft Excel as the file type.
Select a worksheet or named range to import, and then
click Next. You can import only one worksheet or named range at a
time, and each one will become an Access table.
In the next dialog box, select or deselect the check box First Row
Contains Column Headings, depending on whether your worksheet has
headings. Then click Next.
Enter a name for the table (or accept the default name that Access
suggests), click Finish, and click OK.
Now you have an Access table that looks almost exactly like the imported table. The advantage is that it maintains a live link to the Excel worksheet and can be edited in either application.

Related

convert text file to Excel sheet using SSDT

I have requirement where I need to convert text file to Excel Sheet using SSDT.
I have idea how to do like I
Step 1. have to upload data to sql server any table
and then Step 2. from Sql Server to Excel Spread sheet.
But I would like to do it in only one step that is Convert Directly from Text file to Excel Sheet without sending it to the table in Sql server using SSDT. Is there any way that I could do in one Step. Thank you in advance.
If i am understanding your question correctly, it is possible to use the import data wizard in SSMS to convert a text file to an excel file. You can save the wizard as an SSIS package also if you need to do the conversion programatically.
right click on any database in your server, hover over 'tasks' and select 'import data...'
in 'data source' drop down, select 'flat file source'. click next.
browse to the file you want to import. you can preview your flat file from here to make sure its rows and columns have been detected correctly. click next.
in 'destination' drop down, select 'microsoft excel'. browse to the destination folder and name your file. click next.
here you can rename columns and preview the end result. click next.
map your data types and determine if you want the package to fail if you encounter an error. click next.
here you can choose to save as an SSIS package or just run one time. you can now click through the rest depending on your choice to finish the sequence.
This is a very brief overview. for more detailed information, you can go here: https://learn.microsoft.com/en-us/sql/integration-services/import-export-data/import-and-export-data-with-the-sql-server-import-and-export-wizard?view=sql-server-2017
I hope this helps.

VBA to send a SQL string to a Tableau Connection

I have an excel work book that allows users to update multiple SQL statements at once based on data entered into cells.
Then the users copy the updated SQL and go into Tableau and paste it into the corresponding custom SQL data source in tableau and refresh it.
Is there a way to send the updated SQL code directly to the corresponding connection in Tableau?
If the table name is changing, that presents a challenge.
I have two suggestions.
Modify the twb xml.
A Tableau workbook file is simply an XML file. One part of the xml contains the connection information, including your custom SQL. VBA has some libraries for manipulating XML. You can write some custom VBA code to modify the XML that contains the custom SQL.
Use VBA to create/alter a view in teradata
Teradata allows database views. With VBA, you can connect to teradata and create/alter a view that changes based on your parameters from Excel. The key is to keep the view name constant, then Tableau will not need to be changed each time the underlying view definition is changed.
Of the two, my first choice would be the second option. It's cleaner and doesn't require distributing a new workbook file each time.

UNION ALL with Excel file as data source

I have got the following Problem.
I have several Excel files containing each the data of a country in one folder.
However I want to pull that all into one Excel report.
As the content of the source files change dayly, I guess the best way to do that is to do a import via an SQL Statement using Union All.
However the problem is that MSQuery only allows me to Access one file at a time. Is there a Workaround for that problem?
Maybe create a data model and use DAX?
This sounds like a job for Power Query, a free add-in from Microsoft for Excel 2010 and Excel 2013, and built into Excel 2016 as "Get and Transform" in the Data ribbon.
You can create individual queries to the different Excel files in the different folder, then create a query that appends all previous queries into one table, which can be loaded to the Excel data model or a worksheet table for further processing.
The queries can be refreshed with a click when the data has changed.

Programmatically Archive Access Backend Tables

I have an Access application that is now split into front end and back end databases. I would like the user to periodically archive the data from the back end tables to improve the database performance. What I have in mind is the following:
Create a new empty database file
Create empty copies of selected tables from original backend database
Insert data from original backend database to the new database tables with certain criteria, for example date range
Delete from original backend database tables the archived data
Can I achieve this programmatically so the user only needs to perform simple actions like clicking a button and input the data range?
I am using Access 2003 for my application.
Thanks in advance for the help.
Concerning your Boolean field, if it bothers you seeing the -1 and 0, just open the table in design view, select your Boolean field, then in the properties for 'Format', just either double-click to scroll thru the options or click the drop-down arrow to select the desired format.
It will then display as either 'True/False' or 'Yes/No' or 'On/Off'

How can I change where Query results go in Excel VBA?

I have created a Query in Excel using the wizard and can successfully manipulate the query itself from VBA, but now I want to change where the results are displayed among multiple sheets. Is there a "method" built in to manipulate this?
You can record a macro of what you just did to create the query and then change the parameters you want in VBA. It should just be a matter of first selecting the cell where you want the results to land (prior to executing the query) "Range("A1").Select".
Once you have this code if you are still having problems changing the "target cells", edit this question and add the code.
If you created a query in Excel using the wizard, then it most-likely created a new connection in the workbook. If so, go to the worksheet you want the data to appear on again, then go to the Data tab -> Get External Data group -> Existing Connections -> Double-click the connection -> choose your option for data delivery (Table, PivotTable, PivotTable and PivotChart).