Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I am basically trying to get data from an SQL database, you can see my code
below: Sub SPICEdownload_indexvalue() 'On Error GoTo datapullerr Dim wk As Workbook Dim data As Worksheet, para As Worksheet Dim Sql$ Set wk = ThisWorkbook Set data = wk.Sheets("SPICE idxval") Dim wrkodbc As Workspace Dim db As DAO.Database Dim rs As DAO.Recordset Dim r As Range Dim ts As String Set wrkodbc = CreateWorkspace("NewODBCWorkspace", _ "admin", "", dbUseODBC) Set db = wrkodbc.OpenDatabase("Spice", , , "ODBC;DSN=SPICE;UID=EQIQRY;pwd=eqiqry;SERVER=PSDR1 .MHF2.MHF.MHC;") ts = "" i = 3 While Trim(data.Cells(i, 1)) < "" ts = ts & IIf(ts < "", "or ", "") & "(Index_id = " & Trim(data.Cells(i, 1)) & " and index_date='" & _ Format(Trim(data.Cells(i, 2)), "dd-MMM-yyyy") & "') " i = i + 1 Wend Sql = "select a.index_id, a.index_date, a.close_index_value, b.index_dividend from daily_index_values a, index_dividend b where" & ts & " a.index_id = b.index_id order by index_id" Set rs = db.OpenRecordset(Sql, dbOpenSnapshot) i = 3 While Trim(data.Cells(i, 1)) < "" data.Range("A" & i & ":C" & i & ":D" & i) = Array(rs!index_id, rs!index_date, rs!close_index_value, rs!index_dividend) rs.MoveNext i = i + 1 Wend rs.Close db.Close Set sb = Nothing Set rs = Nothing End Sub Private Sub CommandButton1_Click() SPICEdownload_indexvalue End Sub My code works partially, if I put a more simple SQL statement in it to just pull up values from one table it works ok and posts the values to the Excel sheet, but when I try to create a query through the statement, it basically brings up an error, the SQL statement work perfectly alone, but when it is incorporated into Excel it just brings up an error at the Snapshot section, I've tried everything and I am currently at a loss, can anyone help me with this, any help will be greatly appreciated, Thank you. |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
change it to
--- Debug.Print Sql Set rs = db.OpenRecordset(Sql, dbOpenSnapshot) --- and look at the Sql string. I think you at least need a space after where where" & ts & where " & ts & < --- Plus, shouldn't the date be tagged with # or is it really a text field? hth "drinese18" wrote: I am basically trying to get data from an SQL database, you can see my code below: Sub SPICEdownload_indexvalue() 'On Error GoTo datapullerr Dim wk As Workbook Dim data As Worksheet, para As Worksheet Dim Sql$ Set wk = ThisWorkbook Set data = wk.Sheets("SPICE idxval") Dim wrkodbc As Workspace Dim db As DAO.Database Dim rs As DAO.Recordset Dim r As Range Dim ts As String Set wrkodbc = CreateWorkspace("NewODBCWorkspace", _ "admin", "", dbUseODBC) Set db = wrkodbc.OpenDatabase("Spice", , , "ODBC;DSN=SPICE;UID=EQIQRY;pwd=eqiqry;SERVER=PSDR1 .MHF2.MHF.MHC;") ts = "" i = 3 While Trim(data.Cells(i, 1)) < "" ts = ts & IIf(ts < "", "or ", "") & "(Index_id = " & Trim(data.Cells(i, 1)) & " and index_date='" & _ Format(Trim(data.Cells(i, 2)), "dd-MMM-yyyy") & "') " i = i + 1 Wend Sql = "select a.index_id, a.index_date, a.close_index_value, b.index_dividend from daily_index_values a, index_dividend b where" & ts & " a.index_id = b.index_id order by index_id" Set rs = db.OpenRecordset(Sql, dbOpenSnapshot) i = 3 While Trim(data.Cells(i, 1)) < "" data.Range("A" & i & ":C" & i & ":D" & i) = Array(rs!index_id, rs!index_date, rs!close_index_value, rs!index_dividend) rs.MoveNext i = i + 1 Wend rs.Close db.Close Set sb = Nothing Set rs = Nothing End Sub Private Sub CommandButton1_Click() SPICEdownload_indexvalue End Sub My code works partially, if I put a more simple SQL statement in it to just pull up values from one table it works ok and posts the values to the Excel sheet, but when I try to create a query through the statement, it basically brings up an error, the SQL statement work perfectly alone, but when it is incorporated into Excel it just brings up an error at the Snapshot section, I've tried everything and I am currently at a loss, can anyone help me with this, any help will be greatly appreciated, Thank you. |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hey HatesIT,
Can I ask what profession you are in? <grin Matthew Pfluger Design Engineer "HatesIT" wrote: change it to --- Debug.Print Sql Set rs = db.OpenRecordset(Sql, dbOpenSnapshot) --- and look at the Sql string. I think you at least need a space after where where" & ts & where " & ts & < --- Plus, shouldn't the date be tagged with # or is it really a text field? hth "drinese18" wrote: I am basically trying to get data from an SQL database, you can see my code below: Sub SPICEdownload_indexvalue() 'On Error GoTo datapullerr Dim wk As Workbook Dim data As Worksheet, para As Worksheet Dim Sql$ Set wk = ThisWorkbook Set data = wk.Sheets("SPICE idxval") Dim wrkodbc As Workspace Dim db As DAO.Database Dim rs As DAO.Recordset Dim r As Range Dim ts As String Set wrkodbc = CreateWorkspace("NewODBCWorkspace", _ "admin", "", dbUseODBC) Set db = wrkodbc.OpenDatabase("Spice", , , "ODBC;DSN=SPICE;UID=EQIQRY;pwd=eqiqry;SERVER=PSDR1 .MHF2.MHF.MHC;") ts = "" i = 3 While Trim(data.Cells(i, 1)) < "" ts = ts & IIf(ts < "", "or ", "") & "(Index_id = " & Trim(data.Cells(i, 1)) & " and index_date='" & _ Format(Trim(data.Cells(i, 2)), "dd-MMM-yyyy") & "') " i = i + 1 Wend Sql = "select a.index_id, a.index_date, a.close_index_value, b.index_dividend from daily_index_values a, index_dividend b where" & ts & " a.index_id = b.index_id order by index_id" Set rs = db.OpenRecordset(Sql, dbOpenSnapshot) i = 3 While Trim(data.Cells(i, 1)) < "" data.Range("A" & i & ":C" & i & ":D" & i) = Array(rs!index_id, rs!index_date, rs!close_index_value, rs!index_dividend) rs.MoveNext i = i + 1 Wend rs.Close db.Close Set sb = Nothing Set rs = Nothing End Sub Private Sub CommandButton1_Click() SPICEdownload_indexvalue End Sub My code works partially, if I put a more simple SQL statement in it to just pull up values from one table it works ok and posts the values to the Excel sheet, but when I try to create a query through the statement, it basically brings up an error, the SQL statement work perfectly alone, but when it is incorporated into Excel it just brings up an error at the Snapshot section, I've tried everything and I am currently at a loss, can anyone help me with this, any help will be greatly appreciated, Thank you. |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I make reports of reports, doesn't everyone?
"Matthew Pfluger" wrote: Hey HatesIT, Can I ask what profession you are in? <grin Matthew Pfluger Design Engineer "HatesIT" wrote: change it to --- Debug.Print Sql Set rs = db.OpenRecordset(Sql, dbOpenSnapshot) --- and look at the Sql string. I think you at least need a space after where where" & ts & where " & ts & < --- Plus, shouldn't the date be tagged with # or is it really a text field? hth "drinese18" wrote: I am basically trying to get data from an SQL database, you can see my code below: Sub SPICEdownload_indexvalue() 'On Error GoTo datapullerr Dim wk As Workbook Dim data As Worksheet, para As Worksheet Dim Sql$ Set wk = ThisWorkbook Set data = wk.Sheets("SPICE idxval") Dim wrkodbc As Workspace Dim db As DAO.Database Dim rs As DAO.Recordset Dim r As Range Dim ts As String Set wrkodbc = CreateWorkspace("NewODBCWorkspace", _ "admin", "", dbUseODBC) Set db = wrkodbc.OpenDatabase("Spice", , , "ODBC;DSN=SPICE;UID=EQIQRY;pwd=eqiqry;SERVER=PSDR1 .MHF2.MHF.MHC;") ts = "" i = 3 While Trim(data.Cells(i, 1)) < "" ts = ts & IIf(ts < "", "or ", "") & "(Index_id = " & Trim(data.Cells(i, 1)) & " and index_date='" & _ Format(Trim(data.Cells(i, 2)), "dd-MMM-yyyy") & "') " i = i + 1 Wend Sql = "select a.index_id, a.index_date, a.close_index_value, b.index_dividend from daily_index_values a, index_dividend b where" & ts & " a.index_id = b.index_id order by index_id" Set rs = db.OpenRecordset(Sql, dbOpenSnapshot) i = 3 While Trim(data.Cells(i, 1)) < "" data.Range("A" & i & ":C" & i & ":D" & i) = Array(rs!index_id, rs!index_date, rs!close_index_value, rs!index_dividend) rs.MoveNext i = i + 1 Wend rs.Close db.Close Set sb = Nothing Set rs = Nothing End Sub Private Sub CommandButton1_Click() SPICEdownload_indexvalue End Sub My code works partially, if I put a more simple SQL statement in it to just pull up values from one table it works ok and posts the values to the Excel sheet, but when I try to create a query through the statement, it basically brings up an error, the SQL statement work perfectly alone, but when it is incorporated into Excel it just brings up an error at the Snapshot section, I've tried everything and I am currently at a loss, can anyone help me with this, any help will be greatly appreciated, Thank you. |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I tried it but it's still bringing up the same error, the error basically
says OBDC called failed, in which the connection string to me is right because I've tried it in another code and it works ok and the SQL statement is correct as well since I've tried that seperately and it works perfectly, but once everything is incorporated together it brings up that error and when I debug it, it refers to this line of code: Set rs = db.OpenRecordset(Sql, dbOpenSnapshot) So still not sure "HatesIT" wrote: I make reports of reports, doesn't everyone? "Matthew Pfluger" wrote: Hey HatesIT, Can I ask what profession you are in? <grin Matthew Pfluger Design Engineer "HatesIT" wrote: change it to --- Debug.Print Sql Set rs = db.OpenRecordset(Sql, dbOpenSnapshot) --- and look at the Sql string. I think you at least need a space after where where" & ts & where " & ts & < --- Plus, shouldn't the date be tagged with # or is it really a text field? hth "drinese18" wrote: I am basically trying to get data from an SQL database, you can see my code below: Sub SPICEdownload_indexvalue() 'On Error GoTo datapullerr Dim wk As Workbook Dim data As Worksheet, para As Worksheet Dim Sql$ Set wk = ThisWorkbook Set data = wk.Sheets("SPICE idxval") Dim wrkodbc As Workspace Dim db As DAO.Database Dim rs As DAO.Recordset Dim r As Range Dim ts As String Set wrkodbc = CreateWorkspace("NewODBCWorkspace", _ "admin", "", dbUseODBC) Set db = wrkodbc.OpenDatabase("Spice", , , "ODBC;DSN=SPICE;UID=EQIQRY;pwd=eqiqry;SERVER=PSDR1 .MHF2.MHF.MHC;") ts = "" i = 3 While Trim(data.Cells(i, 1)) < "" ts = ts & IIf(ts < "", "or ", "") & "(Index_id = " & Trim(data.Cells(i, 1)) & " and index_date='" & _ Format(Trim(data.Cells(i, 2)), "dd-MMM-yyyy") & "') " i = i + 1 Wend Sql = "select a.index_id, a.index_date, a.close_index_value, b.index_dividend from daily_index_values a, index_dividend b where" & ts & " a.index_id = b.index_id order by index_id" Set rs = db.OpenRecordset(Sql, dbOpenSnapshot) i = 3 While Trim(data.Cells(i, 1)) < "" data.Range("A" & i & ":C" & i & ":D" & i) = Array(rs!index_id, rs!index_date, rs!close_index_value, rs!index_dividend) rs.MoveNext i = i + 1 Wend rs.Close db.Close Set sb = Nothing Set rs = Nothing End Sub Private Sub CommandButton1_Click() SPICEdownload_indexvalue End Sub My code works partially, if I put a more simple SQL statement in it to just pull up values from one table it works ok and posts the values to the Excel sheet, but when I try to create a query through the statement, it basically brings up an error, the SQL statement work perfectly alone, but when it is incorporated into Excel it just brings up an error at the Snapshot section, I've tried everything and I am currently at a loss, can anyone help me with this, any help will be greatly appreciated, Thank you. |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I'll try to stick with you...
what is the error? Could be me but I didn't see it... can you post the SQL? when you say you've tried the SQL and it worked, where do you try it from? did you try tagging the dates with # as in #1/24/2007#? does your more simple SQL use a date filter? "drinese18" wrote: I tried it but it's still bringing up the same error, the error basically says OBDC called failed, in which the connection string to me is right because I've tried it in another code and it works ok and the SQL statement is correct as well since I've tried that seperately and it works perfectly, but once everything is incorporated together it brings up that error and when I debug it, it refers to this line of code: Set rs = db.OpenRecordset(Sql, dbOpenSnapshot) So still not sure "HatesIT" wrote: I make reports of reports, doesn't everyone? "Matthew Pfluger" wrote: Hey HatesIT, Can I ask what profession you are in? <grin Matthew Pfluger Design Engineer "HatesIT" wrote: change it to --- Debug.Print Sql Set rs = db.OpenRecordset(Sql, dbOpenSnapshot) --- and look at the Sql string. I think you at least need a space after where where" & ts & where " & ts & < --- Plus, shouldn't the date be tagged with # or is it really a text field? hth "drinese18" wrote: I am basically trying to get data from an SQL database, you can see my code below: Sub SPICEdownload_indexvalue() 'On Error GoTo datapullerr Dim wk As Workbook Dim data As Worksheet, para As Worksheet Dim Sql$ Set wk = ThisWorkbook Set data = wk.Sheets("SPICE idxval") Dim wrkodbc As Workspace Dim db As DAO.Database Dim rs As DAO.Recordset Dim r As Range Dim ts As String Set wrkodbc = CreateWorkspace("NewODBCWorkspace", _ "admin", "", dbUseODBC) Set db = wrkodbc.OpenDatabase("Spice", , , "ODBC;DSN=SPICE;UID=EQIQRY;pwd=eqiqry;SERVER=PSDR1 .MHF2.MHF.MHC;") ts = "" i = 3 While Trim(data.Cells(i, 1)) < "" ts = ts & IIf(ts < "", "or ", "") & "(Index_id = " & Trim(data.Cells(i, 1)) & " and index_date='" & _ Format(Trim(data.Cells(i, 2)), "dd-MMM-yyyy") & "') " i = i + 1 Wend Sql = "select a.index_id, a.index_date, a.close_index_value, b.index_dividend from daily_index_values a, index_dividend b where" & ts & " a.index_id = b.index_id order by index_id" Set rs = db.OpenRecordset(Sql, dbOpenSnapshot) i = 3 While Trim(data.Cells(i, 1)) < "" data.Range("A" & i & ":C" & i & ":D" & i) = Array(rs!index_id, rs!index_date, rs!close_index_value, rs!index_dividend) rs.MoveNext i = i + 1 Wend rs.Close db.Close Set sb = Nothing Set rs = Nothing End Sub Private Sub CommandButton1_Click() SPICEdownload_indexvalue End Sub My code works partially, if I put a more simple SQL statement in it to just pull up values from one table it works ok and posts the values to the Excel sheet, but when I try to create a query through the statement, it basically brings up an error, the SQL statement work perfectly alone, but when it is incorporated into Excel it just brings up an error at the Snapshot section, I've tried everything and I am currently at a loss, can anyone help me with this, any help will be greatly appreciated, Thank you. |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
the error basically says, ODBC call failed, my sql statement is:
select a.index_id, a.index_date, a.close_index_value, b.index_dividend from daily_index_values a, index_dividend b where " & ts & " a.index_id = b.index_id order by index_id I tried it using Oracle and it works ok, no I didn't tag the dates with that because it is not necessarily a specific date, the dates basically are drawn from a column within the spreadsheet, so when i enter the dates there and the id's it basically should bring up the values and dividend from those tables according to the id and date "HatesIT" wrote: I'll try to stick with you... what is the error? Could be me but I didn't see it... can you post the SQL? when you say you've tried the SQL and it worked, where do you try it from? did you try tagging the dates with # as in #1/24/2007#? does your more simple SQL use a date filter? "drinese18" wrote: I tried it but it's still bringing up the same error, the error basically says OBDC called failed, in which the connection string to me is right because I've tried it in another code and it works ok and the SQL statement is correct as well since I've tried that seperately and it works perfectly, but once everything is incorporated together it brings up that error and when I debug it, it refers to this line of code: Set rs = db.OpenRecordset(Sql, dbOpenSnapshot) So still not sure "HatesIT" wrote: I make reports of reports, doesn't everyone? "Matthew Pfluger" wrote: Hey HatesIT, Can I ask what profession you are in? <grin Matthew Pfluger Design Engineer "HatesIT" wrote: change it to --- Debug.Print Sql Set rs = db.OpenRecordset(Sql, dbOpenSnapshot) --- and look at the Sql string. I think you at least need a space after where where" & ts & where " & ts & < --- Plus, shouldn't the date be tagged with # or is it really a text field? hth "drinese18" wrote: I am basically trying to get data from an SQL database, you can see my code below: Sub SPICEdownload_indexvalue() 'On Error GoTo datapullerr Dim wk As Workbook Dim data As Worksheet, para As Worksheet Dim Sql$ Set wk = ThisWorkbook Set data = wk.Sheets("SPICE idxval") Dim wrkodbc As Workspace Dim db As DAO.Database Dim rs As DAO.Recordset Dim r As Range Dim ts As String Set wrkodbc = CreateWorkspace("NewODBCWorkspace", _ "admin", "", dbUseODBC) Set db = wrkodbc.OpenDatabase("Spice", , , "ODBC;DSN=SPICE;UID=EQIQRY;pwd=eqiqry;SERVER=PSDR1 .MHF2.MHF.MHC;") ts = "" i = 3 While Trim(data.Cells(i, 1)) < "" ts = ts & IIf(ts < "", "or ", "") & "(Index_id = " & Trim(data.Cells(i, 1)) & " and index_date='" & _ Format(Trim(data.Cells(i, 2)), "dd-MMM-yyyy") & "') " i = i + 1 Wend Sql = "select a.index_id, a.index_date, a.close_index_value, b.index_dividend from daily_index_values a, index_dividend b where" & ts & " a.index_id = b.index_id order by index_id" Set rs = db.OpenRecordset(Sql, dbOpenSnapshot) i = 3 While Trim(data.Cells(i, 1)) < "" data.Range("A" & i & ":C" & i & ":D" & i) = Array(rs!index_id, rs!index_date, rs!close_index_value, rs!index_dividend) rs.MoveNext i = i + 1 Wend rs.Close db.Close Set sb = Nothing Set rs = Nothing End Sub Private Sub CommandButton1_Click() SPICEdownload_indexvalue End Sub My code works partially, if I put a more simple SQL statement in it to just pull up values from one table it works ok and posts the values to the Excel sheet, but when I try to create a query through the statement, it basically brings up an error, the SQL statement work perfectly alone, but when it is incorporated into Excel it just brings up an error at the Snapshot section, I've tried everything and I am currently at a loss, can anyone help me with this, any help will be greatly appreciated, Thank you. |
#8
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I'll assume you have some reason why your not showing the full SQL.
If it works without the " & ts & " then I would say the problem is in your ts string build. Other than that all I could offer is to try a different type option or run it with the default. That should be "dbOpenForwardOnly" You could also try and re-post this over in data.odbc but watch out for the tumbleweeds... "drinese18" wrote: the error basically says, ODBC call failed, my sql statement is: select a.index_id, a.index_date, a.close_index_value, b.index_dividend from daily_index_values a, index_dividend b where " & ts & " a.index_id = b.index_id order by index_id I tried it using Oracle and it works ok, no I didn't tag the dates with that because it is not necessarily a specific date, the dates basically are drawn from a column within the spreadsheet, so when i enter the dates there and the id's it basically should bring up the values and dividend from those tables according to the id and date "HatesIT" wrote: I'll try to stick with you... what is the error? Could be me but I didn't see it... can you post the SQL? when you say you've tried the SQL and it worked, where do you try it from? did you try tagging the dates with # as in #1/24/2007#? does your more simple SQL use a date filter? "drinese18" wrote: I tried it but it's still bringing up the same error, the error basically says OBDC called failed, in which the connection string to me is right because I've tried it in another code and it works ok and the SQL statement is correct as well since I've tried that seperately and it works perfectly, but once everything is incorporated together it brings up that error and when I debug it, it refers to this line of code: Set rs = db.OpenRecordset(Sql, dbOpenSnapshot) So still not sure "HatesIT" wrote: I make reports of reports, doesn't everyone? "Matthew Pfluger" wrote: Hey HatesIT, Can I ask what profession you are in? <grin Matthew Pfluger Design Engineer "HatesIT" wrote: change it to --- Debug.Print Sql Set rs = db.OpenRecordset(Sql, dbOpenSnapshot) --- and look at the Sql string. I think you at least need a space after where where" & ts & where " & ts & < --- Plus, shouldn't the date be tagged with # or is it really a text field? hth "drinese18" wrote: I am basically trying to get data from an SQL database, you can see my code below: Sub SPICEdownload_indexvalue() 'On Error GoTo datapullerr Dim wk As Workbook Dim data As Worksheet, para As Worksheet Dim Sql$ Set wk = ThisWorkbook Set data = wk.Sheets("SPICE idxval") Dim wrkodbc As Workspace Dim db As DAO.Database Dim rs As DAO.Recordset Dim r As Range Dim ts As String Set wrkodbc = CreateWorkspace("NewODBCWorkspace", _ "admin", "", dbUseODBC) Set db = wrkodbc.OpenDatabase("Spice", , , "ODBC;DSN=SPICE;UID=EQIQRY;pwd=eqiqry;SERVER=PSDR1 .MHF2.MHF.MHC;") ts = "" i = 3 While Trim(data.Cells(i, 1)) < "" ts = ts & IIf(ts < "", "or ", "") & "(Index_id = " & Trim(data.Cells(i, 1)) & " and index_date='" & _ Format(Trim(data.Cells(i, 2)), "dd-MMM-yyyy") & "') " i = i + 1 Wend Sql = "select a.index_id, a.index_date, a.close_index_value, b.index_dividend from daily_index_values a, index_dividend b where" & ts & " a.index_id = b.index_id order by index_id" Set rs = db.OpenRecordset(Sql, dbOpenSnapshot) i = 3 While Trim(data.Cells(i, 1)) < "" data.Range("A" & i & ":C" & i & ":D" & i) = Array(rs!index_id, rs!index_date, rs!close_index_value, rs!index_dividend) rs.MoveNext i = i + 1 Wend rs.Close db.Close Set sb = Nothing Set rs = Nothing End Sub Private Sub CommandButton1_Click() SPICEdownload_indexvalue End Sub My code works partially, if I put a more simple SQL statement in it to just pull up values from one table it works ok and posts the values to the Excel sheet, but when I try to create a query through the statement, it basically brings up an error, the SQL statement work perfectly alone, but when it is incorporated into Excel it just brings up an error at the Snapshot section, I've tried everything and I am currently at a loss, can anyone help me with this, any help will be greatly appreciated, Thank you. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Colon at the end of excel file name(ex: problem.xls:1, problem.xls | New Users to Excel | |||
Problem with Excel reports ::::Excel 2003 Migration To Excel 2007 | Excel Programming | |||
Problem with Excel reports ::::Excel 2003 Migration To Excel 2007 | Excel Programming | |||
Weird problem with Excel 2000...Worksheets disappearing in a shared Excel file | Excel Discussion (Misc queries) | |||
Started out as an Access problem. Now an Excel problem | Excel Discussion (Misc queries) |