Alex,
I posted this in an EXCEL forum a few weeks back, based on your reply
in this post, I believe you may be JUST the person to assist me this
problem. Below is my recent post:
=============
I wasn't really sure how to phrase this one -- this isn't your Typical
Drop-Down List.
I have a SELECT statement which queries SQL Server 2005 and displays the
data in Excel.
Let's say that the data queried shows products in 4 different cities,
without knowing (in advance) how could I create an input/drop-down field
to
allow the user to specify a particular city?
Below is the code I'm using --
===================
Option Explicit
Sub DataExtractSpecific()
' Create a connection object.
Dim cnExcel As ADODB.Connection
Set cnExcel = New ADODB.Connection
' Provide the connection string.
Dim strConn As String
'Use the SQL Server OLE DB Provider.
strConn = "PROVIDER=SQLOLEDB;"
'Connect to the DWS_Sales database on the Products Server.
strConn = strConn & "DATA SOURCE=xx.x.xx.xx;INITIAL CATALOG=Products;" &
_
"User Id=xxxxxxx;" & _
"Password=xxxxxx"
'Now open the connection.
cnExcel.Open strConn
On Error Resume Next
' Create a recordset object.
Dim OppNumber As String
Dim sqlCommand As String
'Dim CloseDate As Date
Dim rsExcel As ADODB.Recordset
Set rsExcel = New ADODB.Recordset
OppNumber = InputBox("Please Re-Enter Product Number for the 2nd lookup
query.")
'CloseDate = InputBox("Enter the Purchase Date -- like 2/26/2007 11:44")
sqlCommand = "SELECT * FROM Tracking_Specific WHERE [Product Number] = "
+
ProdNumber
With rsExcel
' Assign the Connection object.
.ActiveConnection = cnExcel
' Extract the required records.
.Open sqlCommand
' Copy the records into cell A1 on Sheet1.
Sheet1.Range("A3").CopyFromRecordset rsExcel
' Tidy up
.Close
End With
cnExcel.Close
Set rsExcel = Nothing
Set cnExcel = Nothing
End Sub
===============
Many Thanks (in advance) for any assistance on this.
Shane
Hi,
for long multiselect list I also use temp table - I add all selected
items there and then join it to the table
--
Best regards,
___________
Alex Dybenko (MVP)
http://alexdyb.blogspot.com
http://www.PointLtd.com
I have read several ways to do this,
1. Create a comma delimited string of Itemselected values, presumably
to use in an "In" function in a SQL statement.
2. Same as above but using an " OR =" to append values in a string
3. Looping through the Itemselected collection and appending each
value to a table
Maybe more - is there a preferred way,or a way that seems to offer
performance advantages?
Is there a maximum length to the SQL string, as I can envision
exceeding 255 characters in 1-2 above?