Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 25

Проблема с выгрузкой данных через ADO

05.10.2011, 14:11. Показов 1276. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет

Такая проблема: У меня есть процедура В EXEL на VBA(код ниже) Через неё я хотел бы делать порядка 15-25 отчетов! Проблема в том что работает всё через раз! То работает то не работает!!!!!!!!!!! Помагите разобраться!

Visual Basic
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
45
46
47
48
49
50
51
52
53
54
55
Sub sel(stSQL As String, list As String, q1 As Integer, k1 As Integer)
'Процедура выполняет sql код
'stSQL-  sql код
'list -названия листа в EXCEL
'q1-параметр период
'k1-кол-во выводимых столбцов
 
Dim reRecordSet As Recordset
Dim Conn As ADODB.Connection
Dim strConn As String
 
On Error GoTo ErrorsDB
 
  
Set WS1 = ActiveSheet 'активный лист
Set WS2 = ActiveWorkbook.Sheets(list) '- нужный лист
WS2.Cells(1, 1).Value = WS2.Cells(1, 1).Value
WS2.Activate '- нужный стал активным
 
Set Conn = New ADODB.Connection
Conn.ConnectionTimeout = 45
strConn = "Network Library=DBMSSOCN;PROVIDER=SQLOLEDB;"
strConn = strConn & "DATA SOURCE=SERVER,1433;INITIAL CATALOG=baza;"
strConn = strConn & " User ID=login;Password=pas;"
Conn.ConnectionString = strConn
 
Conn.Open strCon
 
 
Dim records As ADODB.Recordset
Set records = New ADODB.Recordset
records.ActiveConnection = Conn
records.Open stSQL
 
i = 1
While Not records.EOF
For j = 1 To k1
    Worksheets(list).Cells(i + 7, j) = records(j - 1)
    Next j
  records.MoveNext
    i = i + 1
Wend
records.Close
Conn.Close
 
ErrorsDB:
 
   MsgBox "Блин ошибка"
 
Set WS1 = ActiveSheet 'активный лист
Set WS2 = ActiveWorkbook.Sheets(list) '- нужный лист
WS2.Cells(1, 1).Value = WS2.Cells(1, 1).Value
WS2.Activate '- нужный стал активным
 
End Sub

Пример вызова процедуры:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub CommandButton_Click()
   Dim stSQL As String
 Dim q1 As Integer
  Dim k1 As Integer
  Dim list As String
 
q1 = ComboBox1.Value
k1 = 41
If q1 = 0 Then
MsgBox ("Выберите период")
Else
'ТСЖ "ПЖСК №24"
stSQL = "select va.account,va.street,va.full_house_name,va.full_flat_name,ad.fam+' '+ad.imja+'.'+ad.vdch+'.' as fio,v4.n1,v1.n1,v5.n1,v3.n1,v4.n2,v1.n2,v5.n2,v3.n2,v4.n3,v1.n3,v5.n3,v3.n3,v4.n8,v1.n8,v5.n8,v3.n8,v4.n12,v1.n12,v5.n12,v3.n12,v4.n02,v1.n02,v5.n02,v3.n02,v4.n4,v1.n4,v5.n4,v3.n4,v4.n5,v1.n5,v5.n5,v3.n5,v4.n44,v1.n44,v5.n44,v3.n44 from (select id_account,[1] as n1,[19]+[43] as n2,[33] as n3,[8] as n8,[12] as n12,[2] as n02,[4] as n4,[5] as n5,[44] as n44 from(select id_account,id_service,sum(balance) as ndolg from vsum_circulate where period=" & q1 & " and id_provider=1042 group by id_account,period,id_service) p " _
& " pivot(sum(ndolg) for id_service in ([1],[2],[19],[43],[33],[8],[12],[4],[5],[44])) as pvt)v4 left join(select id_account,[1] as n1,[19]+[43] as n2,[33] as n3,[8] as n8,[12] as n12,[2] as n02,[4] as n4,[5] as n5,[44] as n44 from(select id_account,id_service,sum(sum_tariff-sum_benefit+Sum_Recalculation) as nach from vsum_circulate where period=" & q1 & " and id_provider=1042 group by id_account,period,id_service) p " _
& " pivot (sum(nach) for id_service in ([1],[2],[19],[43],[33],[8],[12],[4],[5],[44])) as pvt)v1 on v1.id_account=v4.id_account left join(select id_account,[1] as n1,[19]+[43] as n2,[33] as n3,[8] as n8,[12] as n12,[2] as n02,[4] as n4,[5] as n5,[44] as n44 from (select id_account,id_service,sum(sum_pay) as nach from vsum_circulate where period=" & q1 & " and id_provider=1042 group by id_account,period,id_service) p pivot(sum(nach) for id_service in ([1],[2],[19],[43],[33],[8],[12],[4],[5],[44])) as pvt)v5 on v5.id_account=v4.id_account left join (select id_account,[1] as n1,[19]+[43] as n2,[33] as n3,[8] as n8,[12] as n12,[2] as n02,[4] as n4,[5] as n5,[44] as n44 " _
& " from(select id_account,id_service,sum(out_balance) as nach from vsum_circulate where period=" & q1 & " and id_provider=1042 group by id_account,period,id_service) p pivot (sum(nach) for id_service in ([1],[2],[19],[43],[33],[8],[12],[4],[5],[44]) ) as pvt)v3 on v3.id_account=v4.id_account inner join vaccount_address va on va.id_account=v1.id_account left join (select   pp.id_account,left(p.Last_Name,30) as fam,left(p.First_Name,10) as imja,left(p.Second_Name,10) as vdch from (select  ad.id_account,max( pp.ID_Person) as ID_Person from dbo.Account_Property_Document ad,   dbo.Property_Document pd,   dbo.Property_Document_Person pp Where pd.ID_Property_Document=ad.ID_Property_Document and  pd.Expiration_Date is NULL and pd.ID_Property_Document=pp.ID_Property_Document  group by  ad.id_account) pp,dbo.Person p where   p.ID_Person=pp.ID_Person) AD on ad.id_account=v1.id_account order by va.street,va.full_house_name,va.full_flat_name"
 
list = "sheet1"
Call sel(stSQL, list, q1, k1)
 
  End If
End Sub
Добавлено через 5 минут
Спс хорошо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.10.2011, 14:11
Ответы с готовыми решениями:

проблема с выгрузкой данных
Если в бухгалтерии для бюджетных организаций произвести выгрузку платежного поручения (сервис обмен данными-->обмен данными с...

Проблема с выгрузкой из базы данных
Доброго времени суток. Помогите разобраться с выгрузкой текста из бд в Лейбл. Я хотел сделать так: Если условие opened не равно 0 ...

проблема сдоступом к БД через ADO в ASP: на ASP выдает ошибку что не может найти имя источника данных и драйвер
не могу подключиться к БД (которая лежит на сетевом диске) прописаной в ODBC через ASP хотя на VB6.0 тот же код работает отлично нормально...

2
0 / 0 / 0
Регистрация: 03.10.2011
Сообщений: 25
11.10.2011, 16:20  [ТС]
Или Может есть Другие идеи как выполнить через Exel долгий запрос к my sql server?
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
11.10.2011, 17:36
Ufo_log,
а как я у себя на компьютере могу создать такую ситуацию, чтобы код тестировать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.10.2011, 17:36
Помогаю со студенческими работами здесь

Проблема при подключении к Oracle 9i через ADO
Есть следующий пример кода: StrConnect ='Provider=OraOLEDB.Oracle.1;Password=mypwd;Persist Security Info=True;User ID=myusrid;Data...

Проблема с выгрузкой из clob в файл
Проблема такая: при выгрузке из clob в текстовый файл построчно скрипт вылетает с ошибкой записи в файл Сама выгрузка сделана по дяде...

Проблема с выгрузкой резидентной программы
Программа выводит звук разной частоты по нажатию на клавиши. Сделал через перехват 16-го прерывания, не уверен, на сколько это верно, но...

Проблема с выгрузкой товаров с сайта
Здравствуйте. Попросили посмотреть что за ошибка на сайте(Fatal error: Call to undefined function session_is_registered() in...

Проблема с загрузкой данных из Excel посредством ADO
В Excele есть столбец следующего вида: SKV (это название ) 10 12 13R 15B 18 Так вот, числа загружаются...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru