Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление записей через подчинённую форму 
:(
    Опции темы
MrTrup
Дата 17.1.2008, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 1.10.2007

Репутация: нет
Всего: нет



На одной из форм находится подчинённая форма, отображающаяданные одной из табли.
Как удалить из таблицы выбранную в данный момент (на подчинённой форме) запись?

Пробывал создавай кнопку с кодом:
Код

rivate Sub Button_Click()
On Error GoTo Err_Button_Click


    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70

Exit_Button_Click:
    Exit Sub

Err_Button_Click:
    MsgBox Err.Description
    Resume Exit_Button_Click
    
End Sub


Звучит звук ощибки, но никаких окон не появляется и запись не удаляется.
 smile 
Спаибо.
PM MAIL   Вверх
Akina
Дата 18.1.2008, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Код не имеет никакого отношения к поставленной задаче.

Нужно вызвать соответствующий макрос для подчиненной формы (внимание!!!) как контрола основной формы.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bopoha
Дата 18.1.2008, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Как-то все сложно...
Может не макрос, а public метод.

На подчиненной форме:
Код

Public Sub DelCurr()
On Error GoTo Err_Button_Click


    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70

Exit_Button_Click:
    Exit Sub

Err_Button_Click:
    MsgBox Err.Description
    Resume Exit_Button_Click
    
End Sub


На главной форме:
Код

Private Sub Button_Click()
    Call me.подчиненная_форма.Form.DelCurr()
End Sub

PM MAIL WWW ICQ Skype GTalk   Вверх
Irina_N
Дата 18.2.2008, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 13.2.2008

Репутация: нет
Всего: нет



    Есть та же проблема. Нужно удалить запись из таблицы на подчиненной форме кнопкой, которая находится на основной форме.
    Использовала public метод. Запись не удаляется. Сообщений об ошибке нет.

Код на подчиненной форме:

   
Код

Public Sub DelCurr()

On Error GoTo Err_Button32_Click
    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
Exit_Button32_Click:
    Exit Sub
Err_Button32_Click:
    MsgBox Err.Description
    Resume Exit_Button32_Click
    
End Sub


Код на основной форме:
Код

Private Sub Button32_Click()
    Call Me.Form2.Form.DelCurr
End Sub


В чем ошибка?

PM MAIL   Вверх
bopoha
Дата 18.2.2008, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Явно ошибки в коде нет. Я никогда не удаляю записи методами DoCmd. 
Делаю я это методом выполнения запроса 
Код

Me.Refresh '-- созранить все данные с формы в таблицы
CurrentDd.Execute "DELETE * FROM таблица WHERE поле = код"
Me.Requery '-- обновить данные на форме

PM MAIL WWW ICQ Skype GTalk   Вверх
Irina_N
Дата 18.2.2008, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 13.2.2008

Репутация: нет
Всего: нет



Цитата(bopoha @ 18.2.2008,  12:19)
Код

CurrentDd.Execute "DELETE * FROM таблица WHERE поле = код"

"код" это текущая запись? Как ее получить?
PM MAIL   Вверх
bopoha
Дата 18.2.2008, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



С формы:
Код

Public Sub DelCurr()
...
    CurrentDd.Execute "DELETE * FROM таблица WHERE поле = " & Me.КодовеПоле
...
End Sub

PM MAIL WWW ICQ Skype GTalk   Вверх
Irina_N
Дата 18.2.2008, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 13.2.2008

Репутация: нет
Всего: нет



Запись не удаляется.
Вот код на подчиненной форме.
Что не так?

Код

Option Compare Database
Public Sub DelCurr()

On Error GoTo Err_Кнопка32_Click
       
Me.Refresh 
   CurrentDd.Execute "DELETE * FROM Таблица1 WHERE Номер_агента = " & Me.Номер_агента
Me.Requery 

Exit_Кнопка32_Click:
    Exit Sub
Err_Кнопка32_Click:
    MsgBox Err.Description
   Resume Exit_Кнопка32_Click
        
End Sub

PM MAIL   Вверх
bopoha
Дата 18.2.2008, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Чудеса эквилибристики.... Если поставить breakpoint на запрос, сформировавшийся SQL код выполнить через хранимый запрос. Тогда?
PM MAIL WWW ICQ Skype GTalk   Вверх
Irina_N
Дата 19.2.2008, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 13.2.2008

Репутация: нет
Всего: нет



А как это сделать? Можно подробнее?
PM MAIL   Вверх
Irina_N
Дата 20.2.2008, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 13.2.2008

Репутация: нет
Всего: нет



   Так как же всё-таки удалить запись? Проблема осталась.
PM MAIL   Вверх
bopoha
Дата 20.2.2008, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Код правильный. Необходимо почему он не правильно работает. Посмотрите в справке про отладку... Посмотрите меню... Там найдете пункт "точка остановки"... Поставте ее на интересующую вас строчку... Далее выполняейте действия. Когда придет время выполнится этой строчке, то программа остановится на ней. Дальше можно исследовать состояние переменных... Вдруг у вас кодовое поле содержит не верное значение... В этот момент можно запрос в окно отладки (Ctrl+G) вставить:
? "...запрос..." & Me.КодовоеПоле
и нажать Enter...
PM MAIL WWW ICQ Skype GTalk   Вверх
Irina_N
Дата 21.2.2008, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 13.2.2008

Репутация: нет
Всего: нет



Цитата(bopoha @ 20.2.2008,  16:39)
Там найдете пункт "точка остановки"... Поставте ее на интересующую вас строчку... Далее выполняейте действия. Когда придет время выполнится этой строчке, то программа остановится на ней. Дальше можно исследовать состояние переменных... Вдруг у вас кодовое поле содержит не верное значение... В этот момент можно запрос в окно отладки (Ctrl+G) вставить:
? "...запрос..." & Me.КодовоеПоле
и нажать Enter...

     Всё сделала именно так. После нажатия enter отображается значение кодового поля. 


    Забыла сказать.  При нажатии на кнопку текущая запись не удаляется, появляется сообщение Object Required.
PM MAIL   Вверх
bopoha
Дата 21.2.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Вооот!

Вместо CurrentDd нужно писать CurrentDb. Поставте в настройках обязательное объявление переменных. Будет меньше ошибок или пропишите руками в начале модуля
Код

Option Explicit


И компилируйте код почаще...


Это сообщение отредактировал(а) bopoha - 21.2.2008, 16:18
PM MAIL WWW ICQ Skype GTalk   Вверх
Irina_N
Дата 21.2.2008, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 13.2.2008

Репутация: нет
Всего: нет



Ошибку исправила. Теперь появляется другое сообщение "Слишком мало параметров. Требуется 1". 

И где в настройках можно поставить обязательное объявление переменных?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0753 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.