Execute sql complex query through excel vbaIs there a way to crack the password on an Excel VBA Project?excel vba: pausing for parameterized SQL queries to complete?Excel 2010 freezes when executing SQL statement through macroHow to avoid using Select in Excel VBAExcel ADODB Sql Query Execution taking hours when manipulate excel tablesPopulate Excel userform listbox with query data - listbox is blankVBA-SQL UPDATE/INSERT/SELECT to/from Excel worksheetVBA Web Scrape into Excel without IE openExecute SQL job based on excel or text file messagePower Query to Filter a SQL view based on an Excel column list

Biblical Basis for 400 years of silence between old and new testament

What is the difference between nullifying your vote and not going to vote at all?

Preserving culinary oils

If Sweden was to magically float away, at what altitude would it be visible from the southern hemisphere?

chmod would set file permission to 000 no matter what permission i try to set

Rotated Position of Integers

Is the world in Game of Thrones spherical or flat?

Modern approach to radio buttons

How do I subvert the tropes of a train heist?

Could IPv6 make NAT / port numbers redundant?

How to detach yourself from a character you're going to kill?

Adding strings in lists together

What are the benefits of cryosleep?

Is there an evolutionary advantage to having two heads?

Why do Russians call their women expensive ("дорогая")?

Can't connect to Internet in bash using Mac OS

Intuition behind eigenvalues of an adjacency matrix

What caused the tendency for conservatives to not support climate change regulations?

Is a hash a zero-knowledge proof?

Where did the “vikings wear helmets with horn” stereotype come from and why?

Is it possible to change original filename of an exe?

Why would Lupin kill Pettigrew?

Uncommanded roll at high speed

Is having a hidden directory under /etc safe?



Execute sql complex query through excel vba


Is there a way to crack the password on an Excel VBA Project?excel vba: pausing for parameterized SQL queries to complete?Excel 2010 freezes when executing SQL statement through macroHow to avoid using Select in Excel VBAExcel ADODB Sql Query Execution taking hours when manipulate excel tablesPopulate Excel userform listbox with query data - listbox is blankVBA-SQL UPDATE/INSERT/SELECT to/from Excel worksheetVBA Web Scrape into Excel without IE openExecute SQL job based on excel or text file messagePower Query to Filter a SQL view based on an Excel column list






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








0















Just to give you background of my work, i have to fetch data from MS Sql on daily basis and for that every time have to go to other server to run the query. Once the query is executed, have to paste into my common drive, which takes a lot time. ~55 mins to paste 5,00,000 row & 30 fields to common or to move file. In total 2 hours for execution & movement from one location to other.



To reduce this i would need your help to use the SQL queries through excel with the below things:



If possible,



Point1: Query will be stored in the text file in the common location
Point2: Query Parameter to be populate to get
Or
Point2:Range to be defined for parameter



If not possible above,



Query will be pasted into the code and parameter to be populated based on the above mentioned suggestion.



Connection type is windows authentication, it will work based on logged in users windows name.










share|improve this question
























  • Sorry, wasn't sure what you meant by MS Sql. If you are on about SQL Server, you can write stored procedures where you pass in arguments and then it executes a query or set of queries for you and returns some results. You could probably automate the task so that you hit a button, it connects to the database and then populates a file, however I have some concerns. 1) VBA isn't going to be the quickest language, 2) I am not sure what you are trying to do, but 500,000 rows seems like a lot of data to transfer. Could you perform the calculations in the SQL using things like Sum, Count etc.

    – MarkyMark1000
    Mar 24 at 15:57

















0















Just to give you background of my work, i have to fetch data from MS Sql on daily basis and for that every time have to go to other server to run the query. Once the query is executed, have to paste into my common drive, which takes a lot time. ~55 mins to paste 5,00,000 row & 30 fields to common or to move file. In total 2 hours for execution & movement from one location to other.



To reduce this i would need your help to use the SQL queries through excel with the below things:



If possible,



Point1: Query will be stored in the text file in the common location
Point2: Query Parameter to be populate to get
Or
Point2:Range to be defined for parameter



If not possible above,



Query will be pasted into the code and parameter to be populated based on the above mentioned suggestion.



Connection type is windows authentication, it will work based on logged in users windows name.










share|improve this question
























  • Sorry, wasn't sure what you meant by MS Sql. If you are on about SQL Server, you can write stored procedures where you pass in arguments and then it executes a query or set of queries for you and returns some results. You could probably automate the task so that you hit a button, it connects to the database and then populates a file, however I have some concerns. 1) VBA isn't going to be the quickest language, 2) I am not sure what you are trying to do, but 500,000 rows seems like a lot of data to transfer. Could you perform the calculations in the SQL using things like Sum, Count etc.

    – MarkyMark1000
    Mar 24 at 15:57













0












0








0








Just to give you background of my work, i have to fetch data from MS Sql on daily basis and for that every time have to go to other server to run the query. Once the query is executed, have to paste into my common drive, which takes a lot time. ~55 mins to paste 5,00,000 row & 30 fields to common or to move file. In total 2 hours for execution & movement from one location to other.



To reduce this i would need your help to use the SQL queries through excel with the below things:



If possible,



Point1: Query will be stored in the text file in the common location
Point2: Query Parameter to be populate to get
Or
Point2:Range to be defined for parameter



If not possible above,



Query will be pasted into the code and parameter to be populated based on the above mentioned suggestion.



Connection type is windows authentication, it will work based on logged in users windows name.










share|improve this question
















Just to give you background of my work, i have to fetch data from MS Sql on daily basis and for that every time have to go to other server to run the query. Once the query is executed, have to paste into my common drive, which takes a lot time. ~55 mins to paste 5,00,000 row & 30 fields to common or to move file. In total 2 hours for execution & movement from one location to other.



To reduce this i would need your help to use the SQL queries through excel with the below things:



If possible,



Point1: Query will be stored in the text file in the common location
Point2: Query Parameter to be populate to get
Or
Point2:Range to be defined for parameter



If not possible above,



Query will be pasted into the code and parameter to be populated based on the above mentioned suggestion.



Connection type is windows authentication, it will work based on logged in users windows name.







excel vba






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 25 at 7:26









Pᴇʜ

27.3k63052




27.3k63052










asked Mar 24 at 9:42









user10708975user10708975

11




11












  • Sorry, wasn't sure what you meant by MS Sql. If you are on about SQL Server, you can write stored procedures where you pass in arguments and then it executes a query or set of queries for you and returns some results. You could probably automate the task so that you hit a button, it connects to the database and then populates a file, however I have some concerns. 1) VBA isn't going to be the quickest language, 2) I am not sure what you are trying to do, but 500,000 rows seems like a lot of data to transfer. Could you perform the calculations in the SQL using things like Sum, Count etc.

    – MarkyMark1000
    Mar 24 at 15:57

















  • Sorry, wasn't sure what you meant by MS Sql. If you are on about SQL Server, you can write stored procedures where you pass in arguments and then it executes a query or set of queries for you and returns some results. You could probably automate the task so that you hit a button, it connects to the database and then populates a file, however I have some concerns. 1) VBA isn't going to be the quickest language, 2) I am not sure what you are trying to do, but 500,000 rows seems like a lot of data to transfer. Could you perform the calculations in the SQL using things like Sum, Count etc.

    – MarkyMark1000
    Mar 24 at 15:57
















Sorry, wasn't sure what you meant by MS Sql. If you are on about SQL Server, you can write stored procedures where you pass in arguments and then it executes a query or set of queries for you and returns some results. You could probably automate the task so that you hit a button, it connects to the database and then populates a file, however I have some concerns. 1) VBA isn't going to be the quickest language, 2) I am not sure what you are trying to do, but 500,000 rows seems like a lot of data to transfer. Could you perform the calculations in the SQL using things like Sum, Count etc.

– MarkyMark1000
Mar 24 at 15:57





Sorry, wasn't sure what you meant by MS Sql. If you are on about SQL Server, you can write stored procedures where you pass in arguments and then it executes a query or set of queries for you and returns some results. You could probably automate the task so that you hit a button, it connects to the database and then populates a file, however I have some concerns. 1) VBA isn't going to be the quickest language, 2) I am not sure what you are trying to do, but 500,000 rows seems like a lot of data to transfer. Could you perform the calculations in the SQL using things like Sum, Count etc.

– MarkyMark1000
Mar 24 at 15:57












1 Answer
1






active

oldest

votes


















-1















This code will allow you to provide variables that you use within your SQL statement and put those into cells on a spreadsheet (In this case Cred2) and return the results on a separate sheet (Sheet2).




The first portion of the code establishes a connection with the SQL server.



The column Headers will be started in Row 2 and then the data will begin populating starting on row 3. I have used this to pull well over 100,000 records at a time and this works very quickly.



Private Sub CommandButton1_Click()

Dim cn As Object
Dim rs As Object
Dim strCon As String
Dim strSQL As String


strCon = "DRIVER=SQL Server;SERVER=ServerName;DATABASE=DBName;Trusted_Connection=True"
Set cn = CreateObject("ADODB.Connection")
cn.Open strCon

' if not a trusted connection you could replace top line of strCon with
strCon = "DRIVER=SQL Server; Server=myServerAddress;Database=myDataBase;User Id=myUsername; Password=myPassword"



' set up where you are getting your variables to include in the SQL statement

stat = Sheets("Cred2").Range("c7").Value
barg = Sheets("Cred2").Range("c10").Value
worksite = Sheets("Cred2").Range("c11").Value


' Construct SQL statement

strSQL = "select * " _
& " FROM tableName A , table2 B " _
& "WHERE A.[field1] = B.[field1] " _
& " and field1 like '" & stat & "'" _
& "and field2 like '" & barg & "'" _
& "and field3 like '" & worksite & "'" _
& " order by Field? "

' Build Record Set

Set rs = CreateObject("ADODB.RECORDSET")
rs.ActiveConnection = cn
rs.Open strSQL


' Display Data

For intColIndex = 0 To rs.Fields.Count - 1
Sheet2.Range("A2").Offset(0, intColIndex).Value = rs.Fields(intColIndex).name
Next


Sheet2.Range("A3").CopyFromRecordset rs

' Close Database
rs.Close
cn.Close
Set cn = Nothing

end sub





share|improve this answer

























  • While this code may solve the question, including an explanation of how and why this solves the problem would really help to improve the quality of your post, and probably result in more up-votes. Remember that you are answering the question for readers in the future, not just the person asking now. Please edit your answer to add explanations and give an indication of what limitations and assumptions apply.

    – Busti
    Mar 25 at 16:51











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55322461%2fexecute-sql-complex-query-through-excel-vba%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









-1















This code will allow you to provide variables that you use within your SQL statement and put those into cells on a spreadsheet (In this case Cred2) and return the results on a separate sheet (Sheet2).




The first portion of the code establishes a connection with the SQL server.



The column Headers will be started in Row 2 and then the data will begin populating starting on row 3. I have used this to pull well over 100,000 records at a time and this works very quickly.



Private Sub CommandButton1_Click()

Dim cn As Object
Dim rs As Object
Dim strCon As String
Dim strSQL As String


strCon = "DRIVER=SQL Server;SERVER=ServerName;DATABASE=DBName;Trusted_Connection=True"
Set cn = CreateObject("ADODB.Connection")
cn.Open strCon

' if not a trusted connection you could replace top line of strCon with
strCon = "DRIVER=SQL Server; Server=myServerAddress;Database=myDataBase;User Id=myUsername; Password=myPassword"



' set up where you are getting your variables to include in the SQL statement

stat = Sheets("Cred2").Range("c7").Value
barg = Sheets("Cred2").Range("c10").Value
worksite = Sheets("Cred2").Range("c11").Value


' Construct SQL statement

strSQL = "select * " _
& " FROM tableName A , table2 B " _
& "WHERE A.[field1] = B.[field1] " _
& " and field1 like '" & stat & "'" _
& "and field2 like '" & barg & "'" _
& "and field3 like '" & worksite & "'" _
& " order by Field? "

' Build Record Set

Set rs = CreateObject("ADODB.RECORDSET")
rs.ActiveConnection = cn
rs.Open strSQL


' Display Data

For intColIndex = 0 To rs.Fields.Count - 1
Sheet2.Range("A2").Offset(0, intColIndex).Value = rs.Fields(intColIndex).name
Next


Sheet2.Range("A3").CopyFromRecordset rs

' Close Database
rs.Close
cn.Close
Set cn = Nothing

end sub





share|improve this answer

























  • While this code may solve the question, including an explanation of how and why this solves the problem would really help to improve the quality of your post, and probably result in more up-votes. Remember that you are answering the question for readers in the future, not just the person asking now. Please edit your answer to add explanations and give an indication of what limitations and assumptions apply.

    – Busti
    Mar 25 at 16:51















-1















This code will allow you to provide variables that you use within your SQL statement and put those into cells on a spreadsheet (In this case Cred2) and return the results on a separate sheet (Sheet2).




The first portion of the code establishes a connection with the SQL server.



The column Headers will be started in Row 2 and then the data will begin populating starting on row 3. I have used this to pull well over 100,000 records at a time and this works very quickly.



Private Sub CommandButton1_Click()

Dim cn As Object
Dim rs As Object
Dim strCon As String
Dim strSQL As String


strCon = "DRIVER=SQL Server;SERVER=ServerName;DATABASE=DBName;Trusted_Connection=True"
Set cn = CreateObject("ADODB.Connection")
cn.Open strCon

' if not a trusted connection you could replace top line of strCon with
strCon = "DRIVER=SQL Server; Server=myServerAddress;Database=myDataBase;User Id=myUsername; Password=myPassword"



' set up where you are getting your variables to include in the SQL statement

stat = Sheets("Cred2").Range("c7").Value
barg = Sheets("Cred2").Range("c10").Value
worksite = Sheets("Cred2").Range("c11").Value


' Construct SQL statement

strSQL = "select * " _
& " FROM tableName A , table2 B " _
& "WHERE A.[field1] = B.[field1] " _
& " and field1 like '" & stat & "'" _
& "and field2 like '" & barg & "'" _
& "and field3 like '" & worksite & "'" _
& " order by Field? "

' Build Record Set

Set rs = CreateObject("ADODB.RECORDSET")
rs.ActiveConnection = cn
rs.Open strSQL


' Display Data

For intColIndex = 0 To rs.Fields.Count - 1
Sheet2.Range("A2").Offset(0, intColIndex).Value = rs.Fields(intColIndex).name
Next


Sheet2.Range("A3").CopyFromRecordset rs

' Close Database
rs.Close
cn.Close
Set cn = Nothing

end sub





share|improve this answer

























  • While this code may solve the question, including an explanation of how and why this solves the problem would really help to improve the quality of your post, and probably result in more up-votes. Remember that you are answering the question for readers in the future, not just the person asking now. Please edit your answer to add explanations and give an indication of what limitations and assumptions apply.

    – Busti
    Mar 25 at 16:51













-1












-1








-1








This code will allow you to provide variables that you use within your SQL statement and put those into cells on a spreadsheet (In this case Cred2) and return the results on a separate sheet (Sheet2).




The first portion of the code establishes a connection with the SQL server.



The column Headers will be started in Row 2 and then the data will begin populating starting on row 3. I have used this to pull well over 100,000 records at a time and this works very quickly.



Private Sub CommandButton1_Click()

Dim cn As Object
Dim rs As Object
Dim strCon As String
Dim strSQL As String


strCon = "DRIVER=SQL Server;SERVER=ServerName;DATABASE=DBName;Trusted_Connection=True"
Set cn = CreateObject("ADODB.Connection")
cn.Open strCon

' if not a trusted connection you could replace top line of strCon with
strCon = "DRIVER=SQL Server; Server=myServerAddress;Database=myDataBase;User Id=myUsername; Password=myPassword"



' set up where you are getting your variables to include in the SQL statement

stat = Sheets("Cred2").Range("c7").Value
barg = Sheets("Cred2").Range("c10").Value
worksite = Sheets("Cred2").Range("c11").Value


' Construct SQL statement

strSQL = "select * " _
& " FROM tableName A , table2 B " _
& "WHERE A.[field1] = B.[field1] " _
& " and field1 like '" & stat & "'" _
& "and field2 like '" & barg & "'" _
& "and field3 like '" & worksite & "'" _
& " order by Field? "

' Build Record Set

Set rs = CreateObject("ADODB.RECORDSET")
rs.ActiveConnection = cn
rs.Open strSQL


' Display Data

For intColIndex = 0 To rs.Fields.Count - 1
Sheet2.Range("A2").Offset(0, intColIndex).Value = rs.Fields(intColIndex).name
Next


Sheet2.Range("A3").CopyFromRecordset rs

' Close Database
rs.Close
cn.Close
Set cn = Nothing

end sub





share|improve this answer
















This code will allow you to provide variables that you use within your SQL statement and put those into cells on a spreadsheet (In this case Cred2) and return the results on a separate sheet (Sheet2).




The first portion of the code establishes a connection with the SQL server.



The column Headers will be started in Row 2 and then the data will begin populating starting on row 3. I have used this to pull well over 100,000 records at a time and this works very quickly.



Private Sub CommandButton1_Click()

Dim cn As Object
Dim rs As Object
Dim strCon As String
Dim strSQL As String


strCon = "DRIVER=SQL Server;SERVER=ServerName;DATABASE=DBName;Trusted_Connection=True"
Set cn = CreateObject("ADODB.Connection")
cn.Open strCon

' if not a trusted connection you could replace top line of strCon with
strCon = "DRIVER=SQL Server; Server=myServerAddress;Database=myDataBase;User Id=myUsername; Password=myPassword"



' set up where you are getting your variables to include in the SQL statement

stat = Sheets("Cred2").Range("c7").Value
barg = Sheets("Cred2").Range("c10").Value
worksite = Sheets("Cred2").Range("c11").Value


' Construct SQL statement

strSQL = "select * " _
& " FROM tableName A , table2 B " _
& "WHERE A.[field1] = B.[field1] " _
& " and field1 like '" & stat & "'" _
& "and field2 like '" & barg & "'" _
& "and field3 like '" & worksite & "'" _
& " order by Field? "

' Build Record Set

Set rs = CreateObject("ADODB.RECORDSET")
rs.ActiveConnection = cn
rs.Open strSQL


' Display Data

For intColIndex = 0 To rs.Fields.Count - 1
Sheet2.Range("A2").Offset(0, intColIndex).Value = rs.Fields(intColIndex).name
Next


Sheet2.Range("A3").CopyFromRecordset rs

' Close Database
rs.Close
cn.Close
Set cn = Nothing

end sub






share|improve this answer














share|improve this answer



share|improve this answer








edited Mar 25 at 17:10

























answered Mar 25 at 14:49









RReneauRReneau

12




12












  • While this code may solve the question, including an explanation of how and why this solves the problem would really help to improve the quality of your post, and probably result in more up-votes. Remember that you are answering the question for readers in the future, not just the person asking now. Please edit your answer to add explanations and give an indication of what limitations and assumptions apply.

    – Busti
    Mar 25 at 16:51

















  • While this code may solve the question, including an explanation of how and why this solves the problem would really help to improve the quality of your post, and probably result in more up-votes. Remember that you are answering the question for readers in the future, not just the person asking now. Please edit your answer to add explanations and give an indication of what limitations and assumptions apply.

    – Busti
    Mar 25 at 16:51
















While this code may solve the question, including an explanation of how and why this solves the problem would really help to improve the quality of your post, and probably result in more up-votes. Remember that you are answering the question for readers in the future, not just the person asking now. Please edit your answer to add explanations and give an indication of what limitations and assumptions apply.

– Busti
Mar 25 at 16:51





While this code may solve the question, including an explanation of how and why this solves the problem would really help to improve the quality of your post, and probably result in more up-votes. Remember that you are answering the question for readers in the future, not just the person asking now. Please edit your answer to add explanations and give an indication of what limitations and assumptions apply.

– Busti
Mar 25 at 16:51



















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55322461%2fexecute-sql-complex-query-through-excel-vba%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

Swift 4 - func physicsWorld not invoked on collision? The Next CEO of Stack OverflowHow to call Objective-C code from Swift#ifdef replacement in the Swift language@selector() in Swift?#pragma mark in Swift?Swift for loop: for index, element in array?dispatch_after - GCD in Swift?Swift Beta performance: sorting arraysSplit a String into an array in Swift?The use of Swift 3 @objc inference in Swift 4 mode is deprecated?How to optimize UITableViewCell, because my UITableView lags

Access current req object everywhere in Node.js ExpressWhy are global variables considered bad practice? (node.js)Using req & res across functionsHow do I get the path to the current script with Node.js?What is Node.js' Connect, Express and “middleware”?Node.js w/ express error handling in callbackHow to access the GET parameters after “?” in Express?Modify Node.js req object parametersAccess “app” variable inside of ExpressJS/ConnectJS middleware?Node.js Express app - request objectAngular Http Module considered middleware?Session variables in ExpressJSAdd properties to the req object in expressjs with Typescript