Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
72 / 64 / 3
Регистрация: 13.05.2010
Сообщений: 349

run-time error

27.03.2013, 19:16. Показов 2140. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго всем дня!
вопрос больше теоретический....
у меня есть дли-и-инный код VBA, данные выбираю из БД (динамически)
когда обрабатываю небольшой массив данных макрос отлично отрабатывает. но когда хочу обработать много данных приложение долго "висит", а потом похоже заново устанавливает связь с сервером (хотя выполняю всё непосредственно на сервере). такой вывод я сделала, потому что действия, которые должны происходить один раз происходят повторно.
вот у меня с самого начала такой код:
Visual Basic
1
2
3
4
5
6
     '  Главный модуль
Sub start()
    'Присоединение к БД, создание головного объекта API и объектов связи 
    Call OpenDB
 
    UserForm1.Show
так вот UserForm1 появляется 2 раза.
потом весь код повторно отрабатывается (с некоторыми ошибками числовых переменных - превышают допустимые пределы)
и в excel'e (а именно туда передаются данные) некоторые данные удвоены, а некоторые нет.

в общем суть моего вопроса в том - что бы мне сделать, чтобы соединение с сервером не прекращалось?
хотя по большому счету я в начале кода беру все необходимые данные. записываю их в массив и работаю дальше только с ним - т.е. связь с БД мне потом не нужна.....
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.03.2013, 19:16
Ответы с готовыми решениями:

Run-time error 9'
Помогите, пожалуйста, разобраться с ошибкой. Как сделать так, что бы в разных массивах (с разной размерностью и, соответственно, разными...

Run time error
Здравствуйте! Помогите разобраться. Вот такая программка. Выдается ошибка на строке "список3.RemoveItem 0" файл прилагается....

Run time error 13
Здравствуйте! Есть такой кусок кода Function Acos(ByVal a As Double) As Double If a = 1 Then Acos = 0 ElseIf a = -1 Then ...

9
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,576
27.03.2013, 21:05
Ksenya100, а что за база данных у вас, из которой вы берёте данные?
0
72 / 64 / 3
Регистрация: 13.05.2010
Сообщений: 349
28.03.2013, 13:39  [ТС]
БД в SQL'e
я тут оптимизировала немного код и теперь порог количества корректно обрабатываемых данных увеличился. но всё равно не является достаточным

может быть это связано с количеством производимых действий - нет ли где-то ограничения??
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,576
28.03.2013, 13:42
Ksenya100, "SQL" - это же язык запросов. Данные же у вас находятся не в языке запросов, а в какой-то программе.
0
72 / 64 / 3
Регистрация: 13.05.2010
Сообщений: 349
28.03.2013, 13:48  [ТС]
данные у меня находятся в базе данных (в MS SQL)
для подключения к БД в vba создается объект (который и хранит всю информацию)

может что-то ещё нужно пояснить..., спрашивайте (а то у меня код длинный рассказывать могу много. только вот что конкретно нужно?)
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,576
28.03.2013, 13:51
Ksenya100, напишите строки кода, которые вы используете, чтобы подключиться к базе данных.
0
72 / 64 / 3
Регистрация: 13.05.2010
Сообщений: 349
28.03.2013, 13:59  [ТС]
как я писала в первом посте подключаюсь к БД Call OpenDB
вот код
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
Sub OpenDB()
On Error Resume Next
    'Создание объектов связи с ситемой
    Set objEnvir = CreateObject("EOSENVIRONMENT.EAPIFactory")
    Set objParm = CreateObject("EOSENVIRONMENT.RawData")
    Set objNotify = CreateObject("EOSENVIRONMENT.Notifications")
    
    Set o_Нead = objEnvir.CreateHead
 
    If Err.Number <> 0 Then
        MsgBox ("Не удалось присоединиться к базе данных")
        
        Set objEnvir = Nothing
        'Сообщаем вызвавшему окну о завершении
        objNotify.Notify "w_wait_oper"
        Set objNotify = Nothing
        
        If objParm.keyexists("@@WordReuse@@") Then
            Set objParm = Nothing
       '     ActiveDocument.Close False
        Else
            Set objParm = Nothing
        End If
    End If    
End Sub
ну а после Open'a вызываю UserForm1 (которая при большом количестве данных появляется почему-то 2 раза)

естественно "Call OpenDB" у меня в коде 1 раз
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,576
28.03.2013, 14:03
Ksenya100, на Форуме есть раздел, связанный с "MS SQL Server". Попробуйте там что-то узнать, а какие-то детали VBA-кода можете потом уже здесь уточнить.

Вот ссылка на раздел "MS SQL Server":
https://www.cyberforum.ru/sql-server/
0
72 / 64 / 3
Регистрация: 13.05.2010
Сообщений: 349
28.03.2013, 14:46  [ТС]
значит моя мысль, что при совершении больше какого-то числа действий код vbа ведет себя неадекватно, в корне не правильна.?
ок, попробую поискать в этом разделе (про sql), спасибо за уделенное время
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,576
28.03.2013, 15:40
Цитата Сообщение от Ksenya100 Посмотреть сообщение
значит моя мысль, что при совершении больше какого-то числа действий код vbа ведет себя неадекватно, в корне не правильна.?
я не знаю, может кто-нибудь другой ответит на этот вопрос.

Просто у вас специфическая тема и нужно работать с базами данных, чтобы вам что-то подсказать по поводу базы данных. В этом разделе Форума обсуждается в основном "Excel", вряд ли вам в этом разделе что-то расскажут про "MS SQL Server".


Есть книга, посмотрите её, может что найдёте нужное:
Автор: Кузьменко В.Г.
Название: Программирование на VBA 2002
Глава: Глава 23. Работа с SQL Server.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.03.2013, 15:40
Помогаю со студенческими работами здесь

Run-time error 91 - MacOS
Система macOS High Sierra 10.13.6 Microsoft Excel for Mac 16.12 Я маркетолог, в макросы не умею совсем. Дали мне excel табличку,...

Ошибка: Run-time error '5'
Доброго времени суток! Совсем недавно занялась изучением VBA и столкнулась с проблемой. Имеется программа: Function krug(x As Double)...

Ошибка Run-time error '13'
При заполнении таблицы на 3-4 строке выскакивает вот это; 'общая стоимость Dim a As Currency a =...

Run-time error 1004
Добрый день! Сломала голову, выплывает ошибка. Есть аналогичный файл, с этим же кодом, там всё работает. В этом файле не хочет :( ...

Run-time error 432
Добрый день! С недавнего времени при попытке открыть форму с помощью команды ufCorrosion.Show появляется сообщение run-time error 432 File...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru