powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Удаление записи из таблицы (странности)
25 сообщений из 65, страница 2 из 3
Удаление записи из таблицы (странности)
    #39733460
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagчас58Рабочая база далеко от меня и в ней совсем другие записи значений.

может там далеко-далеко пооткрывают да посворачивают кучу экземпляров приложения, а потом в 20-м по счету открытом пытаются что-то удалять ?

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

Ничего корявого
:-)
Это я пока что у себя делаю, что бы потом передать ЛЮДЯМ.
:-)
И вот такая ерунда всплыла.
С одной стороны - всё норм.
Записи исчезли (визуально).
Но с другой стороны, они вроде как остались....
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733461
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

Всё это происходит у меня.
Я начал делать изменения в базе и заметил такую фигню....
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733471
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58Прогер_самоучка, я думал и так всё понятно.

Код: vbnet
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.
26.
27.
28.
Public Function UDALIT_STROKU_TABLICI(BAZA_NAME As String, TBL_NAME As String, USLOVIE As String)
' удалить строку ''' Удаление строки из TBL_NAME
Dim MyDb As Database
       
   On Error GoTo UDALIT_STROKU_TABLICI_Error '-----------------------------------------------------------------------------

Set MyDb = CurrentDb

MyDb.TableDefs.Refresh
If DCount("*", TBL_NAME, USLOVIE) = 0 Then
       Me!messag = Me!messag & vbCrLf & "Запись " & USLOVIE & "  УЖЕ удалена из " & TBL_NAME & "  базы: " & BAZA_NAME
 Else
        MyDb.Execute "DELETE " & TBL_NAME & ".* FROM " & TBL_NAME & " where " & USLOVIE & "WITH OWNERACCESS OPTION;"
        Me!messag = Me!messag & vbCrLf & "Запись " & USLOVIE & " удалена из " & TBL_NAME & "  базы: " & BAZA_NAME
End If

MyDb.TableDefs.Refresh
MyDb.Close
Set MyDb = Nothing

   On Error GoTo 0 '-----------------------------------------------------------------------------
   Exit Function
UDALIT_STROKU_TABLICI_Error:


 Call FUN_ZAPIS_V_TEXT_FILE(CurrentProject.Path & "\Ошибки программы.txt", "функция: UDALIT_STROKU_TABLICI в модуле: Form_UP_DA_TE" & vbTab & Nz(Err.Description))

End Function

Я правильно вас понял, вот это, что вы привели, называете отладкой? :)
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733474
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58,

Код: vbnet
1.
2.
Call UDALIT_STROKU_TABLICI("OPTION_TBL.mdb", "TUNING_TBL", "ID = 'Дата_Списка_Абонентов_ТКО'")
Call UDALIT_STROKU_TABLICI("OPTION_TBL.mdb", "TUNING_TBL", "ID = 'Дата_Списка_Абонентов_ТЕПЛО'")

час58До и после имеются подобные строки, где всё отрабатывает норм с первого раза.Что значит подобные, если в ключе только дата - где уникальность, да и с временем можно "залететь".
Игортанв Execute при удалении строк(и) я встречался с некорректной работой, если не было уникальности строки.час58То есть её не видно в таблице, но она там есть...а перед просмотром таблицу обновляли, когда смотрели? сам так иногда попадаюсь))) когда ушатаюсь.

Если все вышеописанное чушь
то пересоздавать, а может у вас таблица/индексы "упали", а у людей нет.
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733484
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

хотя нет, перегнул.
Уникальность должна быть всей строки, если поле не автоинкрементное и удаление идет по какому то одному признаку одного поля
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733488
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

Индексов там нет.
----------------------------------
Что значит подобные, если в ключе только дата - где уникальность, да и с временем можно "залететь".
"Дата_Списка_Абонентов_ТКО" - ВОТ ТАКАЯ ГЛЮЧИТ при удалении.
"Дата_Списка_Абонентов" -такая строка не глючит при удалении.
"Дата_Списка_КТИ" -такая строка не глючит при удалении.
ОНИ ПОХОЖИ. ну вроде как подобны друг другу.
И с ними проводим одну и туже опреацию - УДАЛЕНИЕ строки.
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733494
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58"Дата_Списка_Абонентов_ТКО" - ВОТ ТАКАЯ ГЛЮЧИТ при удалении.возможно даже такое, что буква "С" вместо русской английская.
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733495
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прогер_самоучка,
Отладка, это когда проверяешь код на работоспособность и вносишь изменения и дополнения в проверяемый код.

Это полный листинг функции удаления строк.

Созданный вручную запрос на удаление - работает точно так же.
Не вызывая ни каких ошибок.
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733498
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прогер_самоучка,

Странные выводы.
Запись удаляется без ошибок.
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733500
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58Прогер_самоучка,

Странные выводы.
Запись удаляется без ошибок.с русской буквой запись удаляется, а с английской показывает, что такие строки есть. Может такое быть, тут странного ровно ноль :)
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733507
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58, в строке удаления может ввести такой код, по идее должно помочь
Код: vbnet
1.
MyDb.Execute "DELETE  FROM " & TBL_NAME & " where " & USLOVIE


p.s. а имя базы то зачем? в форме (?)
On Error GoTo 0 перед Exit какую смысловую нагрузку несет?
Public function в форме для удаления строки из таблицы? смысл?
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733509
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58,

час58,

а, запамятовал, ситуация была такая
таблица1, поля: Поле1, Поле2, Поле3
Строки:
2,3,4
2,2,4
3,2,4
2,3,4
При
MyDb.Execute "DELETE таблица1.Поле3 FROM таблица1"
Удаление (вообще) не происходит, т.к. строки 1 и 4 эдентичны.
Сильно долго над этой проблемой не сидел, просто ввел Id ключем(аутоинкрементом) и переписал
MyDb.Execute "DELETE таблица1.Id FROM таблица1 "
и все встало на свои места

где то тут на просторах читал когда то, что Execute на DELETE не всегда корректно работает, даже может в факе. Но что то не нашел сейчас. А выше, как бы решение, которое мне помогло...
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733517
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан"DELETE таблица1.Поле3 FROM таблица1"
Я извиняюсь за тупость , с Access давно не работал , но не могли бы мне обьяснить что это такое ???? И как запись будет удаляться? Насколько я помню удаляются строки полностью , а столбцы здесь ни при чем . Т.е должно быть типа .

Код: vbnet
1.
 Delete From Таблица Where Поле=значение

Или я не прав ???
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733523
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMan,

Да вы правы.
Это был запрос тупо выдран из конструктора запросов... и как я "боролся" со своими же граблями

Кстати, спасибо, что обратили на это внимание!
Я как то не обращал внимания на такую форму написания.
Даже не знаю, криворукость лечится?
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733609
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИгортанЯ как то не обращал внимания на такую форму написанияЭто не я , это Гетц .
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733656
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleckoчас58, в строке удаления может ввести такой код, по идее должно помочь
Код: vbnet
1.
MyDb.Execute "DELETE  FROM " & TBL_NAME & " where " & USLOVIE


p.s. а имя базы то зачем? в форме (?)
On Error GoTo 0 перед Exit какую смысловую нагрузку несет?
Public function в форме для удаления строки из таблицы? смысл?

имя базы используется в функции.
On Error GoTo 0 перед Exit - это шаблон, везде одинаков.
Public function в форме - собираюсь после отладки вынести в модуль.
21735100
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733751
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58Прогер_самоучка,
Отладка, это когда проверяешь код на работоспособность и вносишь изменения и дополнения в проверяемый код.
Если я не ошибаюсь . то отладка , это когда ставишь точку останова , затем идешь пошагово и проверяешь код и значения всех переменных в коде.
Вас кстати просили показать строку запроса в дебагере , но Вы так и не предоставили ее результат , а только приводили примеры кода с переменными , которые мало о чем говорят.
А если честно , то лично я не вижу проблемы , в 99% случаев виноват разработчик , а не система.
Так , что поставьте точку останова , пройдите пошагово , скопируйте строку запроса и запустите на сервере , или еще где то , вначале вместо delete , сделайте select , посмотрите какие записи выбраны , затем сделайте удаление , а затем опять select , и проанализируйте данные , какие удалены , а какие остались. И возможно найдете причину не корректного выполнения кода.
А здесь вряд ли Вам помогут имея минимум информации . Остается только в гадалки играть .
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733758
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMan,

Спасибо за совет.
Точку останова - так это первое что я сделал.
Всё прекрасно отрабатывает.
ошибок нет.
select - ни чего не находит.
Записей в таблице нет.
-------------------------------
Вопрос (проблема, затык) у меня совсем иной, и он описан в самом начале.
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733776
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58DarkMan,

Спасибо за совет.
Пжлст .
час58Вопрос (проблема, затык) у меня совсем иной, и он описан в самом начале.
В самом начале у Вас ничего не описано , а общие фразы , то ли работает , то ли не работает , и абсолютнтно никакой конкретики , и ни одного точного ответа на заданный вопрос.
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733782
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMan,

простите за неосведомлённость, а что значит выражение:
"показать строку запроса в дебагере"
я бы показал, если бы знал что это такое.
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733785
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMan,
Код: vbnet
1.
А если честно , то лично я не вижу проблемы , в 99% случаев виноват разработчик 


Совершенно с вами согласен.
Потому как разработчик пишет программу.
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733793
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58простите за неосведомлённость, а что значит выражение:
да не стоит извиняться , это лишнее.
час58"показать строку запроса в дебагере"
я бы показал, если бы знал что это такое.
Ок. Давайте по порядку.

Код: vbnet
1.
MyDb.Execute "DELETE " & TBL_NAME & ".* FROM " & TBL_NAME & " where " & USLOVIE & "WITH OWNERACCESS OPTION;"



например эту строку можете заменить на

Код: vbnet
1.
2.
3.
4.
 Dim str as string 
 str="DELETE " & TBL_NAME & ".* FROM " & TBL_NAME & " where " & USLOVIE & "WITH OWNERACCESS OPTION;" 
 MyDb.Execute str
 


Затем ставите точку останова в начале процедуры , запускаете ее , она останавливается в точке останова, и нажатием F8 идете пошагово , и смотрите что происходит наводя мышку на строку . Когда дойдете до str="" , остановились , нажали Ctl+G и в дебагере написали

Код: vbnet
1.
?str

и нажали Enter , и Вы получите полное значение переменной , которую в пытаетесь передать в запрос. Вот и посмотрите , что именно вы пытаетесь сделать.
Затем замените Delete на Select ну и так далее я описывал ранее . И анализируйте и ищите ошибку .

P.S Sorry подзабыл синтаксис VBA , не помню ставится ли ; в конце строки кода или нет . Если , что ошибки поисправляйте сами.
Вот как то так.
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733795
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMan,

Спасибо.
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733801
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58DarkMan,

Спасибо.
Вот что то типо такого.
...
Рейтинг: 0 / 0
Удаление записи из таблицы (странности)
    #39733820
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMan,

да нет же
ключевые слова - визуально, открыв таблицу, эти 2 строки не виды, "нету" их.
а программно, Dcount, они "есть"
специально в кавычки оба слова взял.
Я когда то читал, что физически строки не удаляются, а помечаются удаленными, до закрытия бд
или вероятно сжатия.
по ходу, остается пересоздавать таблицу
...
Рейтинг: 0 / 0
25 сообщений из 65, страница 2 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Удаление записи из таблицы (странности)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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