Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 28.02.2013
Сообщений: 45

Баг программы или простое незнание?

02.08.2018, 20:07. Показов 2967. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. У меня, по-сути, 2 вопроса и не могу понять - это я делаю что-то не так или программа у меня "тупит"?

1 - в конструкторе таблиц я к каждому полю в *Сообщение об ошибке* прописал текст, который должен вызываться при неправильном вводе данных. Соответственно, если что не так - она должна появляться, раньше у меня так и было и это точно. Но сейчас, когда я оставляю обязательное поле пустым, то выводится сообщение *Необходимо ввести значение в поле*[Таблица].[Поле]*, а если неправильный тип - соответствующая ошибка, но ни разу не то, что я прописал.

2 - выражение, которое я пытаюсь написать в поле формы. Дошёл уже до того, что создал отдельный запрос с функцией Count, чтобы высчитать количество полей. Сам ничего не ввожу, всё делаю кликами - Моя база > запросы > значение. В итоге получается * =[Количество]![Количество] *. Но когда включаю нормальный режим, появляется *#Имя?*. Около часа искал решение, нигде ничего путного не нашёл, разве что, возможно, библиотека DAO "отпала", но в своей версии, 2010, я не знаю как это исправить.

Что скажете, это баги программы или я что-то не так делаю?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.08.2018, 20:07
Ответы с готовыми решениями:

Баг программы или как его исправить
вылазят два бага : 1) если я еще не нажал кнопку сформировать матрицу ,а сразу жму система уравнений,то вылетает вот такая ошибка (см фото...

std::regex : баг на сайте или баг компилятора?
http://en.cppreference.com/w/cpp/regex/regex_match этот код выкидывает throw... Добавлено через 35 секунд компилятор gcc 4.8

Баг asio? или баг TCP стека?
всем привет. повстречался с очень странным багом. и не могу определить кто бажит, asio, или TCP-стек. на стороне клиента,...

8
Эксперт MS Access
 Аватар для Eugene-LS
12358 / 5865 / 1501
Регистрация: 05.10.2016
Сообщений: 16,473
02.08.2018, 20:14
Цитата Сообщение от Sergey56 Посмотреть сообщение
это баги программы или я что-то не так делаю?
И то, и другое....

А пока:
Почитайте пожалуйста Правила раздела, и старайтесь, насколько это возможно, следовать им.
0
0 / 0 / 0
Регистрация: 28.02.2013
Сообщений: 45
03.08.2018, 06:48  [ТС]
1. Я хочу, чтобы при ошибках заполнения таблицы новыми записями с формы (да и вообще новыми записями фоть в самой таблице), появлялось нормальное сообщение, типа, *Введите ФИО участника*, а не *Необходимо ввести значение в поле*[Таблица].[Поле]*. Для этого я в самой таблице написал текст к ошибке и в самих полях формы написал текст ошибки, но не помогло.
2. Так как я хочу сделать АИС модальными окнами, я убрал панель навигации основной формы и таблицы к ней, взамен этому хочу вывести отдельное поле с общим количеством записей в той же таблицы. Пробовал в данных поля писать выражения, в итоге промучился долго, а пишет *#Имя?*. Создал простой запрос с количеством записей, хотел его поле хотя бы взять, но та же проблема.
Вложения
Тип файла: rar База.rar (30.5 Кб, 1 просмотров)
0
Эксперт MS Access
 Аватар для Eugene-LS
12358 / 5865 / 1501
Регистрация: 05.10.2016
Сообщений: 16,473
03.08.2018, 07:11
Лучший ответ Сообщение было отмечено Sergey56 как решение

Решение

Цитата Сообщение от Sergey56 Посмотреть сообщение
Я хочу, чтобы при ошибках заполнения таблицы новыми записями с формы ...
В какой форме (из нескольких) и по каким условиям вам показать пример решения?

Цитата Сообщение от Sergey56 Посмотреть сообщение
взамен этому хочу вывести отдельное поле с общим количеством записей в той же таблицы.
"Отдельное поле" ... с общим количеством записей - Где?!

Не забывайте пожалуйста называть имена объектов для ваших "хотелок".

На форуме, далеко не все обладают телепатическими способностями ...

О! - кажется нашел!
Вместо:
=[Количество судей]![Количество]
Напишите:
=DCount("*";"Судьи")

Покажет: 7 (из примера)
1
Эксперт MS Access
 Аватар для Eugene-LS
12358 / 5865 / 1501
Регистрация: 05.10.2016
Сообщений: 16,473
03.08.2018, 07:25
Лучший ответ Сообщение было отмечено Sergey56 как решение

Решение

Sergey56, Here you are!
Форма "Добавление нового судьи" - кнопка с и конкой выхода ...
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub cmdSaveAndClose_Click()
'Поверка значений полей
    If IsNull(Me!ФИО) Then
        MsgBox "Имя судьи не установлено!", vbExclamation, "Недостаточно данных"
        Me!ФИО.SetFocus
        Exit Sub
    End If
     
'ID_соревнования
    If Me!Список5.ListIndex = -1 Then
        MsgBox "Соревнование не установлено!", vbExclamation, "Недостаточно данных"
        Me!Список5.SetFocus
        Exit Sub
        
    End If
     
 'Закрытие формы с сохранением
    DoCmd.Close acForm, Me.Name, acSaveYes ' Закрытие текущей
    'DoCmd.OpenForm "FormName"             ' Открытие другой формы
End Sub
Вложения
Тип файла: rar База_v02.rar (30.6 Кб, 4 просмотров)
1
0 / 0 / 0
Регистрация: 28.02.2013
Сообщений: 45
03.08.2018, 08:49  [ТС]
Спасибо. Я не стал подробно писать формы, т.к. я и так убрал всё ненужное.

=DCount("*";"Судьи") очень помогло, правда жаль, что выражение не смог SQL-запросом построить, нужно более глубоко копать.

Логику кода я тоже понял, это то, что нужно! Безусловно, более сложный метод для меня, чем с макросами, но возможности лучше. Переписал код проверок на кнопку *Добавить* и под конец *Me.requery Me.refresh* для обновления формы. Что странно, при верных введённых данных форма обновляется и поля готовы к новой записи, таблица тоже обновляется, но если данные неверны, то и форма не обновляется. Это странно, но работает, спасибо большое, очень помогли =)
0
Эксперт MS Access
 Аватар для Eugene-LS
12358 / 5865 / 1501
Регистрация: 05.10.2016
Сообщений: 16,473
03.08.2018, 09:05
Цитата Сообщение от Sergey56 Посмотреть сообщение
правда жаль, что выражение не смог SQL-запросом построить, нужно более глубоко копать.
Там третий аргумент в DCount() принимает условия запроса (без WHERE) .
Например:
=DCount("*";"Судьи";"[ID_соревнования]>3")

Добавлено через 4 минуты
Цитата Сообщение от Sergey56 Посмотреть сообщение
и под конец *Me.requery Me.refresh* для обновления формы.
Это, кстати, частая ошибка невнимательных разработчиков ...
Метод Refresh = Туда (в базу)
Метод Requery = Обратно (из базы)

Особенно смешно когда некоторые пытаются употреблять Refresh после Requery - ну логики-же нет!
Документацию же читать надо! (это я не конкретно вам - а вообще... )
0
0 / 0 / 0
Регистрация: 28.02.2013
Сообщений: 45
03.08.2018, 13:11  [ТС]
Ну, это я с этой темы нашёл. Спасибо, поменяю местами.
Как обновить форму из VBA?
0
Эксперт MS Access
 Аватар для Eugene-LS
12358 / 5865 / 1501
Регистрация: 05.10.2016
Сообщений: 16,473
03.08.2018, 13:30
Цитата Сообщение от Sergey56 Посмотреть сообщение
Ну, это я с этой темы нашёл. Спасибо, поменяю местами.
Там не правильно!

Метод Repaint - это тупая перерисовка формы на экране.
Я так понимаю, что с английским языком вы не "дружите", т.к. названия упомянутых методов имеют вполне конкретные и внятные переводы в русском.

Итак:
Refresh = "Обновить"(англ.) - немедленная (принудительная) запись данных в источник данных (Формы)
Requery = "Перезапросить"(англ.) - немедленное (принудительное) обновление данных по источнику данных (Формы)

Надеюсь был понятен.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.08.2018, 13:30
Помогаю со студенческими работами здесь

Забавный баг Делфи ...или не баг?
кароч кидаем на форму 2 editа и кнопку и пишем такой код unit Unit1; interface uses Windows, Messages, SysUtils, Variants,...

Letter-spacing баг или не баг?
Здравствуйте! Использовал letter-spacing для увеличения расстояния между буквами. Как оказалось расстояние появилось и после последней...

Незнание ООП)
Я сделал по ООП модели два юнита, которые сражаются друг с другом до тех пор, пока один не победит(HP одного из них станет равно нулю). ...

Сила тока (незнание закона Ома)
ЮСБ дает выходную силут ока 0.5А, есть зарядные которые дают силу тока 1+ А. ПО идее если я возьму за 2 два провода + и - меня должно убить

Незнание как выводить messageDialog из любого класса
Хочу отслеживать string переменную при вызове JOptionPane.showMessageDialog(Component component, String message) проблемы с...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
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. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru