Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi,
I'm trying to read data from a worksheet, inputting it into an array, and make SQL queries based on the array value, repeat for each value. I'm having problems getting the array value into the query though. Heres example code: Sub Pass_array() Dim myarray As Variant myarray = Range("C15:C18").Value receive_array myarray End Sub --- Sub receive_array(thisarray) Dim dbConn2 As New ADODB.Connection Dim rs2 As New ADODB.Recordset 'the recordset dbConn2.ConnectionString = (connection string here, works fine) dbConn2.Open For i = 1 To UBound(thisarray) MsgBox thisarray(i, 1) *** <-- this is my check to see what value is getting put in With rs2 ..Open "SELECT DISTINCT PRICING.PRICE FROM MAIN, PRICING WHERE (MAIN.SERIES LIKE 'A123') AND (PRICING.TYPE = 'D') AND (MAIN.ID = PRICING.PART_ID) AND (PRICING.START=thisarray(i,1)", dbConn2, adOpenStatic noRecords = .RecordCount Range("F15").CopyFromRecordset rs .Close End With Next dbConn.Close End Sub If I do this, it says thisarray is not a function. If I just input i, it says invalid column name. Any help is appreciated thanks. |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
An array element is just like a variable, so you will have to do this:
..Open "SELECT DISTINCT PRICING.PRICE FROM MAIN, PRICING WHERE (MAIN.SERIES LIKE 'A123') AND (PRICING.TYPE = 'D') AND (MAIN.ID = PRICING.PART_ID) AND (PRICING.START = " & thisarray(i,1), dbConn2, adOpenStatic Otherwise thisArray(i,1) will taken as that literal string, which obviously means nothing. RBS "mazzarin" wrote in message ups.com... Hi, I'm trying to read data from a worksheet, inputting it into an array, and make SQL queries based on the array value, repeat for each value. I'm having problems getting the array value into the query though. Heres example code: Sub Pass_array() Dim myarray As Variant myarray = Range("C15:C18").Value receive_array myarray End Sub --- Sub receive_array(thisarray) Dim dbConn2 As New ADODB.Connection Dim rs2 As New ADODB.Recordset 'the recordset dbConn2.ConnectionString = (connection string here, works fine) dbConn2.Open For i = 1 To UBound(thisarray) MsgBox thisarray(i, 1) *** <-- this is my check to see what value is getting put in With rs2 .Open "SELECT DISTINCT PRICING.PRICE FROM MAIN, PRICING WHERE (MAIN.SERIES LIKE 'A123') AND (PRICING.TYPE = 'D') AND (MAIN.ID = PRICING.PART_ID) AND (PRICING.START=thisarray(i,1)", dbConn2, adOpenStatic noRecords = .RecordCount Range("F15").CopyFromRecordset rs .Close End With Next dbConn.Close End Sub If I do this, it says thisarray is not a function. If I just input i, it says invalid column name. Any help is appreciated thanks. |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I see what you mean!
but you have the value placed outside of the query itself, and I cannot get it to become what its supposed to be (in the first case, 500) inside the quotes... (PRICING.START= &thisarray(i,1))", -- Incorrect syntax near '&' (PRICING.START= '&thisarray(i,1)')", -- Syntax error converting the varchar value '&thisarray(i,1)' to a column of data type int (PRICING.START= " &thisarray(i, 1), -- Incorrect syntax near '500' Thoughts? RB Smissaert wrote: An array element is just like a variable, so you will have to do this: .Open "SELECT DISTINCT PRICING.PRICE FROM MAIN, PRICING WHERE (MAIN.SERIES LIKE 'A123') AND (PRICING.TYPE = 'D') AND (MAIN.ID = PRICING.PART_ID) AND (PRICING.START = " & thisarray(i,1), dbConn2, adOpenStatic Otherwise thisArray(i,1) will taken as that literal string, which obviously means nothing. RBS "mazzarin" wrote in message ups.com... Hi, I'm trying to read data from a worksheet, inputting it into an array, and make SQL queries based on the array value, repeat for each value. I'm having problems getting the array value into the query though. Heres example code: Sub Pass_array() Dim myarray As Variant myarray = Range("C15:C18").Value receive_array myarray End Sub --- Sub receive_array(thisarray) Dim dbConn2 As New ADODB.Connection Dim rs2 As New ADODB.Recordset 'the recordset dbConn2.ConnectionString = (connection string here, works fine) dbConn2.Open For i = 1 To UBound(thisarray) MsgBox thisarray(i, 1) *** <-- this is my check to see what value is getting put in With rs2 .Open "SELECT DISTINCT PRICING.PRICE FROM MAIN, PRICING WHERE (MAIN.SERIES LIKE 'A123') AND (PRICING.TYPE = 'D') AND (MAIN.ID = PRICING.PART_ID) AND (PRICING.START=thisarray(i,1)", dbConn2, adOpenStatic noRecords = .RecordCount Range("F15").CopyFromRecordset rs .Close End With Next dbConn.Close End Sub If I do this, it says thisarray is not a function. If I just input i, it says invalid column name. Any help is appreciated thanks. |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I find it easier to put the query in a variable, so you would get:
Dim strQuery As String strQuery = "SELECT DISTINCT PRICING.PRICE " & _ "FROM MAIN, PRICING " & _ "WHERE MAIN.SERIES LIKE 'A123' AND " & _ "PRICING.TYPE = 'D' AND " & _ "MAIN.ID = PRICING.PART_ID AND " & _ "PRICING.START = " & thisarray(i, 1) With rs2 .Open strQuery, dbConn2, adOpenStatic As your brackets in the query served no purpose I left them out. Also better to keep your code lines short and divide it in logical parts as above. RBS "mazzarin" wrote in message oups.com... I see what you mean! but you have the value placed outside of the query itself, and I cannot get it to become what its supposed to be (in the first case, 500) inside the quotes... (PRICING.START= &thisarray(i,1))", -- Incorrect syntax near '&' (PRICING.START= '&thisarray(i,1)')", -- Syntax error converting the varchar value '&thisarray(i,1)' to a column of data type int (PRICING.START= " &thisarray(i, 1), -- Incorrect syntax near '500' Thoughts? RB Smissaert wrote: An array element is just like a variable, so you will have to do this: .Open "SELECT DISTINCT PRICING.PRICE FROM MAIN, PRICING WHERE (MAIN.SERIES LIKE 'A123') AND (PRICING.TYPE = 'D') AND (MAIN.ID = PRICING.PART_ID) AND (PRICING.START = " & thisarray(i,1), dbConn2, adOpenStatic Otherwise thisArray(i,1) will taken as that literal string, which obviously means nothing. RBS "mazzarin" wrote in message ups.com... Hi, I'm trying to read data from a worksheet, inputting it into an array, and make SQL queries based on the array value, repeat for each value. I'm having problems getting the array value into the query though. Heres example code: Sub Pass_array() Dim myarray As Variant myarray = Range("C15:C18").Value receive_array myarray End Sub --- Sub receive_array(thisarray) Dim dbConn2 As New ADODB.Connection Dim rs2 As New ADODB.Recordset 'the recordset dbConn2.ConnectionString = (connection string here, works fine) dbConn2.Open For i = 1 To UBound(thisarray) MsgBox thisarray(i, 1) *** <-- this is my check to see what value is getting put in With rs2 .Open "SELECT DISTINCT PRICING.PRICE FROM MAIN, PRICING WHERE (MAIN.SERIES LIKE 'A123') AND (PRICING.TYPE = 'D') AND (MAIN.ID = PRICING.PART_ID) AND (PRICING.START=thisarray(i,1)", dbConn2, adOpenStatic noRecords = .RecordCount Range("F15").CopyFromRecordset rs .Close End With Next dbConn.Close End Sub If I do this, it says thisarray is not a function. If I just input i, it says invalid column name. Any help is appreciated thanks. |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
It works! Thank you very much. I will try and organize my code better
in the future :) RB Smissaert wrote: I find it easier to put the query in a variable, so you would get: Dim strQuery As String strQuery = "SELECT DISTINCT PRICING.PRICE " & _ "FROM MAIN, PRICING " & _ "WHERE MAIN.SERIES LIKE 'A123' AND " & _ "PRICING.TYPE = 'D' AND " & _ "MAIN.ID = PRICING.PART_ID AND " & _ "PRICING.START = " & thisarray(i, 1) With rs2 .Open strQuery, dbConn2, adOpenStatic As your brackets in the query served no purpose I left them out. Also better to keep your code lines short and divide it in logical parts as above. RBS "mazzarin" wrote in message oups.com... I see what you mean! but you have the value placed outside of the query itself, and I cannot get it to become what its supposed to be (in the first case, 500) inside the quotes... (PRICING.START= &thisarray(i,1))", -- Incorrect syntax near '&' (PRICING.START= '&thisarray(i,1)')", -- Syntax error converting the varchar value '&thisarray(i,1)' to a column of data type int (PRICING.START= " &thisarray(i, 1), -- Incorrect syntax near '500' Thoughts? RB Smissaert wrote: An array element is just like a variable, so you will have to do this: .Open "SELECT DISTINCT PRICING.PRICE FROM MAIN, PRICING WHERE (MAIN.SERIES LIKE 'A123') AND (PRICING.TYPE = 'D') AND (MAIN.ID = PRICING.PART_ID) AND (PRICING.START = " & thisarray(i,1), dbConn2, adOpenStatic Otherwise thisArray(i,1) will taken as that literal string, which obviously means nothing. RBS "mazzarin" wrote in message ups.com... Hi, I'm trying to read data from a worksheet, inputting it into an array, and make SQL queries based on the array value, repeat for each value. I'm having problems getting the array value into the query though. Heres example code: Sub Pass_array() Dim myarray As Variant myarray = Range("C15:C18").Value receive_array myarray End Sub --- Sub receive_array(thisarray) Dim dbConn2 As New ADODB.Connection Dim rs2 As New ADODB.Recordset 'the recordset dbConn2.ConnectionString = (connection string here, works fine) dbConn2.Open For i = 1 To UBound(thisarray) MsgBox thisarray(i, 1) *** <-- this is my check to see what value is getting put in With rs2 .Open "SELECT DISTINCT PRICING.PRICE FROM MAIN, PRICING WHERE (MAIN.SERIES LIKE 'A123') AND (PRICING.TYPE = 'D') AND (MAIN.ID = PRICING.PART_ID) AND (PRICING.START=thisarray(i,1)", dbConn2, adOpenStatic noRecords = .RecordCount Range("F15").CopyFromRecordset rs .Close End With Next dbConn.Close End Sub If I do this, it says thisarray is not a function. If I just input i, it says invalid column name. Any help is appreciated thanks. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
How to import web query as array? | Excel Discussion (Misc queries) | |||
Array formulas won't recognize external data from Microsoft Query | Excel Discussion (Misc queries) | |||
SQL Query Destination as an array varable | Excel Programming | |||
Web Query & Array Questions! | Excel Programming | |||
Query for data in an array | Excel Programming |