Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц / 25 сообщений из 34, страница 1 из 2
26.04.2004, 18:41
    #32497473
Ольга_Т
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
Чтобы использовать ADO рекордсет как источник формы для редактирования данных в табличном виде, необходимо задать имя таблицы, в которой будут изменяться данные. Если нужно редактировать две из кучи таблиц, собранных в этот источник, значит приходится переключать рекордсет, редактировать столбцы по очереди. Неужели нет способа обойти это ограничение и собрать для редактирования столбцы из разных таблиц?
...
Рейтинг: 0 / 0
26.04.2004, 19:13
    #32497508
RVI
RVI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
Соберите их запросом.
...
Рейтинг: 0 / 0
26.04.2004, 20:05
    #32497564
Ольга_Т
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
Почему-то не получается, форма начинает ругаться, что рекордсет необновляемый. Может, на такой запрос нужен кластерный индекс? Этого я не пробовала.
...
Рейтинг: 0 / 0
26.04.2004, 20:17
    #32497573
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
Такой - это какой?

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

создаём 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
27.04.2004, 10:38
    #32498029
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
marvan, ты из каменного века вылез?
Человечество давно уже придумало DataBound контролы, ан нет, умный marvan сказал, что это есть "программирование мышкой" и начал писать свои собственные DataBound контролы.
Детский сад блин.
...
Рейтинг: 0 / 0
27.04.2004, 10:40
    #32498033
Jem
Jem
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
...
Рейтинг: 0 / 0
27.04.2004, 10:55
    #32498086
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
2 Лох Позорный
я Access использую только как БД, приложения пишу на VB6 и к DataBound отношусь как к прокаженным и никогда не использую именно из за их ограниченной функциональности. В качестве примера - данный топик.

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

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

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

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

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

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

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

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


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