I am able to query and view table through excel, but I was wondering if there is a way to directly update or insert by modifying data in the excel.
Similar to Microsoft Access Linked table, maybe?
You can use VBA, ADODB, and the data driver to write a custom application to do this. But there is nothing built in to Excel for writing back to an ODBC data source. QueryTables in Excel are read-only.
Related
I need to download this table in Excel
https://infogram.com/a-energy-suppliers-hedging-table-1hdw2jpg7n8xj2l
via Power Query and make an automatic update connection. But for some reason it does not work because it does not recognize the table as such. I do not know why any suggestion?
Thx
I have installed Powerpivot for Excel 2010. I don't have Access 2010 so I thought could I arrange the data in the similar manner as I would for a database.
I'm wanting to query an excel file that has rows of self-generated data into Powerpivot in order to perform simple pivot table. In a sense attempt to get an overview of information about a data set.
At the moment, I'm unable to get set up correctly the ODBC I'm hoping I need to accept an Excel file and to get PowerPivot to accept a database from an Excel file.
Edit: I come to understand that I need to set up a table correctly in Excel so that the ODBC works correctly. Does the picture I provided be right manner to set up a table or any other manner?
Has anyone attempted to do this and if so what would the steps be?
Thanks,
Peter.
Peter, I am working on the basis that your data is in a recognizable table on a worksheet (and that you are not interested in using the standard Excel import method through 'From Other Sources')
If you create the connection to the Excel file in a very particular way it is possible to then query it as if it were a database.
Create a Connection to the spreadsheet in question in Excel through Data>Connections>Add.
In the PowerPivot window on the Design tab click on existing connections and find the connection you just created. Select the connection and Open.
You need to name the connection and then you will be offered the normal import options. Select the sheet you want to get the table from (its actually not important which one you choose at this point).
Once the table has been imported you can re-enter the setup through the 'table properties' on the design tab and you will now be able to 'Switch to' the query editor at which point you can not only write SQL to query your DB but reference any other .xlsx you like.
Jacob
the easiest way is to use a linked table from the excel sheet which has the data - is there any reason why you have not considered this as an option?
I would like to have VBA generate some data for an Excel Pivot table. VBA will then recalulate the data and the pivot will update based on that.
Question: Is it possible to have VBA be a direct data source for the pivot or do I need to write down in a file from VBA and have the pitot refresh itself from there?
The direct data source gives me the advantage that I can create multi-dimensional data and not only a 2D matrix.
I can see I can choose a lot of data sources and I could write some data in one of these formats from VBA.
So for example I could choose to generate an xml file from VBA, and then have a pivot table use that xml file as its source. I guess it would be a bad idea to emulate the OLAP cubes from the SQL Server in VBA!
Damian
For OLAP cubes, the Microsoft Excel is a very good viewer, but if you have access to Analysis Server tool, you will prefer use it.
But, Excel can connect to SQL Server by itself. Have you tried? It is in Data menu.
I have a few thousand rows of history data that I want Excel to access. This data will be used in creating a summary report, sparklines, and a table data.
My question is how should I go about adding new rows to the datasource? Powershell is required to extract data from the source (Exchange Server)... but then how do I surface that extracted data to Excel2010?
Here are my ideas:
1) Powershell can run externally and save the data to the XLSX (as long as the spreadsheet is closed) using Open XML libraries
2) Use Excel vb macros to call COM via interop (C# object) to get the data from Powershell. The returned values go to the XLSX (Ugly)
3) ????
(Advanced, not sure if this idea will work with above mentioned features)
If I were to move these rows to an external sheet, or SQL table, then I'd rather use other ways of importing the data into excel. I dont' know if this will work with sparklines, or tables. Perhaps I could use OData since it appears to be the most lightweight and firewall friendly.
If you have the external data in SQL Server, Access or another Excel file, it's trivial to access it using Data>Connections. The data will automatically be formatted as an Excel table with all of Excel's features available.
Excel has a Get External Data ribbon bar in the Data tab where we can choose to import tables from SQL databases. This process worked out nicely for me. But my question is, is there any way to save this data back into SQL? Does Excel provide some API that facilitates the coding of such a function without parsing everything and doing it from scratch?
Thanks
It may not be the solution you are looking for, but I posted some VBA code a long while back that will take a range in Excel and convert it to XML and builds the SQL to put that data into a temp table in SQL Server. Here's a link if you are interested.
The easiest way to do this is to use the import function within SSMS. You can select which sheets to use, customise column mappings and so on. If creates an SSIS that you can then manipulate further if required. However that approach is a pull from Sql, not a push from Excel, if you want to do that you'd have to code some VBA to do it for you.
Non-programmatically:
http://office.microsoft.com/en-us/excel-help/connect-to-import-sql-server-data-HA010217956.aspx
Programmatically - I can only think of the OpenRowSet function in MSSQL:
http://www.mssqltips.com/tip.asp?tip=1540
http://www.sql-server-helper.com/tips/read-import-excel-file-p01.aspx
Using openrowset to read an Excel file into a temp table; how do I reference that table?