Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2009, 13:59   #1
vaga
Пользователь
 
Регистрация: 03.09.2009
Сообщений: 12
По умолчанию фильтр и список

есть два вопроса
1)к примеру мне нужно применить к форме многожество фильтром. к одной форме одновременно много фильтров. как я могу это сделать кроме как указав в свойствах формы?
2) загрузив данные из таблицы в форму, в список, обработав их, как мне потом их вернуть обратно из списка в таблицу?
vaga вне форума Ответить с цитированием
Старый 03.09.2009, 21:17   #2
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте vaga.
1. фильтры применяются не к форме, а к подключенному к ней источнику строк Фильтр накладывает условия на набор записей и может устанавливаться программно так же программно может быть подключен другой источник строк - запрос с заданными условиями.
me.RecordSource ="select * from table where field =...
2. "в форму", такой вопрос может возникнуть только при использовании несвязанной формы (Unbound Form) у которой поля источника строк не подключены к полям (контролам) формы и требуют "загрузки" в соответствующие поля. "в список" - список заполняется данными или набором записей и сохранять изменение тоже можно только программно. Например так:
CurrentDb.Execute "update table set field1 = 1 , field2 = '2'..."
Евгений.

Последний раз редактировалось Teslenko_EA; 03.09.2009 в 21:19.
Teslenko_EA вне форума Ответить с цитированием
Старый 04.09.2009, 00:59   #3
vaga
Пользователь
 
Регистрация: 03.09.2009
Сообщений: 12
По умолчанию

Teslenko_EA, спасибо что откликнулись
по первому вопросу все понятно. а вот на счет второго вопроса я наверное неправильно задал вопрос.

есть форма, на ней список, состоящий из пяти столбцов. так же есть таблица, состоящая тоже из пяти столбцов. какой функцией мне скопировать данные из списка в таблицу?

Цитата:
CurrentDb.Execute "update table set field1 = 1 , field2 = '2'..."
предложенный вами вариант, если я правильно понял, обновляет уже имеющиеся записи в таблице? это мне не подходит =(
vaga вне форума Ответить с цитированием
Старый 04.09.2009, 19:30   #4
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте vaga.
постройте конструкцию запроса на добавление, содержащую данные из колонок Списка:
Код:
sSql = "insert into Table ( Field1, Field2, ... ) SELECT "
sSql = sSql & "Список.Column(0) & ", " & Список.Column(1) & ", " & Список.Column(2)...
CurrentDb.Execute sSql
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 04.09.2009, 22:11   #5
vaga
Пользователь
 
Регистрация: 03.09.2009
Сообщений: 12
По умолчанию

спасибо Евгений.
а вот скажите пожалуйста вы используете CurrentDb.Execute, а я во время активного гуглинга нашел Docmd.runSql. я между ними заметил единственную разницу. в одном случае нужно подтверждение на действие в другом нет. а чем собственно эти функции отличаются?

еще вопрос, правда который не относится к первоначальной теме. а есть ли программный(т.е. на VBA) эквивалент таким встроенным функциям как "переход к следующей записи", "переход к предыдущей записи".функции которые можно задать сразу при добавлении новой кнопки на форму. мне нужно чтоб при нажатии переходил на следующую запись и выполнял еще одно действие.
vaga вне форума Ответить с цитированием
Старый 05.09.2009, 14:17   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте vaga.
CurrentDb - метод использующий библиотеку DAO только подключается к MS Access, в то время как Docmd - является его объектом и потому может "требовать подтверждение", которое можно отключить через меню :
Сервис / Параметры... вкладка Правка и поиск - Подтверждение.
или программно :
DoCmd.SetWarnings False ' или (True)

!!!будьте внимательны, отключение Подтверждений распространяется не на текущую БД, а на всю систему MS Access, появляется возможность "навредить" по неосторожности во всех БД.

"встроенными функциями" Вы имеете ввиду :
Код:
    DoCmd.GoToRecord , , acNext
    
    DoCmd.GoToRecord , , acPrevious
вполне допустимо
Код:
   ...
   DoCmd.GoToRecord , , acNext
   'еще одно действие
   ...
также можно перемещаться по записям обращаясь к рекордсету объекта (формы, ...)
Код:
    Dim rs As Recordset
    Set rs = Me.Recordset
    rs.MoveNext ' MovePrevious, MoveNext, MoveFirst, MoveLast
    ...
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 05.09.2009, 23:42   #7
vaga
Пользователь
 
Регистрация: 03.09.2009
Сообщений: 12
По умолчанию

большое спасибо Евгений. вы мне очень помогли
vaga вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++. Односвязный список. Уничтожить список Olya90 Помощь студентам 2 10.06.2009 18:52
Помогите создать выпадающий список (фильтр) Sergey997 Microsoft Office Excel 3 29.05.2009 16:43
Данные-проверка-список (список на другом листе) Inbox Microsoft Office Excel 7 26.12.2008 01:43
Фильтр Инночка Помощь студентам 4 30.04.2008 20:27
Фильтр в базе Versifikator БД в Delphi 3 18.04.2008 10:35