powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Совсем несложно для асов
39 сообщений из 39, показаны все 2 страниц
Совсем несложно для асов
    #32276630
Кофейник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как сделать чтобы из таблицы данные попадали в несвязанную форму каждое на своё место, так хочу, чтобы данные в таблице через форму не очень можно было изменить, ну т.е. потом если нажать сохранить, то изменения внесуться, а если отмену то ничего не изменится. а Если к форме привязывать таблицу то любое изменение сразу в ней появляется, а мне так не надо...
Подскажите?... спасибо
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276679
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну сделай еще одну таблицу временную, если ОК -тогда Insert Into в базовую, если ни - то ни...
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276693
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создай копию основной таблицы (Копировать-Вставить-только стрктура) Table2. Пусть будет буфером. Добавь туда же поле, в котором храни имя пользователя CUser.
Создай форму (без кнопок перехода и как модальное окно), которую привяжи к этой буферной таблице.
По кнопке главной формы открывай эту форму
Код: plaintext
1.
2.
3.
CurrentDB.Execute  "Insert into Table2 Select Table1.*, CurrentUser As "  _ 
&  " CUser From Table1 Where Kod = "  & Forms!Form1.Pole1
DoCmd.OpenForm  "Form2" ,,, "Where CUser = "  & CurrentUser

А дальше Update, Delete, Insert в основную таблу множеством разнообразных способов.
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276698
Кофейник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну вот так мне и думалось, более хитрого способа нет? или это слишком сложно?
И еще в догонку тогда вопрос, если несколько пользователей работают одновременно, никаких споров возникать не будет? ну например, при нажатии Сохранить, данные (1 строка) из локальной таблицы должна удалиться, а если там еще кто-нибудь уже добавил свою строку, т.е. другую открыл запись? или просто удалять по ключу и никаких проблем? .. наверное да :)

спасибо zz!
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276702
Кофейник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Класс, Витал!!! Огромнейшее мерси! :)
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276712
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Либо Витал - телепат, либо постинги Витала и Кофейника надо местами поменять
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276722
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zz
А чо!! Давай поменяем, чтобы не обвинили в мракобесии и суевериях, нарушающих железных подход научного материализма.
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276761
Кофейник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну да, так оно и было, пока писала то сообщение, Витал написал свое :))
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276795
Кофейник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Слушайте! а ведь работает!!! СУПЕР ПРОСТО!!!!

Целую сто раз ! :))

можно снова потом глупые вопросы задавать? :)
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276804
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ежели с поцелуями, то хоть сотню!
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276805
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если таблица _локальная_, то никаких сложностей у _разных_ юзеров не будет :). Только в запросах надо писать In ..., и обеспечивать одинаковые пути к локальным ("темповым") бд у разных юзеров.

Т.ч. совет Витал-а для _неЛокального_ размещения таблицы-буфера

Если добавить еще поле CSession, (которое заполнять например из таблицы со счетчиком сессий, автозаполняемым при запуске приложений), то _один_ юзер сможет работать в 2-х экземплярах программы, что иногда ему, юзеру, очень нужно (если заведомо не реализован MIDI интерфейс). Это может пригодиться и для локальной таблицы (CUser там не нужен).
Опять же несколько экземпляров, работающих с разными БД (если буферная размещена локально) Но там нужен более "хитрый" способ регистрации сессий - а именно - в той же в локальной базе. (Правда в этом случае, при нелокальном размещении счетчиков сессий, проблем работы с _разными_ бд не возникнет, останутся проблемы разных сеансов).
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276849
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Едрен-батон! Забыл добавить что на закрытие этой формы, связанной с буферной таблой следует добавить удаление записи
Код: plaintext
CurrentDB.Execute  "Delete * From Table2 Where CUser = "  & CurrentUser


С интересом прочитал рекомендации assa. Рекомендую их учесть.
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276862
Кофейник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну про удаление-то я догадаласть ;))
а как assa советует больно уж сложно... :)
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276882
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это на будущее. Если можно без его наворотов, то и не надо.
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276899
Кофейник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему он мои сообщения не вставляет, а гооврит спасибо щас все будет.. :( так нечестно!
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276902
Кофейник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну вот, завставлял!

я хотела с казать что вполне можно и без наворотов.

а вот UPDATE его всегда надо SET t1.поле1=t2.поле1, t1.поле2=t2.поле2...
а если 45 полей таких?...
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276915
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я чего-то непонимаю ?

народ чтоли вообще не врубается что есть такая штука как транзакция?

если по рабочей области аксесса начать транзакцию то делай с базой что захочешь - и другие пользователи видеть не будут.

если понравилось что наваял - подтверждай транзакцию
не нравится откатывай

зачем такую кучу кода писать если есть стандартные способы ?
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276935
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько мне извенстно, Да.
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276938
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
транзакции _в Формах_ появились не вдруг. В 97 Аксе их нет. Есть транзакции в Dao или Ado, но никак не в формах. (Я к примеру в 2000 акс-е только любопытствую. Поддерживаю приложения 97 и, о ужассс - 2.0 :). И, думается, вопрос об используемых версиях (иногда) упирается и в класс железа юзеров :).
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276970
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейК
Стало интересно. И как следовало сделать в конкретном случае?
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276979
Кофейник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to АлексейК:

если бы весь народ много знал, форумы такие не нужны бы были...


----

ну ведь правда кошмар setить 45 полей
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276995
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если в лом UPDATE-ить SQL-ем - откройте 2 рекордсета (по 1-й записи) и в путь циклом.
имена-то одинакие :0)
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32276997
Кофейник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а так я не умею ...
если не трудно не объяснишь?
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32277004
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кофейник! Не закипай
Если нет каскадного удаления, то можно гакнуть потом инсертить. А с другой стороны, ну 45! Один раз отмучилась и забыла. Пусть работает.
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32277011
Кофейник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
слушай, Витал, ты МОЗГ!!!
я вот и недопендрила что так можно
я тебя уже почти люблю!!
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32277023
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я тебя уже почти люблю!!
А почему "почти"? Что не хватает для счастья?
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32277028
Кофейник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кусочку сахару
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32277031
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подсластить пилюлю?
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32277036
Кофейник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ага, горькую долю писать жуткие запросы :)
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32277047
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открой конструктор. Добавь таблу. Перетащи в бланк все поля (не*). Переключись в режим SQL и замени Select на Update. А раз буферная таблица в точноссти совпадает, то остается только копировать поле1=поле1. :о))
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32277051
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Переключись в режим SQL

А ЗАЧЭМ?.. Есть кнопочка в конструкторе на панели интрументов
тип запроса - выбираешь и радуешься.
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32277059
Кофейник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Витал, ты супер! ты это знаешь ;))
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32277090
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот здесь было обсуждение похожей проблемы (если я правильно понял автора топика):\r
/topic/4
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32277114
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
интересующимся:
вот пример как пользоваться транзакциями из формы

MSACC 2002 MDB

при нажатии на кнопку начинается транзакция и назначается источник данных формы

Код: plaintext
1.
2.
3.
4.
5.
Private Sub b_begin_Click()
DBEngine.Workspaces( 0 ).BeginTrans
Dim rst As DAO.Recordset
Set rst = CurrentDb().OpenRecordset( "select * from MYTABLE" , dbOpenDynaset)
Set Me.Recordset = rst
End Sub


при нажатии на эту кнопку можно откатить все изменения

Код: plaintext
1.
2.
3.
Private Sub b_rollback_Click()
Me.Recordset.Close
DBEngine.Workspaces( 0 ).Rollback
End Sub


если нужно сохранить то соответственно кнопка с commit
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32277165
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейК
Не думаю, что это проще и надежнее, чем предложенные варианты. Хотя тоже интересно и имеет право быть.
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32277169
Кофейник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё я сделала, получилочь супер!
правда вот думаю может все эти update на сервере процедурой делать, там понятнее как-то...
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32277171
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На серваке и впрямь лучше всего.
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32277179
Кофейник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
значит в понедельник будет чем заняться! :))

Счастливо отдохнуть!
...
Рейтинг: 0 / 0
Совсем несложно для асов
    #32277191
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет запросам!
Отдохнуть без них, от них, за них...
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Совсем несложно для асов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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