С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
second3
166 / 13 / 2
Регистрация: 21.05.2013
Сообщений: 66
1

Произвольное редактирование таблицы из формы

06.07.2013, 20:58. Просмотров 738. Ответов 8
Метки нет (Все метки)

Что-то никак не соображу как сделать следующее:

-Ввожу "имя таблицы"
-Если такая таблица существует то ее содержимое выводится в окно Таблица1
иначе создается таблица с таким именем из двух полей и чистая выводится туда же
-Для конкретной записи Поле1 редактирется вручную, после устанавливается курсор в Поле2
-Нажимаю на элементе списка Столбец1 и Поле2 для редактируемой записи заполняется этим значением
-Кнопка "сохранить таблицу" сохраняет изменения.

Принтскрин формы
0
Миниатюры
Произвольное редактирование таблицы из формы  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2013, 20:58
Ответы с готовыми решениями:

Редактирование формы
Нужно осуществить редактирование формы (неважно какое, например посчитать...

Соответствие значения поля подчиненной формы полю таблицы основной формы
Здравствуйте. В основной форме две подчиненные формы, одна в табличном режиме...

Копирование данных одного поля из разделенной формы (таблицы) в нужные записи другой таблицы
Здравствуйте! Добрый вечер! Подскажите пожалуйста, как из разделенной формы (в...

Редактирование подчиненной формы
Есть БД в приложение. В ней есть "фРедактирование_Заказа", к ней подключена...

Как сделать формы на заполнение, редактирование, просмотр
Как сделать формы? Формы для главных таблиц: на заполнение («чистая» форма...

8
second3
166 / 13 / 2
Регистрация: 21.05.2013
Сообщений: 66
07.07.2013, 02:40  [ТС] 2
Упрощаем: как сделать recordset источником данных для подчиненной формы

Пример ниже выдает ошибку Type mismatch (Error 13)
Visual Basic
1
2
3
4
5
6
7
8
Dim rst As Recordset
   Set rst = CurrentDb.OpenRecordset("select * from t")
   ' MsgBox rst![p2] 'rst заполняется без проблем
   
   subF.Form.RecordSource = rst 'попытка заполнить подчиненную форму
   subF.Requery
  
   rst.Close
0
Андрэич
2836 / 768 / 41
Регистрация: 20.05.2012
Сообщений: 2,056
07.07.2013, 02:53 3
...Form.Recordset = rst
1
second3
166 / 13 / 2
Регистрация: 21.05.2013
Сообщений: 66
07.07.2013, 03:06  [ТС] 4
Пробовал и это

error 2467
Введенное выражение содержит ссылку на объект, который закрыт или не существует
0
Андрэич
2836 / 768 / 41
Регистрация: 20.05.2012
Сообщений: 2,056
07.07.2013, 03:11 5
forms!Главная!subF.Form...
1
second3
166 / 13 / 2
Регистрация: 21.05.2013
Сообщений: 66
07.07.2013, 03:52  [ТС] 6
не помогло

Visual Basic
1
2
3
4
5
6
7
  Dim rst As Recordset
   Set rst = CurrentDb.OpenRecordset("select * from t")
 
   MsgBox Forms!frm1!subF.Name 'выводит имя подчиненной формы
 
   Forms!frm1!subF.Form.Recordset = rst    'error 2467  
  rst.Close
0
mobile
Эксперт MS Access
23340 / 13145 / 2754
Регистрация: 28.04.2012
Сообщений: 14,395
07.07.2013, 09:14 7
Рекордсет объект. И как для любого объекта, присваивание должно начинаться с Set
Visual Basic
1
Set Forms!frm1!subF.Form.Recordset = rst
1
second3
166 / 13 / 2
Регистрация: 21.05.2013
Сообщений: 66
07.07.2013, 14:35  [ТС] 8
Не помогло.
Добавьте нужную строчку кода, пожалуйста.
0
Вложения
Тип файла: zip db1.zip (188.1 Кб, 10 просмотров)
mobile
Эксперт MS Access
23340 / 13145 / 2754
Регистрация: 28.04.2012
Сообщений: 14,395
07.07.2013, 19:19 9
second3, ваша основная ошибка была в закрытии рекордсета rst. Поскольку RecordSource и Recordset основаны на разных данных, то закрытие рекордсета rst (rst.Close) удаляло связь формы с данными. Этого делать нельзя. Но, чтобы не происходило утечки памяти из-за "паразитных" рекордсетов, надо переменную рекордсета "занафинговать": set rst=Nothing. Кстати, реквери после смены источника, совершенно не требуется.
Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub Кнопка2_Click()
    Dim rst As DAO.Recordset
    Set rst = CurrentDb.OpenRecordset("select * from t2")
   
    Set Me.subF.Form.Recordset = rst
'    Forms!frm1!subF.Requery
    Set rst = Nothing
'    rst.Close
End Sub
1
07.07.2013, 19:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2013, 19:19

Редактирование данных из отчета методом вызова соответствующей формы
Всем добрый день! Подскажите пожалуйста как реализовать следующее: В...

Добавление/редактирование записей нескольких таблиц посредством 1 формы
Доброго времени суток! Столкнулся с довольно серьезной проблемой, прошу...

Цвет поля формы по значению поля другой формы (таблицы)
Привет всем! Три таблицы и формы соответственно: "ОБЪЕКТ" 1:М "ПЕРИОД" 1:М...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru