|
|
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
Чтобы использовать ADO рекордсет как источник формы для редактирования данных в табличном виде, необходимо задать имя таблицы, в которой будут изменяться данные. Если нужно редактировать две из кучи таблиц, собранных в этот источник, значит приходится переключать рекордсет, редактировать столбцы по очереди. Неужели нет способа обойти это ограничение и собрать для редактирования столбцы из разных таблиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 18:41 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
Соберите их запросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 19:13 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
Почему-то не получается, форма начинает ругаться, что рекордсет необновляемый. Может, на такой запрос нужен кластерный индекс? Этого я не пробовала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 20:05 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
Такой - это какой? Все-таки народ верит в наши телепатические способности... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 20:17 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
На такой, в который собрать столбцы из разных объектов и задекларировать как уникальную таблицу при создании АДО рекордсета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 21:18 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
авторНеужели нет способа обойти это ограничение и собрать для редактирования столбцы из разных таблиц?\r Тынц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 05:26 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
перестаём программировать мышкой и пишем всё сами. создаём 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 10:14 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
marvan, ты из каменного века вылез? Человечество давно уже придумало DataBound контролы, ан нет, умный marvan сказал, что это есть "программирование мышкой" и начал писать свои собственные DataBound контролы. Детский сад блин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 10:38 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 10:40 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
2 Лох Позорный я Access использую только как БД, приложения пишу на VB6 и к DataBound отношусь как к прокаженным и никогда не использую именно из за их ограниченной функциональности. В качестве примера - данный топик. Так что слепое пользование DataBound это детский сад и программирование мышкой. Именно за это, даже, программисты на Дельфях - VB программистов, программистами не считают. Именно по тому, что писать на более низком уровне считается "каменным веком", а не способом создавать более "гибкие" программы. В конце концов у человека была проблема и я дал решение этой проблемы. Будут другие решения - пишите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 10:55 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
Оно и видно, что на VB пишете. И о сторонних гридах вы, похоже, даже не слышали. За тот код, что вы привели - надо производить расстрел без права переписки. Это ж надо додуматься - seek (!!!) и update выполнять после каждого (!!!) обновления поля. Особенно seek порадовал. Типа запись куда-то убежала за то время, что человек поле редактировал. Я хоть и не программист на дельфях, но такое... гм... Ладно, хрен бы с ним Если Ольга нуждается в решении - ей уже пытались тонко намекнуть, что неплохо было бы этот самый необновляемый запрос привести. Или ждать телепятов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 11:03 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
авторИменно за это, даже, программисты на Дельфях - VB программистов, программистами не считают. marvan, однако странный у Вас круг общения! Что-то никто среди многочисленных знакомых дельфинов еще не усомнился в моем профессионализме и праве ность гордое имя РОГРАММЕР. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 11:14 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
РОГРАММЕР - это звучит гордо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 11:20 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
И о сторонних гридах вы, похоже, даже не слышали пользуюсь только vsFlexGrid За тот код, что вы привели - надо производить расстрел без права переписки. Это ж надо додуматься - seek (!!!) и update выполнять после каждого (!!!) обновления поля. Особенно seek порадовал. Типа запись куда-то убежала за то время, что человек поле редактировал. событе AfterUpdate поисходит только после завершения редактирования поля. Так что seek происходит только один раз и есть ни у кого не просит. См. далее. Ладно, хрен бы с ним Это всего лишь пример, не претендующий на тупое Copy/Paste. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 11:24 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
событе AfterUpdate поисходит только после завершения редактирования поля. Спасибо. А то так бы я и помер дураком. Так что seek происходит только один раз и есть ни у кого не просит У вас формы из одного поля? Или несколько полей на одной форме относятся к разным записям? А если к одной - то зачем же seek делать? Не говоря уже о том, что лучше выполнить один update на все поля, нежели кучу update'ов на каждое. Так или иначе - это просто изобретение велосипеда. Велосипед называется аксесовский грид. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 11:38 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
2 Лох Позорный 1. Для обсуждения стилей программирования лучше открыть новую тему. 2. Seek в примере - только как пример работы со связанными таблицами без использования SQL. Можно использовать и Move n, можно ничего не использовать - все зависит от задачи. 3. DataBound - существенно ограничивает возможности программиста хоть и упрощает его работу. Использовать или не использовать его - дело привычек и мастерства/кривизны рук конкретного человека. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 12:05 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
Спасибо Павлу за ссылочку, VIEW c атрибутом VIEW_METADATA - это было то, что доктор прописал. А заполнять программно поля в DataSheet'овской форме наверное возможно, но зюмо некузяво. Как вариант, если бы сермяжным способом не получилось, я бы конечно отписывала изменение данных в таблице на какое-нибудь событие, но зачем, если прекрасно работают стандартные способы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 12:35 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
Одна проблема разрешилась, зато возникла новая: если редактировать параллельно в другом окне одну из двух таблиц, связанных во VIEW, которое объявлено ...Form.UniqueTable, то Access обрушивается. Сойти со строки, которая редактировалась, уже невозможно, и приходится срубать аксесный процесс. Можно ли как-то разрешить конфликт одновременного редактирования таблицы через разные формы? Для акскссных источников я просто аккуратно отписываю сохранение и requery формы на AfterUpdate, а в случае Ado'шного рекордсета я не знаю, что делать. Пока там источником была процедура с одной уникальной таблицей, конфликт не возникал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 12:50 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
то Access обрушивается сдается это не Акес обрушивается, а сервер по блокировкам конфликт разрулить не могет. там надоть чтой-то подкрутить. Или в свойствах блокировки рекордсетов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 13:18 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
а строка синхронизации правильно составлена? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 13:47 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
Блокировки на сервере можно посмотреть, блокирующие процессы убивать на сервере я уже умею. А тут чисто аксессная проблема. Я знаю только строку подключения типа cmd.ConnectionString = "DATA PROVIDER=SQLOLEDB.1;SERVER=..." и т.п. Что такое строка синхронизации, я просто не знаю(((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 15:09 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
у формы свойство: resynccommand ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 15:11 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
Спасибо, разбираюсь, а нельзя как-нибудь избежать немедленного изменения порядка записей при редактировании отсортированного поля? Отсортировали по количеству, изменяем число в столбце - и строка сразу проваливается в другое место. С обычными таблицами и запросами такого не было. Очень неприятный эффект при работе с табличной формой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 19:30 |
|
||
|
ADO рекордсет как источник формы - хочу редактировать столбцы из разных таблиц
|
|||
|---|---|---|---|
|
#18+
Подскажите, пожалуйста! Проблему с редактированием записи в двух формах все-таки разрешить не удалось. Форма для работы с прайсом имеет в источнике сам прайс, каталог товаров и пачку справочных таблиц. Редактируется в ней прайс и некоторые параметры каталога. А попытка потыкать параллельно каталог товаров вне зависимости от этого прайса все равно заканчивается фатально. Синхронизацию я сделала, не знаю, насколько правильно: Me.SuppPriceComposition.Form.ResyncCommand = "SuppPriceCompositionP" Me.SuppPriceComposition.Form.InputParameters = "@SuppPriceID int=[Form]![SuppPriceID], @DisLevel money =1, @DisLevel int =0" То есть, указаны имя процедуры, возвращающей рекордсет-источник, и список ее параметров с указанием типов и значений. Ручная сортировка по редактируемым полям больше не сбрасывается (до этого сортировка терялась), но очень неприятно непрерывно обновляется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 19:59 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32498883&tid=1674957]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
210ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
86ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 557ms |

| 0 / 0 |
