Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2011, 10:21   #1
312153
Новичок
Джуниор
 
Регистрация: 25.05.2011
Сообщений: 2
По умолчанию Перенос формулы из ячейки в recordset

Здравствуйте!
Вопрос назрел следующий:
имеется recordset с запросом к листу Excel следующего вида
Код:
cm_old.CommandText = "SELECT ID, LS_" & yearn & ", LD_" & yearn & " " & "FROM [Лист1$] " & "WHERE (LS_" & yearn & " <> NULL);"
yearn здесь год, берется из коллекции и с помощью конкатенации получается имя столбца в листе1.
в ячейках столбца LS_&yearn хранятся формулы и вопрос состоит в том как мне в recordset перенести сами формулы, а не результат вычисления?

Заранее благодарен!
312153 вне форума Ответить с цитированием
Старый 25.05.2011, 20:06   #2
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Вот Вам пример, по другому похоже ни как
поместит текст типа =C1
Код:
Sub st_sql()
Dim cn As ADODB.Connection, rs As ADODB.Recordset
Dim sCon As String
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
  sCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.FullName _
  & ";Extended Properties=""Excel 8.0;HDR=No"";"
    cn.Open sCon
 If Not cn.State = 1 Then Exit Sub
 a = [b1:b11].FormulaLocal
  b = a
 For i = 1 To UBound(a)
 a(i, 1) = "'" & a(i, 1)
 Next
 [b1:b11] = a
   sSql = "SELECT F1" _
& " FROM [Лист1$B1:B11]"
   rs.Open sSql, cn, adOpenStatic, adLockReadOnly
  [j1].CopyFromRecordset rs
  [b1:b11].FormulaLocal = b
rs.Close: cn.Close
Set cn = Nothing: Set rs = Nothing
End Sub
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 26.05.2011, 08:01   #3
312153
Новичок
Джуниор
 
Регистрация: 25.05.2011
Сообщений: 2
По умолчанию Решено

Я именно так и решил эту задачу.
Только в Connection String нужно еще добавить IMEX=1; для того чтобы драйвер ODBC понимал что вы переносите текст, а не числа, в противном случае он вернет вам сплошные NULL.
312153 вне форума Ответить с цитированием
Старый 26.05.2011, 09:47   #4
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от 312153 Посмотреть сообщение
Я именно так и решил эту задачу.
Только в Connection String нужно еще добавить IMEX=1; для того чтобы драйвер ODBC понимал что вы переносите текст, а не числа, в противном случае он вернет вам сплошные NULL.
не обязательно, так как я подставляю ему текстовые данные, то и вернет он мне только текст
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234

Последний раз редактировалось R Dmitry; 26.05.2011 в 10:29.
R Dmitry вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос текста из ячейки в автофигуру Robespierre Microsoft Office Excel 2 24.02.2011 09:16
перенос внутри ячейки orange_rush Microsoft Office Excel 1 29.12.2010 16:32
копирование формулы в ниже стоящие ячейки konistra Microsoft Office Excel 8 09.06.2010 16:13
Замена части формулы по значению ячейки klip Microsoft Office Excel 3 05.03.2010 14:45
Зависимые ячейки и непонятные формулы) Лига Microsoft Office Excel 10 15.09.2008 10:21