powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
25 сообщений из 34, страница 1 из 2
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32497473
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы использовать ADO рекордсет как источник формы для редактирования данных в табличном виде, необходимо задать имя таблицы, в которой будут изменяться данные. Если нужно редактировать две из кучи таблиц, собранных в этот источник, значит приходится переключать рекордсет, редактировать столбцы по очереди. Неужели нет способа обойти это ограничение и собрать для редактирования столбцы из разных таблиц?
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32497508
RVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соберите их запросом.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32497564
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему-то не получается, форма начинает ругаться, что рекордсет необновляемый. Может, на такой запрос нужен кластерный индекс? Этого я не пробовала.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32497573
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Такой - это какой?

Все-таки народ верит в наши телепатические способности...
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32497614
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На такой, в который собрать столбцы из разных объектов и задекларировать как уникальную таблицу при создании АДО рекордсета.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32497737
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНеужели нет способа обойти это ограничение и собрать для редактирования столбцы из разных таблиц?\r
Тынц
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32497967
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
перестаём программировать мышкой и пишем всё сами.

создаём t1 as ADODB.Recordset и t2 as ADODB.Recordset
(условно t1 и t2 связаны по полю f1)
...
'загрузка
t2.seek t1!f1, adSeekFirstEQ
Form1.txField1 = t1!f1
Form1.txField2 = t2!f2
...
'редактирование
Private Sub txField1_AfterUpdate()
t1.Update "f1", txField1
End Sub

Private Sub txField2_AfterUpdate()
t2.seek txField1, adSeekFirstEQ
t2.Update "f2", txField2
End Sub
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32498029
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marvan, ты из каменного века вылез?
Человечество давно уже придумало DataBound контролы, ан нет, умный marvan сказал, что это есть "программирование мышкой" и начал писать свои собственные DataBound контролы.
Детский сад блин.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32498033
Jem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32498086
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Лох Позорный
я Access использую только как БД, приложения пишу на VB6 и к DataBound отношусь как к прокаженным и никогда не использую именно из за их ограниченной функциональности. В качестве примера - данный топик.

Так что слепое пользование DataBound это детский сад и программирование мышкой. Именно за это, даже, программисты на Дельфях - VB программистов, программистами не считают. Именно по тому, что писать на более низком уровне считается "каменным веком", а не способом создавать более "гибкие" программы.

В конце концов у человека была проблема и я дал решение этой проблемы. Будут другие решения - пишите.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32498114
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оно и видно, что на VB пишете.
И о сторонних гридах вы, похоже, даже не слышали.
За тот код, что вы привели - надо производить расстрел без права переписки. Это ж надо додуматься - seek (!!!) и update выполнять после каждого (!!!) обновления поля. Особенно seek порадовал. Типа запись куда-то убежала за то время, что человек поле редактировал.
Я хоть и не программист на дельфях, но такое... гм... Ладно, хрен бы с ним

Если Ольга нуждается в решении - ей уже пытались тонко намекнуть, что неплохо было бы этот самый необновляемый запрос привести. Или ждать телепятов.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32498153
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИменно за это, даже, программисты на Дельфях - VB программистов, программистами не считают.
marvan, однако странный у Вас круг общения!
Что-то никто среди многочисленных знакомых дельфинов еще не усомнился в моем профессионализме и праве ность гордое имя РОГРАММЕР.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32498176
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РОГРАММЕР - это звучит гордо
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32498188
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И о сторонних гридах вы, похоже, даже не слышали
пользуюсь только vsFlexGrid

За тот код, что вы привели - надо производить расстрел без права переписки. Это ж надо додуматься - seek (!!!) и update выполнять после каждого (!!!) обновления поля. Особенно seek порадовал. Типа запись куда-то убежала за то время, что человек поле редактировал.
событе AfterUpdate поисходит только после завершения редактирования поля. Так что seek происходит только один раз и есть ни у кого не просит. См. далее.

Ладно, хрен бы с ним
Это всего лишь пример, не претендующий на тупое Copy/Paste.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32498237
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
событе AfterUpdate поисходит только после завершения редактирования поля.
Спасибо. А то так бы я и помер дураком.

Так что seek происходит только один раз и есть ни у кого не просит
У вас формы из одного поля? Или несколько полей на одной форме относятся к разным записям? А если к одной - то зачем же seek делать? Не говоря уже о том, что лучше выполнить один update на все поля, нежели кучу update'ов на каждое.
Так или иначе - это просто изобретение велосипеда. Велосипед называется аксесовский грид.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32498333
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Лох Позорный
1. Для обсуждения стилей программирования лучше открыть новую тему.
2. Seek в примере - только как пример работы со связанными таблицами без использования SQL. Можно использовать и Move n, можно ничего не использовать - все зависит от задачи.
3. DataBound - существенно ограничивает возможности программиста хоть и упрощает его работу. Использовать или не использовать его - дело привычек и мастерства/кривизны рук конкретного человека.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32498419
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Павлу за ссылочку, VIEW c атрибутом VIEW_METADATA - это было то, что доктор прописал.
А заполнять программно поля в DataSheet'овской форме наверное возможно, но зюмо некузяво.
Как вариант, если бы сермяжным способом не получилось, я бы конечно отписывала изменение данных в таблице на какое-нибудь событие, но зачем, если прекрасно работают стандартные способы.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32498472
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одна проблема разрешилась, зато возникла новая: если редактировать параллельно в другом окне одну из двух таблиц, связанных во VIEW, которое объявлено ...Form.UniqueTable, то Access обрушивается. Сойти со строки, которая редактировалась, уже невозможно, и приходится срубать аксесный процесс. Можно ли как-то разрешить конфликт одновременного редактирования таблицы через разные формы? Для акскссных источников я просто аккуратно отписываю сохранение и requery формы на AfterUpdate, а в случае Ado'шного рекордсета я не знаю, что делать. Пока там источником была процедура с одной уникальной таблицей, конфликт не возникал.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32498541
не автор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
то Access обрушивается
сдается это не Акес обрушивается, а сервер по блокировкам конфликт разрулить не могет. там надоть чтой-то подкрутить. Или в свойствах блокировки рекордсетов.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32498614
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а строка синхронизации правильно составлена?
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32498878
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блокировки на сервере можно посмотреть, блокирующие процессы убивать на сервере я уже умею. А тут чисто аксессная проблема.
Я знаю только строку подключения типа
cmd.ConnectionString = "DATA PROVIDER=SQLOLEDB.1;SERVER=..." и т.п.
Что такое строка синхронизации, я просто не знаю((((
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32498883
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у формы свойство: resynccommand
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32499417
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, разбираюсь, а нельзя как-нибудь избежать немедленного изменения порядка записей при редактировании отсортированного поля? Отсортировали по количеству, изменяем число в столбце - и строка сразу проваливается в другое место. С обычными таблицами и запросами такого не было. Очень неприятный эффект при работе с табличной формой.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32499436
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, пожалуйста! Проблему с редактированием записи в двух формах все-таки разрешить не удалось.

Форма для работы с прайсом имеет в источнике сам прайс, каталог товаров и пачку справочных таблиц. Редактируется в ней прайс и некоторые параметры каталога.
А попытка потыкать параллельно каталог товаров вне зависимости от этого прайса все равно заканчивается фатально.

Синхронизацию я сделала, не знаю, насколько правильно:
Me.SuppPriceComposition.Form.ResyncCommand = "SuppPriceCompositionP"
Me.SuppPriceComposition.Form.InputParameters = "@SuppPriceID int=[Form]![SuppPriceID], @DisLevel money =1, @DisLevel int =0"
То есть, указаны имя процедуры, возвращающей рекордсет-источник, и список ее параметров с указанием типов и значений.
Ручная сортировка по редактируемым полям больше не сбрасывается (до этого сортировка терялась), но очень неприятно непрерывно обновляется.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
    #32499833
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DataBound поём мы песню
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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