Solved

VSTO Excel 2007 Addin, Questions about MSQuery Connection

Posted on 2010-11-16
3
910 Views
Last Modified: 2013-11-10
I am trying to create an Excel 2007 Addin that works pretty much like a MSQuery Connection. I have code working where I can get data from a saved MSQuery conenction but when done manually it creates the data in a table. When done with just QueryTable.Add I get the data but no surrounding Table or ListObject. I have tried creating a ListObject but then don't know how to connect the ListObject to the MSQuery Connection. I'll take either direction.
oQueryTable = moToolsExcelActiveSheet.QueryTables.Add("FINDER;" & sDQYTempFileName, oTarget, sSQL)
oQueryTable.Name = "QT Name"
oQueryTable.MaintainConnection = False
oQueryTable.FieldNames = True
oQueryTable.RowNumbers = False
oQueryTable.FillAdjacentFormulas = False
oQueryTable.PreserveFormatting = True
oQueryTable.RefreshOnFileOpen = False
oQueryTable.BackgroundQuery = False
oQueryTable.RefreshStyle = Interop.Excel.XlCellInsertionMode.xlInsertDeleteCells
oQueryTable.SavePassword = True
oQueryTable.SaveData = True
oQueryTable.AdjustColumnWidth = True
oQueryTable.RefreshPeriod = 0
oQueryTable.PreserveColumnInfo = True
oQueryTable.CommandType = Interop.Excel.XlCmdType.xlCmdSql
oQueryTable.CommandText = sSQL 
oQueryTable.Refresh(BackgroundQuery:=False)
oQueryTable.WorkbookConnection.Name = "Test Connection"

Open in new window

0
Comment
Question by:cpv
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 85

Accepted Solution

by:
Rory Archibald earned 500 total points
ID: 34258435
I think you can just use Listobjects.Add and specify the SourceType as 0, the Source as your connection string, and the Destination. That should automatically create an associated querytable that you can then manipulate. In VBA terms:

With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=connection_string, Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdTable
        .CommandText = SQL_here
        .RowNumbers = False
' etc

Open in new window

0
 
LVL 24

Expert Comment

by:broomee9
ID: 34459689
This question has been classified as abandoned and is being closed as part of the Cleanup Program.  See my comment at the end of the question for more details.
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Excel can be a tricky bit of software to get your head around. Whilst you’ll be able to eventually get to grips with the basic understanding of how to get by, there are a few Excel tips that not everybody will even know about let alone know how to d…
How to get Spreadsheet Compare 2016 working with the 64 bit version of Office 2016
This Micro Tutorial demonstrates using Microsoft Excel pivot tables, how to reverse engineer competitors' marketing strategies through backlinks.
This Micro Tutorial will demonstrate in Microsoft Excel how to add style and sexy appeal to horizontal bar charts.

707 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