0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 41

Ошибка БД на разных компьютерах

13.01.2015, 10:52. Показов 1683. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, уважаемые! Помогите, пожалуйста, решить вопрос.
У меня создана большая БД с записями. На форме созданы кнопки перехода по записям. Предусмотрено, что при нахождении на первой записи и нажатии на кнопку Предыдущая запись, форма должна переходить на последнюю запись, а при нахождении на последней записи и нажатии на кнопку Следующая, должна показываться первая запись. На моём домашнем компьютере кнопки работают без нареканий, но на рабочем компе выдаётся ошибка 2105 "Невозможен переход к указанной записи" и выделяется строка 12 DoCmd.GoToRecord , , acPrevious. В чём может быть проблема и как её решить? И там и там стоит Винда 7, Оффис 7. Создавала базу на рабочем компе в начале года, всё, вроде, работало. Код на кнопке Предыдущая запись представлен ниже
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub Key_PreviousRecord_Click()
On Error GoTo Err_Key_PreviousRecord_Click
 
    If Me.Dirty = True Then
        If MsgBox("Сохраните изменения", vbOKCancel, "Adm") = vbOK Then
            Cancel = True
        Else
            Me.Undo
            DoCmd.GoToRecord , , acPrevious
        End If
    Else: Me.Dirty = False
          DoCmd.GoToRecord , , acPrevious
    End If
 
Err_Key_PreviousRecord_Click:
    If Err.Number = 2105 Then
        DoCmd.GoToRecord , , acLast
    End If
End Sub
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.01.2015, 10:52
Ответы с готовыми решениями:

AlphaControls на разных компьютерах
Всем привет! Установил компонент AlphaControls. У себя на компьютере запускаю программу все норм скин прикольный, но на другом...

Serversocket и clientsocket на разных компьютерах
Знаю, что тема заезжена и знаю, что нужно пользоваться поиском, но если кому-то не сложно напишите, что нужно сделать чтобы clientsocket на...

Одновременная установка ПО на разных компьютерах
Такой вопрос есть 20 компьютеров с Windows 7, объединенных в сеть. Необходимо на все установить одну программу. Возможно ли сделать это...

13
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
13.01.2015, 11:23
Код сомнительный.
Строка 6 Cancel - что это такое, переменная не объявлена. По всей видимости скопировано из BeforeUpdate.
Строка 11 Else: - это метка такая?
0
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 41
13.01.2015, 11:39  [ТС]
ltv_1953, Чем код сомнительный? Строка 6 Cancel - если были изменения на форме, то выдаётся сообщение "Сохраните изменения", если нажимается ОК, то курсор остаётся на записи (чтобы сохранить запись по нажатию на кнопку Сохранить), если нажимается Отмена, то осуществляется переход на предыдущую запись без сохранения изменения.
И у меня проблема в том, что Аксесс игнорирует запись
Visual Basic
1
2
3
If Err.Number = 2105 Then
        DoCmd.GoToRecord , , acLast
    End If
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
13.01.2015, 11:47
Попробуйте такой (хотя сам стиль написания для меня неприемлем)
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Key_PreviousRecord_Click()
On Error GoTo Err_Key_PreviousRecord_Click
    If Me.Dirty Then
        If MsgBox("Ñîõðàíèòå èçìåíåíèÿ", vbOKCancel, "Adm") = vbOK Then
           Me.Dirty = False
        Else
            Me.Undo
        End If
    End If
    DoCmd.GoToRecord , , acPrevious
Exit Sub
 
Err_Key_PreviousRecord_Click:
    If Err.Number = 2105 Then
        DoCmd.GoToRecord , , acLast
    End If
End Sub
0
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 41
13.01.2015, 12:03  [ТС]
Не помогло, всё так же вылетает ошибка 2105

Добавлено через 41 секунду
В предложенном Вами случае, Аксесс по умолчанию сохраняет или не сохраняет запись, а мне нужно, чтобы при необходимости сохранения, аксесс ОСТАВАЛСЯ на текущей записи, чтобы пользователь нажимал кнопку Сохранить, для меня нажатие этой кнопки принципиально, так как по ней происходит проверка введённых данных и заполнения полей.

Добавлено через 6 минут
И повторюсь, на домашнем компе мой код РАБОТАЕТ без проблем
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
13.01.2015, 12:15
Цитата Сообщение от AlenkaNS Посмотреть сообщение
И повторюсь, на домашнем компе мой код РАБОТАЕТ без проблем
Угу. Базу выложите для подтверждения.
И формулируйте условия точно -
Цитата Сообщение от AlenkaNS Посмотреть сообщение
а мне нужно, чтобы при необходимости сохранения, аксесс ОСТАВАЛСЯ на текущей записи
Где это было написано ранее?
Впрочем, никаких ошибок не вылетает с этой заморочкой, ищите в других процедурах.
Вложения
Тип файла: zip Database91.zip (23.2 Кб, 4 просмотров)
0
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
13.01.2015, 12:19
Цитата Сообщение от AlenkaNS Посмотреть сообщение
Не помогло, всё так же вылетает ошибка 2105
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
ON Error GOTO Err_Key_PreviousRecord_Click
 
    IF Me.Dirty = TRUE THEN
        IF MsgBox("Сохраните изменения", vbOKCancel, "Adm") = vbOK THEN
                Cancel = TRUE
        Exit sub
        ELSE
            Me.Undo
        END IF
    
    END IF
 
DoCmd.GoToRecord , , acPrevious 
 
Err_Key_PreviousRecord_Click:
    IF Err.Number = 2105 THEN
        DoCmd.GoToRecord , , acLast
    END IF
а так, если не поможет - нужно закомментить онеррор
и посмотреть какая строка в коде выдает ошибку
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
13.01.2015, 12:25
Ну зачем повторять этот странный код
Visual Basic
1
2
3
4
5
6
DoCmd.GoToRecord , , acPrevious 
 
Err_Key_PreviousRecord_Click:
    IF Err.NUMBER = 2105 THEN
        DoCmd.GoToRecord , , acLast
    END IF
Без Exit Sub перед обработкой ошибки он всегда будет выполняться (была ошибка или нет).
0
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
13.01.2015, 12:31
у меня работает и ваш вариант и такой
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ON Error GOTO Err_Key_PreviousRecord_Click
 
    IF Me.Dirty = TRUE THEN
        IF MsgBox("Сохраните изменения", vbOKCancel, "Adm") = vbOK THEN
        Exit Sub
        ELSE
            Me.Undo
        END IF
    
    END IF
 
DoCmd.GoToRecord , , acPrevious
 
Err_Key_PreviousRecord_Click:
    IF Err.Number = 2105 THEN
        DoCmd.GoToRecord , , acLast
    END IF
Добавлено через 3 минуты
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Ну зачем повторять этот странный код
я так понял что именно этот код DoCmd.GoToRecord , , acPrevious и должен вызывать ошибку 2105 и далее идет ее обработчик
вставив Exit Sub мы прерываем процедуру до перехода на предыдущую запись. но только в том случае когда пользователь решил сохранить изменения
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
13.01.2015, 12:40
Есть две схемы обработки ошибок. Здесь такая: строка
Visual Basic
1
ON Error GOTO Err_Key_PreviousRecord_Click
обеспечивает переход по метке в ней указанной при появлении любой ошибки после того, как эта строка выполнилась. С метки начинается
Visual Basic
1
Err_Key_PreviousRecord_Click:
начинаеися обработчик ошибок. Принято писать программы так, чтобы в обработчик ошибок попадали только при возникновении ошибки. В этом простом случает ничего страшного не произойдет, но когда есть несколько обработчиков, включаемых в разных местах программы, могут начаться "чудеса".
0
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 41
13.01.2015, 12:44  [ТС]
Извините, ещё раз повторюсь. У меня мой код тоже РАБОТАЕТ на домашнем компьютере, но на рабочем компе код не работает. Даже, если убрать часть с проверкой изменения и оставить только:
Visual Basic
1
2
3
4
5
6
7
ON Error GOTO Err_Key_PreviousRecord_Click
DoCmd.GoToRecord , , acPrevious 
 
Err_Key_PreviousRecord_Click:
    IF Err.NUMBER = 2105 THEN
        DoCmd.GoToRecord , , acLast
    END IF
код всё равно не работает, всё равно выдаётся ошибка 2105 при переходе с первой записи. И я не понимаю почему.

Выложить БД не могу, она очень большая.
0
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
13.01.2015, 12:48
посмотрите на том компьютере, где идет ошибка, может в референсах
есть ошибки при подключении разных библиотек
там будет написано "миссинг"
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
13.01.2015, 12:58
Лучший ответ Сообщение было отмечено AlenkaNS как решение

Решение

Скорее уж здесь: VBA-Tools-Options-General отмечено в Error Trapping первое - Break on All Errors (на картинке отмечено, как нужно ... )
Миниатюры
Ошибка БД на разных компьютерах  
2
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 41
13.01.2015, 13:10  [ТС]
Написала такой код для проверки:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Key_PreviousRecord_Click()
On Error GoTo Err_Key_PreviousRecord_Click
MsgBox ("Bla11")
DoCmd.GoToRecord , , acPrevious
 
Err_Key_PreviousRecord_Click:
MsgBox ("Bla22")
    If Err.Number = 2105 Then
        MsgBox ("Bla33")
        DoCmd.GoToRecord , , acLast
    End If
MsgBox ("Bla44")
End Sub
Если стою на записи 2 и нажимаю Предыдущая запись, то появляются сообщения Bla11, Bla22 и Bla44.
Если стою на записи 1 и нажимаю Предыдущая запись, то появляются сообщение только Bla11

Добавлено через 6 минут
ltv_1953, дай Бог вам счастья безграничного и богатства неисчерпаемого! Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.01.2015, 13:10
Помогаю со студенческими работами здесь

Загрузка ОС с флешки на разных компьютерах
Всем добрый день ... Разрабатываем программное обеспечение (ПО). Разрабатываемое ПО использует приличный набор сторонних библиотек,...

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

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

Сервис не работает на разных компьютерах
есть дуплексный клиент-сервер. типа чатик. проблема в том, что на localhost всё прекрасно работает, как только я заменяю localhost на...

QTcpServer не работает на разных компьютерах
Доброго времени суток. Сейчас пытаюсь вникнуть в сетевое программирование на Qt. Для тренировки взял исходник Fortune клиента и сервера (из...


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

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

Новые блоги и статьи
Хак домофона или как открыть дверь по номеру
yariko 25.06.2025
Забыли дома ключ. Не проблема. Можно открыть дверь домофона, просто позвонив на свой номер квартиры. Идея состоит в следующем. Внутрь трубки абонента встраивается контроллер, который по звонку сам. . .
Как украсить новогоднюю елку с Q# и Qiskit
EggHead 24.06.2025
Что может быть необычнее, чем применить законы квантовой механики для украшения новогодней елки? Пока другие развешивают обычные гирлянды, я решил объединить свою страсть к квантовым вычислениям с. . .
Системы нулевого доверия на C#
UnmanagedCoder 24.06.2025
Традиционная архитектура безопасности работает по принципу средневекового замка: создаём высокие стены вокруг корпоративной сети, укрепляем ворота межсетевыми экранами и системами обнаружения. . .
Снова не мой путь. Циклическое среднее, я обеими руками за проверку условия, в ракурсе данной задачи - циклическое среднее в топку.
Hrethgir 24.06.2025
Привет. Такой вопрос - нужно выводить среднее математическое между двумя направлениями, интервал значений которых может лежать в диапазоне одного оборота по кругу. Проблема заключается в том, что. . .
Деплой Flask приложения
py-thonny 23.06.2025
За годы работы с Flask я натыкался на одни и те же грабли достаточно часто, чтобы наконец научится их обходить. И сегодня хочу поделится опытом, который сбережет вам немало нервных клеток. Начнем с. . .
WebAssembly и контейнеры в .NET Aspire для оркестрации распределенных архитектур
ArchitectMsa 23.06.2025
Я наблюдаю, как WebAssembly (или просто WASM) постепенно выходит за рамки своего первоначального предназначения — исполнения кода на стороне браузера. Теперь эта технология проникает в серверную. . .
Непрерывная интеграция для пакета Python
Mr. Docker 22.06.2025
Было 4 часа утра пятницы, когда я выпустил новую версию нашей внутренней библиотеки для обработки данных. Релиз 0. 5. 2 содержал небольшой фикс для обработки дат в ISO формате, что может пойти не так?. . .
Продвинутый ETL на C# из OLTP БД в хранилище
stackOverflow 22.06.2025
Работая в сфере корпоративной аналитики, я постоянно сталкиваюсь с одним и тем же - нужны чистые, структурированные и, главное, свежие данные. Без них современные аналитические системы, машинное. . .
Мастер-класс по микросервисам на Node.js
Reangularity 21.06.2025
Node. js стал одной из самых популярных платформ для микросервисной архитектуры не случайно. Его неблокирующая однопоточная модель и событийно-ориентированный подход делают его идеальным для. . .
Управление Arduino из WPF приложения
Wired 21.06.2025
Зачем вообще связывать Arduino с WPF-приложением? Казалось бы, у Arduino есть собственная среда разработки, своя экосистема, свои способы управления. Однако при создании серьезных проектов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru