0 / 0 / 0
Регистрация: 12.02.2015
Сообщений: 6
1

Ускорить работу dcount

17.08.2015, 15:07. Показов 1138. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется таблица1. Необходимо найти в этой таблице в поле связь самое большое натуральное число, которого в этой таблице нет. Код реализации написал снизу. Проблем никаких нет пока записей не приближаетсяк 10 тысячам. При количестве записей 10 тысяч, мой компьютер может подвиснуть на минуту и больше, а нужно, чтобы это делалось за секунду. Можно ли как-то ускорить этот процесс?

asdf.rar

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Option Compare Database
 
Private Sub Кнопка0_Click()
On Error Resume Next
        Dim svyaz As String
        svayz = 0
        RecordCount = 1
        Do Until RecordCount = 0
            svayz = svayz + 1
            RecordCount = DCount("Код", "Таблица1", "[связь]=" & svayz)
            ''Dim temp5 As String
            ''Set rst = "SELECT Count (Связи.КодСвязи) FROM Связи WHERE (((Связи.Связь)=" & svayz & "))"
            ''temp5 = "SELECT Count (Связи.КодСвязи) FROM Связи WHERE (((Связи.Связь)=" & svayz & "))"
            '''recordcount = CurrentProject.Connection.Execute(temp5).Fields(0)
            ''recordcount = CurrentDb.OpenRecordset(rst).recordcount
        Loop
 
End Sub
Если стоит вопрос зачем нужно именно это поле - отвечаю. У меня через эту таблицу сделаны связи полей из разных таблиц. По другому пока сделать не получилось
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.08.2015, 15:07
Ответы с готовыми решениями:

DCount и дата
Добрый вечер, необходима помощь с DCount. Такая ситуация: в форме необходимо вывести количество...

Правильное оформление Dcount
Добрый день форумчане, подскажите пожалуйста, как правильно оформить текст в условии dcount. ...

DMax, DCount... в отчетах
Как подсчитать с помощью этих функций значения, сославшись на свой набор данных? Именно какой...

DCount возвращает NULL
Здравствуйте ,есть вычисляемое поле NumPlaces в запросе,но в случае если в таблице Tickets нет...

5
Модератор
Эксперт MS Access
12106 / 4966 / 791
Регистрация: 07.08.2010
Сообщений: 14,602
Записей в блоге: 4
17.08.2015, 16:32 2
вы бы лучше базу выложили ---иначе недопонимание задачи
====
надо посмотреть
--какие числа набиты
--как работает ваш вариант модуля


непонятки --это строка или число
Visual Basic
1
2
3
4
Dim svyaz As String
        svayz = 0
        ''''''''''''''''''''''''
            svayz = svayz + 1
0
0 / 0 / 0
Регистрация: 12.02.2015
Сообщений: 6
17.08.2015, 17:23  [ТС] 3
Цитата Сообщение от shanemac51 Посмотреть сообщение
вы бы лучше базу выложили ---иначе недопонимание задачи
Этого сделать не могу.

В таблице1 кодуп - числовой, название - текстовое поле, связь - числовое.
кодуп - натуральные числа примерно от 0 до 10000
связь - натуральные числа от 0 до 10 тысяч возможно и больше

asdf2.rar

Вот выложил ещё один пример. В базе данных у меня куча разного оборудования. И в таблице связей я записываю какое оборудование куда подключено. Оборудование в находится в разных таблицах, таблицы могут новые появляться.

Цитата Сообщение от shanemac51 Посмотреть сообщение
непонятки --это строка или число
Число, опечатался
0
0 / 0 / 0
Регистрация: 12.02.2015
Сообщений: 6
17.08.2015, 17:49  [ТС] 4
Забил базу данных данными. Теперь при нажатии кнопки видны тормоза

asdf3.rar
0
Эксперт MS Access
26818 / 14497 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
17.08.2015, 18:43 5
Насколько я понял из кода, ищется первый незанятый номер для связи обусловленной ПолемСоСписком1 и ПолемСоСписком3 на Form1. Если так, то с помощью дополнительной таблицы Nomer, содержащей непрерывный ряд натуральных чисел, можно сделать запрос, отдающий именно этот номер
SQL
1
2
3
4
5
6
7
SELECT TOP 1 q1.id
FROM Nomer AS q1 LEFT JOIN 
  (SELECT * FROM связи WHERE связи.кодуп 
     IN (Forms!Form1!ПолеСоСписком1,Forms!Form1!ПолеСоСписком3))  AS q2 
ON q1.id=q2.связь
WHERE q1.id<=dmax("связь","связи","кодуп=" & Forms!Form1!ПолеСоСписком1 & " or кодуп=" & Forms!Form1!ПолеСоСписком3)+1 
AND q2.связь IS NULL
В процедуре Кнопка0_Click находится значение незанятой связи из запроса и подставляется в запросы вставки
Вложения
Тип файла: rar asdf3.rar (66.7 Кб, 4 просмотров)
1
Модератор
Эксперт MS Access
12106 / 4966 / 791
Регистрация: 07.08.2010
Сообщений: 14,602
Записей в блоге: 4
17.08.2015, 18:49 6
при помощи обычного итогового запроса ---форма 2
Вложения
Тип файла: zip asdf3.zip (75.7 Кб, 9 просмотров)
1
17.08.2015, 18:49
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.08.2015, 18:49
Помогаю со студенческими работами здесь

DCount в вычисляемом поле на форме
Добрый день. Ну подскажите, плиз, глупый вопрос... Есть основная форма, в ней - подчиненная...

DCount ошибка с текстовой переменной
Здравствуйте. Подскажите пожалуста где ошибка, не хочет работать с текстовой переменной If...

При вычислении DCount зависает Access
Здравствуйте! На одном из компьютеров стала зависать программа при вычислении DCount(&quot;полис&quot;,...

Счет Если или dcount в табличной форме
Всем доброго времени суток, столкнулся с такой проблемой что надо суммировать в табличной форме...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Интеграция Arduino и ChatGPT: Практическое руководство
InfoMaster 16.01.2025
В современную эпоху технологических инноваций интеграция искусственного интеллекта с микроконтроллерами открывает принципиально новые возможности для создания умных устройств и автоматизированных. . .
Как создать робота, управляемого ChatGPT
InfoMaster 16.01.2025
Концепция проекта В современную эпоху искусственный интеллект и робототехника становятся все более доступными для энтузиастов и разработчиков. Создание роботизированной руки, управляемой ChatGPT,. . .
Как создать ChatGPT бота в Telegram на Python
InfoMaster 16.01.2025
В современном мире технологии искусственного интеллекта становятся все более доступными для разработчиков, открывая новые возможности для создания умных и интерактивных приложений. Одним из самых. . .
Машинное обучение с помощью Python
InfoMaster 16.01.2025
Машинное обучение стало неотъемлемой частью современных технологий, позволяя компьютерам учиться на основе данных и принимать решения без явного программирования. В сочетании с языком. . .
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru