Форум программистов, компьютерный форум, киберфорум
Наши страницы

MS Access

Войти
Регистрация
Восстановить пароль
 
second3
166 / 13 / 2
Регистрация: 21.05.2013
Сообщений: 66
#1

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

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

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

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

Принтскрин формы
0
Миниатюры
Произвольное редактирование таблицы из формы  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2013, 20:58
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Произвольное редактирование таблицы из формы (MS Access):

Редактирование формы - MS Access
Нужно осуществить редактирование формы (неважно какое, например посчитать количество одиноковых значений во всех полях таблицы и вывести в...

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

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

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

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

Редактирование данных из отчета методом вызова соответствующей формы - MS Access
Всем добрый день! Подскажите пожалуйста как реализовать следующее: В приложенном примере имеется отчет «Складской_остаток», как...

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
Андрэич
2835 / 767 / 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
Андрэич
2835 / 767 / 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
22449 / 12767 / 2596
Регистрация: 28.04.2012
Сообщений: 13,957
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
22449 / 12767 / 2596
Регистрация: 28.04.2012
Сообщений: 13,957
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 формы - MS Access
Доброго времени суток! Столкнулся с довольно серьезной проблемой, прошу помощи! Ситуация: Имеется несколько одинаковых таблиц с...

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

Связь формы и таблицы - MS Access
Добрый день! Подскажите, пожалуйста, как сделать так, чтобы при заполнении даты в текстбоксе на форме, она добавлялась в таблицу, н-р,...

Заполнение таблицы из формы - MS Access
Доброго времени суток. Я уже почти 5 лет не пользовался акцессом. Всё выветрилось, так что прошу прощения за дилетантский вопрос. PS....


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

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

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