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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2012, 15:37   #1
madace
Пользователь
 
Регистрация: 15.10.2009
Сообщений: 15
По умолчанию переделка sql запроса из 2003 в 2007

Добрый день всем!
6 лет назад написал макрос- щас понадобился, но в 2010 не работает
Помогите исправить плз

Я НЕ ПРОГРАМИСТ, а юзер ! НОГАМИ НЕ ПИНАЙТЕ, ПЛЗ!

Код:
Public Sub totaltest()
Dim connection As ADODB.connection
Dim recordset As ADODB.recordset
Dim commanden As String
Const connectionstring As String = _
"Provider=SQLOLEDB.1" + _
"Persist Security Info=false;User ID=xx;Password=xx;Initial Catalog=xxxx;Data Source=xx;Auto Translate=True;Packet Size=4096;Workstation ID=xxx;Use Encryption for Data=False;Tag with column collation when possible=False"

On Error GoTo cleanup



Set connection = New ADODB.connection
Set recordset = New recordset
Call connection.Open(connectionstring)


commanden = "SELECT COUNT(*) FROM test"
Set recordset = connection.Execute(commanden)
lastnmb = recordset.Fields(0).Value

commanden = "SELECT cod FROM test"
Set recordset = connection.Execute(commanden)
recordset.MoveFirst



For x = 1 To lastnmb On Error Resume Next Cells(x + 1, 1) = recordset.Fields(0) recordset.MoveNext Next x
commanden = "SELECT *FROM test" Set recordset = connection.Execute(commanden) fieldsnum = recordset.Fields.Count fld = 0
While fld < fieldsnum Cells(1, fld + 1) = recordset.Fields(fld).Name fld = fld + 1 Wend
x = 2
While Cells(x, 1) <> "" commanden = "SELECT *FROM test WHERE IDENT=" & Cells(x, 1) Set recordset = connection.Execute(commanden) recordset.MoveFirst fieldsnum = recordset.Fields.Count fld = 0
While fld < fieldsnum Cells(x, fld + 1) = recordset.Fields(fld) fld = fld + 1 Wend
x = x + 1 Wend
cleanup: If (Err.Number <> 0) Then Debug.Print Err.Description If (connection.State = ObjectStateEnum.adStateOpen) Then connection.Close If (recordset.State = ObjectStateEnum.adStateOpen) Then recordset.Close End Sub
Что поменять, чтоб работало?

С уважением,
Madace
madace вне форума Ответить с цитированием
Старый 21.09.2012, 17:08   #2
madace
Пользователь
 
Регистрация: 15.10.2009
Сообщений: 15
По умолчанию

Вопрос снимаю- все работает
галочку надо было поставить

Tools menu / References

"Microsoft ActiveX Data Objects 6.0 Library"
madace вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конвертировать формулы из [2007 Word 2007] в [2003 Word 2003] mswmd Microsoft Office Word 8 10.07.2017 17:06
с 2003 на 2007 и наоборот bize Microsoft Office Excel 2 14.01.2012 14:18
Excel 2003-2007 ??? Александр82 Microsoft Office Excel 6 04.10.2010 19:19
Не совместимость 2007 c 2003 armagedon_atyrau Microsoft Office Excel 0 21.09.2010 13:48
из 2007 в 2003 samuil Microsoft Office Access 2 04.03.2009 11:59