powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обновляется только одна запись, остальные блокируются
20 сообщений из 20, страница 1 из 1
Обновляется только одна запись, остальные блокируются
    #39651799
valerian_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

У меня много лет работала программка на Access 2003 под WIN ХР , в которой обновлялась присоединённая таблица командой
dbs.Execute "UPDATE SPC1_TRANSBILL SET PR_DBF='t" & nviza1 & "' WHERE NVIZA =" & nviza1 & ";"

Этой командой обновлялись все(!) записи присоединённой таблице. Проблем никогда не было.

После перехода на Access 2010 под WIN 7 эта команда стала обновлять только одну(!) запись по условиям

Сделал и программно и вручную запрос на обновление, с такой же командой, с конкретным параметром nviza1:

UPDATE SPC1_TRANSBILL SET SPC1_TRANSBILL.PR_DBF= 't5168'
WHERE SPC1_TRANSBILL.NVIZA=5168;

При нажатии "выполнить"(запрос) появляется окно сообщения



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

p.s. в настройках ACCESS в "Блокировки по умолчанию" отмечал и "Отсутствует" и "Изменяемой записи"
Так же ставил и снимал флажок "Открытие БД с использованием блокировки на уровне записей".
У запроса ставил "Блокировка записей отсутствует". (ACCESS после этого закрывал-открывал, таблицу переприсоединял)
Ничего не изменялось, всё так же обновляет только одну запись.
...
Рейтинг: 0 / 0
Обновляется только одна запись, остальные блокируются
    #39651842
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
valerian_1,
стесняюсь спросить: а сколько записей в которых SPC1_TRANSBILL.NVIZA=5168
...
Рейтинг: 0 / 0
Обновляется только одна запись, остальные блокируются
    #39651873
valerian_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,
5168 - это просто для примера.
И записей по "5168" 7шт.
Но обновляется одна, остальные 6шт. я сам же каким-то образом блокирую, получается.
Что и выдаётся в сообщении.
В Accesse 2003 обновлялись все, сколько было по условию. Сейчас только одна, независимо сколько их.

Если зациклить и добавить условие PR_DBF IS NULL, чтобы не обновлялась всё время одна и та же,
то в конце концов обновятся все записи, но это ж не выход, а костыль
...
Рейтинг: 0 / 0
Обновляется только одна запись, остальные блокируются
    #39651891
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если хотите обновить все записи:
Код: vbnet
1.
2.
3.
Private Sub cmb_Click()
CurrentDb.Execute "UPDATE tbl SET ctl1 = 'f ' & ctl"
End Sub

Если отобранные по критерию:
Код: vbnet
1.
2.
3.
4.
5.
Private Sub cmb_Click()
Dim a
a = InputBox("Kriterii")
CurrentDb.Execute "UPDATE tbl SET ctl1='f " & a & "' WHERE ctl=" & a
End Sub
...
Рейтинг: 0 / 0
Обновляется только одна запись, остальные блокируются
    #39651895
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в 2007 все работает про 2010 не знаю
...
Рейтинг: 0 / 0
Обновляется только одна запись, остальные блокируются
    #39651901
valerian_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,
2007-й рядом, на другом ПК. То же самое, одна запись обновляется
p.s. вы мне написали, по сути, ту же команду, что и у меня
...
Рейтинг: 0 / 0
Обновляется только одна запись, остальные блокируются
    #39652001
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuв 2007 все работает про 2010 не знаюvalerian_1sdku,
2007-й рядом, на другом ПК. То же самое, одна запись обновляется
p.s. вы мне написали, по сути, ту же команду, что и у менявывод:"суть" не одинакова,в чем-то отличие (чудес не бывает)
...
Рейтинг: 0 / 0
Обновляется только одна запись, остальные блокируются
    #39652240
valerian_1, во время выполнения запроса таблица используется в другом месте?
Поле, которое вы обновляете, участвует в связях с другими таблицами?
...
Рейтинг: 0 / 0
Обновляется только одна запись, остальные блокируются
    #39652261
valerian_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов Анатолий,
нет. И в этой стороне не нужно искать.
Скорее всего где-то что-то в настройках Access, т.к., ещё раз отмечаю, что в 2003 обновлялись все записи одной командой, а теперь в 2010 только одна.
...
Рейтинг: 0 / 0
Обновляется только одна запись, остальные блокируются
    #39652428
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
valerian_1,

как вариант, если грешите на настройки и вы все проверили, что я писал ранее.
Тупо импортировать в новую БД 2010.

Потому как где то в трех соснах блуждание.
...
Рейтинг: 0 / 0
Обновляется только одна запись, остальные блокируются
    #39653097
valerian_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игортан,
Что импортировать?
Программу 2003 в 2010?
Так я по сути так и сделал. Текст программы перенёс(не импортировал), только в объявлениях дописал DAO
Dim dbs As DAO.Database, rec As DAO.Recordset
и всё
...
Рейтинг: 0 / 0
Обновляется только одна запись, остальные блокируются
    #39653359
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
valerian_1,

Да, я имел ввиду импортировать ВСЕ объекты из "плохой" бд.

У меня еще было пару раз - кривой офис...
...
Рейтинг: 0 / 0
Обновляется только одна запись, остальные блокируются
    #39653386
valerian_1...в которой обновлялась присоединённая таблица командой
dbs.Execute "UPDATE SPC1_TRANSBILL SET PR_DBF='t" & nviza1 & "' WHERE NVIZA =" & nviza1 & ";" А ваша присоединённая таблица часом не DBF файл? Если угадал, то, судя по длинному имени таблицы, используется драйвер BDE. Может в нем собака порылась?
Если импортировать данные и применить к ним запрос, то какой результат?
...
Рейтинг: 0 / 0
Обновляется только одна запись, остальные блокируются
    #39656208
valerian_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов Анатолий,
Нет, длинное имя таблицы - это потому что впереди "алиас"(или как там правильно называется)
Пользователь, если применительно к этому написанию имени таблицы.
Сразу напишу, что у этого пользователя "SPC1" есть все права на изменение таблиц("основной" пользователь)

p.s. присоединённый файл(!) dbf у меня в программке тоже есть, но с ним всё нормально работает(чуть выше в программе).
в него делаю INSERT считанных SELECTом данных из другой присоединённой таблицы той же БД (ORACLe).
...
Рейтинг: 0 / 0
Обновляется только одна запись, остальные блокируются
    #39656252
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
valerian_1Кривцов Анатолий,
Нет, длинное имя таблицы - это потому что впереди "алиас"(или как там правильно называется)
Пользователь, если применительно к этому написанию имени таблицы.
Сразу напишу, что у этого пользователя "SPC1" есть все права на изменение таблиц("основной" пользователь)

p.s. присоединённый файл(!) dbf у меня в программке тоже есть, но с ним всё нормально работает(чуть выше в программе).
в него делаю INSERT считанных SELECTом данных из другой присоединённой таблицы той же БД (ORACLe).откройте таблицу режиме конструктора и скриншот выложите сюда.
...
Рейтинг: 0 / 0
Обновляется только одна запись, остальные блокируются
    #39656296
valerian_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прогер_самоучка,
В строчке "Описание"
ODBC;DSN=cp1;UID=spc1;DBQ=CP1;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=F;RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=256000;TLO=O;MLD=0;ODA=F;;TABLE=SPC1.TRANSBILL
...
Рейтинг: 0 / 0
Обновляется только одна запись, остальные блокируются
    #39656305
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
valerian_1 ....что у этого пользователя "SPC1" есть все права на изменение таблиц("основной" пользователь)... таки "SPS1" это пользователь или имя таблицы?
...
Рейтинг: 0 / 0
Обновляется только одна запись, остальные блокируются
    #39656312
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
valerian_1Прогер_самоучка,
В строчке "Описание"
ODBC;DSN=cp1;UID=spc1;DBQ=CP1;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=F;RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=256000;TLO=O;MLD=0;ODA=F;;TABLE=SPC1.TRANSBILL

я стесняюсь спросить... а нельзя было ли показать таблицу так, чтобы видно было все поля?
valerian_1
Код: sql
1.
SET PR_DBF

и желательно встать на поле, с которым проблемы, чтобы увидеть свойства "общие".
А то по вашему скрину такого поля даж не существует в вашей таблице...
...
Рейтинг: 0 / 0
Обновляется только одна запись, остальные блокируются
    #39656315
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuvalerian_1 ....что у этого пользователя "SPC1" есть все права на изменение таблиц("основной" пользователь)... таки "SPS1" это пользователь или имя таблицы?смотрите скрин, вопросы исчезнут :)
...
Рейтинг: 0 / 0
Обновляется только одна запись, остальные блокируются
    #39656420
valerian_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прогер_самоучка,
Прилагаю полный скрин.
Думал вам интересна только строчка "Описание", т.к., считаю, что от поля, которое я обновляю ничего не зависит, потому что оно же обновляется. Проблема только в том, что обновляется одна запись.
А если добавить условие и зациклить UPDATE, то по порядку обновляются все нужные мне строки таблицы.
Что я и сделал, и ошибка теперь не выдаётся, всё работает. Но это костыль, и лишние обращения к БД.
Да и просто интересно всё таки понять, почему в ХР обновлялись все записи одной командой, а в 2007 и 2007 только одна.

SPC1 - это пользователь. Имя таблицы TRANSBILL
В конструкциях SQL в других программных средствах обычно пишут через точку SPC1.TRANSBILL,
а в VB ACCESS надо через подчёркивание SPC1_TRANSBILL

Смотрю скрин, вопросы не исчезают :(
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обновляется только одна запись, остальные блокируются
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]