|
|
|
Экспорт Excel->MSSQL, Экспорт Excel->Excel (VBA MS Excel 2007)
|
|||
|---|---|---|---|
|
#18+
Экспорт Excel->MSSQL я присоединяюсь в макросе к MS SQL. создаю коннект, записываю строчку запроса. а как правильно сделать добавление? я использую след цикл (но не работает. как делать не знаю): for i = 1 to row_end SqlString = "insert into Convers values ('" & cells(i,1) & "','" & cells(i,2) & "','" & cells(i,3) & "', convert(float,'" & cells(i,4) & "')," & cells(i,5) & ")" conn.execute sqlString next i Экспорт Excel->Excel Мне нужно написать следующий макрос: есть файл Excel - "Рассчет". я запускаю макрос в нем: 1) ввожу дату, за которую нужно закачать данные 2) открываю xls файл на сервере (с учетом даты названия немного отличаются) - например, CURA_08 3) беру из этого файла 12 значений из определенных ячеек cells(9,10), cells(9,11), cells(9,12), cells(10,10) и т.д. 4) вставляю их на свой листик в файле "Рассчет". 5) закрываю xls файл сервера. Как осуществить это подключение и забрать только 12 значений? ХЕЛП МИ ПИПЛ! ПЛИИИИИИИИЗ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2008, 09:39 |
|
||
|
Экспорт Excel->MSSQL, Экспорт Excel->Excel (VBA MS Excel 2007)
|
|||
|---|---|---|---|
|
#18+
> Автор: HEON > Экспорт Excel->MSSQL > я присоединяюсь в макросе к MS SQL. > > создаю коннект, записываю строчку запроса. > а как правильно сделать добавление? > я использую след цикл (но не работает. как делать не знаю): > > for i = 1 to row_end > SqlString = "insert into Convers values ('" & cells(i,1) & "','" & cells(i,2) & "','" & cells(i,3) & "', > convert(float,'" & cells(i,4) & "')," & cells(i,5) & ")" > conn.execute sqlString > next i здесь явно указывай cells(i,4) .value и после имени таблицы в скобках нужно перечислить список полей, которые будут вставлятся и ещё проверяй на ошибки выполнения, у тебя может тупо не быть прав на вставку в эту таблицу > > Экспорт Excel->Excel > Мне нужно написать следующий макрос: > есть файл Excel - "Рассчет". > я запускаю макрос в нем: > 1) ввожу дату, за которую нужно закачать данные > 2) открываю xls файл на сервере (с учетом даты названия немного отличаются) - например, CURA_08 > 3) беру из этого файла 12 значений из определенных ячеек > cells(9,10), cells(9,11), cells(9,12), cells(10,10) и т.д. > 4) вставляю их на свой листик в файле "Рассчет". > 5) закрываю xls файл сервера. > > Как осуществить это подключение и забрать только 12 значений? Возьми и запиши макрос со всеми шагами, потом подправь полученный код, согласно пункту 2 Ничего военного :D -- С уважением Горбонос Игорь Леонидович Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2008, 10:16 |
|
||
|
Экспорт Excel->MSSQL, Экспорт Excel->Excel (VBA MS Excel 2007)
|
|||
|---|---|---|---|
|
#18+
спасибо. попробую сейчас сделать. а по поводу прав доступа. точно есть. т.к. эту таблицу сама когда-то создавала ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2008, 10:25 |
|
||
|
Экспорт Excel->MSSQL, Экспорт Excel->Excel (VBA MS Excel 2007)
|
|||
|---|---|---|---|
|
#18+
по 1 вопросу. выдется ошибка ISAM. порылась в инете, нужно включить библиотеку. можете сказать, какую именно? хотя JET вроде бы включен был. а вот код, который есть для вставки в MS SQL: private Sub INSERT_SQL(row_ins as integer) Dim Conn As ADODB.Connection Dim strSQL As String Dim ConnString As String Set Conn = New ADODB.Connection ConnString = "Provider=Microsoft.Jet.OLEDB.4.0; DataSource ='D:\! Work_Karina\Конверсия\Кросс-курсы.xls'; Extended Properties = Excel 8.0" Conn.Open ConnString For i = 1 to row_ins strSQL = "insert into [Bank_MSCRM].[dbo].[Conversija_daily' values('" & Cells(i,1).Value & "','" & Cells(i,2).Value & "','" & Cells(i,3).Value & "',convert(float,replace('" & Cells(i,4).Value & "',',','.'))," & Cells(i,5).Value & ")" Conn.Execute strSQL next i Conn.Close Set Conn = Nothing End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2008, 10:44 |
|
||
|
Экспорт Excel->MSSQL, Экспорт Excel->Excel (VBA MS Excel 2007)
|
|||
|---|---|---|---|
|
#18+
> Автор: HEON > по 1 вопросу. выдется ошибка ISAM. порылась в инете, нужно включить библиотеку. > можете сказать, какую именно? хотя JET вроде бы включен был. > > а вот код, который есть для вставки в MS SQL: > > private Sub INSERT_SQL(row_ins as integer) > > Dim Conn As ADODB.Connection > Dim strSQL As String > Dim ConnString As String > > Set Conn = New ADODB.Connection > > ConnString = "Provider=Microsoft.Jet.OLEDB.4.0; DataSource ='D:\! Work_Karina\Конверсия\Кросс-курсы.xls'; > Extended Properties = Excel 8.0" Только этим кодом, ты пытаешся вставить не в MSSQL а в файл Екселя Ну и я-бы пользовался бы транзакциями и параметрами. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. -- С уважением Горбонос Игорь Леонидович Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2008, 11:27 |
|
||
|
Экспорт Excel->MSSQL, Экспорт Excel->Excel (VBA MS Excel 2007)
|
|||
|---|---|---|---|
|
#18+
добавлени в MS SQL работает. супер =) спасибо! а как открыть excel-файл, расположенный на сервере. открыть. записать в переменные нужные значения и закрыть его. хелп хелп хелп! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 09:10 |
|
||
|
Экспорт Excel->MSSQL, Экспорт Excel->Excel (VBA MS Excel 2007)
|
|||
|---|---|---|---|
|
#18+
> Автор: HEON > а как открыть excel-файл, расположенный на сервере. > открыть. записать в переменные нужные значения и закрыть его. Можно просто записать макрос. И посмотреть код. В чем проблема? > хелп хелп хелп! "И не нужно так кричать, я и так хорошо слышу" (с) Кролик, друг Винни-Пуха -- С уважением Горбонос Игорь Леонидович Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 10:31 |
|
||
|
Экспорт Excel->MSSQL, Экспорт Excel->Excel (VBA MS Excel 2007)
|
|||
|---|---|---|---|
|
#18+
обошлась без макроса. работает =) однако вопрос. как открывать файлы в фоновом режиме? чтобы они не отображались на панели задач. пробовала application.visible, но он полностью excel вырубает. а мне нужно, чтобы только открываемые из макроса файлы в таком режиме запускал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 13:47 |
|
||
|
Экспорт Excel->MSSQL, Экспорт Excel->Excel (VBA MS Excel 2007)
|
|||
|---|---|---|---|
|
#18+
> Автор: HEON > однако вопрос. > как открывать файлы в фоновом режиме? чтобы они не отображались на панели задач. А как открываешь сейчас? > пробовала application.visible, но он полностью excel вырубает. > а мне нужно, чтобы только открываемые из макроса файлы в таком режиме запускал. Dim oEx As Excel.Application Set oEx = CreateObject("Excel.Application") .... Работаем .... oEx.Quit Set oEx = Nothing -- С уважением Горбонос Игорь Леонидович Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 14:27 |
|
||
|
Экспорт Excel->MSSQL, Экспорт Excel->Excel (VBA MS Excel 2007)
|
|||
|---|---|---|---|
|
#18+
strFile - путь к файлу Workbooks.open (strFile) ActivateWorkbook.RunAutoMacros xlAutoOpen Worksheets(1).Activate ---- тут я забираю все необходимые значения и записываю их в переменные ---- Application.DisplayAlerts = False ActivateWorkbook.Close Application.DisplayAlerts = True Workbooks.Item("Kross.xls").Activate ---- тут я вывожу все значения на лист ---- Работает очень быстро при открытии даже очень большого количества файлов. А где тут писать, что этот strFile открывать в фоновом режиме, не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 15:38 |
|
||
|
Экспорт Excel->MSSQL, Экспорт Excel->Excel (VBA MS Excel 2007)
|
|||
|---|---|---|---|
|
#18+
> Автор: HEON > strFile - путь к файлу > Dim oEx As Excel.Application Set oEx = CreateObject("Excel.Application") > oEx.Workbooks.open (strFile) > oEx.ActivateWorkbook.RunAutoMacros xlAutoOpen > oEx.Worksheets(1).Activate > > ---- тут я забираю все необходимые значения и записываю их в переменные ---- > > oEx..DisplayAlerts = False > oEx.ActivateWorkbook.Close > oEx..DisplayAlerts = True > > Workbooks.Item("Kross.xls").Activate > > ---- тут я вывожу все значения на лист ---- > После обработки всех книг сделать oEx.Quit Set oEx = Nothing Т.е. для забора значений использовать oEx, это тоже Ексель, но работающий в фоновом режиме и с "твоим" никак не связан, а для сохранения использовать Workbooks.Item("Kross.xls").Activate Понятно объяснил? -- С уважением Горбонос Игорь Леонидович Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2008, 16:23 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=35650707&tid=2161628]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 441ms |

| 0 / 0 |
