Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Access VBA

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

Открыть новую тему     Написать ответ в эту тему

Guest

BANNED
Редактировать | Цитировать | Сообщить модератору
   
 
Обсуждаем вопросы только по Access VBA
(программирование макросов, скриптов, пользовательских функций и т.п.).
Приветствуются ссылки на ресурсы и справочную литературу по теме.

 

NB! Дублирующая тема VBA for Access закрыта во избежание путаницы. Оставлена эта, как более ранняя и имеющая больше сообщений.

Смежные темы:
Помощь в создании SQL-запросов: SQL запрос
Программы » Microsoft Office 2019 & 365 | 2016 | 2013 | 2010 | 2007 | 2003
Программы » OneNote | Outlook 2013 & 2016 & 2019 | Outlook 2010 | Microsoft Mathematics & Math Solver
Программы » Word FAQ | Excel FAQ | Access FAQ
Прикладное программирование » Word VBA | Excel VBA
Андеграунд » Microsoft Office 2019 | 2016 | 2013 | 2010 | 2007 | 2003
Андеграунд » OneNote | Visio | SharePoint Server | Project Server | Exchange Server
Андеграунд » Надстройки (add-ins) и коммерческие макросы Excel
Андеграунд » Самостоятельная сборка дистрибутивов Оffice 2007/2010/2013/2016 | MUI для Office 2007
----------
Как в Access перместить запись из одной таблицы в другую (допустим по нажатию кнопки на форме)?

Отправлено: 18:31 05-09-2002 | Исправлено: ALeXkRU, 17:14 03-08-2021
YuriyRR



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
aidomars

Цитата:
где лучше разместить формы, у каждого юзера или все в одном файле на сетевой папке

Правильно сделать разделение базы
все таблицы с данными поместить на сервер а формы , отчеты и все остальное
в другую базу. Сделать в ней соединение с таблицами на сервере и эту часть раздавать клиентам.
в акцессе невозможно перенести вычислительную нагрузку на сервер - нет хранимых процедур. Поэтому сервер выступает в роли обычного файл сервера. Это те-же DBF ки только упакованы в один файл (по сути).
Но это отличная штука для гетерогенных запросов. И в этом его конек.

Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 19:32 17-08-2011
aidomars



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А сервер и сетевая общая папка это подразумевается одно и то же? На сервер мне никто не даст разместить файлы, это куча заявок писать, фу.

Всего записей: 982 | Зарегистр. 23-04-2007 | Отправлено: 20:34 17-08-2011
YuriyRR



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
aidomars

Цитата:
А сервер и сетевая общая папка это подразумевается одно и то же?

Да, конечно. Ложишь в нее файл mdb с таблицами и все клиенты к нему присоединяются.

Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 02:32 18-08-2011
asbo

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть запрос, создающий новую таблицу на основе имеющейся:
sSQL = "SELECT * INTO " & sTblNew & " FROM " & sTbl & " WHERE Fld = 1 OR Fld = 3 ORDER BY Fld;"
 
Как в него всунуть добавление еще трех полей Long? Или это лучше следующим запросом сделать?
sSQL = "ALTER TABLE " & sTblNew & " ADD Fld1 LONG ADD Fld2 LONG ADD Fld3 LONG;"

Всего записей: 1805 | Зарегистр. 03-10-2006 | Отправлено: 14:53 18-08-2011
YuriyRR



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
asbo

Цитата:
Как в него всунуть добавление еще трех полей Long?

SELECT *, 0 as FIELD1,0 as FIELD2 ...
 

Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 17:35 18-08-2011
asbo

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuriyRR, снкс.
Я, правда, ужЕ по второму варианту сделал. Решил бошку не ломать.
 
Но, на будущее, я немного не понял - у меня ведь запрос на создание таблицы, а не на выборку. И тип полей не указан...?

Всего записей: 1805 | Зарегистр. 03-10-2006 | Отправлено: 18:07 18-08-2011
YuriyRR



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
asbo

Цитата:
я немного не понял - у меня ведь запрос на создание таблицы, а не на выборку. И тип полей не указан...?

LongInt идет по умолчанию, если к примеру нужен Double добавляем явное преобразование к типу. пример
SELECT [КОДЫ УЛИЦ].*, 0 as d1, 0 as d2, CDbl(0) as d3
 INTO www
FROM [КОДЫ УЛИЦ];
 
 
Добавлено:
директива SELECT на выборку ), а  
директива INTO на добавление (создание)

Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 18:25 18-08-2011
asbo

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuriyRR
Ага, врубился. Т.е. эти поля создаются на стадии формирования выборки (как обычно делаем с вычисляемыми полями), а потом, вместе с остальными, выплевываются директивой INTO в новую таблицу. А для уверенности, что они будут именно Long, можно сделать и CLng(0) as d1?

Всего записей: 1805 | Зарегистр. 03-10-2006 | Отправлено: 18:45 18-08-2011
YuriyRR



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
asbo

Цитата:
А для уверенности, что они будут именно Long, можно сделать и CLng(0) as d1?

Конечно.

Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 19:29 18-08-2011
aidomars



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть две таблицы:
1 Коля    
2 Петя    
3 Вася
1 Злой 11.08.2011    
1 Добрый 18.08.2011    
2 Добрый 17.08.2011    
2 Злой 14.08.2011

Надо подставить в первую настроения из второй, где настроения самые последние по дате. Подскажите запрос пожалуйста.

Всего записей: 982 | Зарегистр. 23-04-2007 | Отправлено: 07:44 19-08-2011
Czechoslovak



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
aidomars
Ну что то вроде этого

Код:
 
SELECT T1.Имя, T2.Настроение, T2.Дата
FROM T1 INNER JOIN T2 ON T1.ID = T2.ID
where Дата = (select max(Дата) from T2 where T1.ID=ID)
 

Всего записей: 175 | Зарегистр. 27-06-2007 | Отправлено: 10:51 19-08-2011
GeXamin



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
aidomars

Код:
 
SELECT t1.name,(SELECT TOP 1 t2.type FROM t2 WHERE (((t2.kod)=t1.kod)) ORDER BY t2.date DESC)
from t1
 

Всего записей: 131 | Зарегистр. 07-09-2006 | Отправлено: 11:04 19-08-2011
aidomars



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Czechoslovak  
Все получилось, спасибо!
WHERE (t2.[Дата]=(SELECT MAX([Дата]) FROM t2 WHERE t1.ID = t2.ID))
GeXamin
Это что то новенькое для меня, на досуге попробую, спасибо.

Всего записей: 982 | Зарегистр. 23-04-2007 | Отправлено: 12:21 19-08-2011
GeXamin



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
aidomars
Все просто - берем в таблице с настроениями по человеку все записи, сортируем от максимальной к минимальной, и тупо берем первую запись.

Всего записей: 131 | Зарегистр. 07-09-2006 | Отправлено: 23:33 19-08-2011
aidomars



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GeXamin
Ясно. Я так понимаю в основную таблицу не получится вставить данные из другой таблицы? Т.е. когда я делаю в конструкторе подстановку и открываю таблицу - в поле Настроения пусто и доступен выпадающий список. А мне хотелось бы чтобы там уже были данные из второй таблицы. В запросах и подчиненной таблице в форме то все получилось, но вот применение фильтра теперь долго происходит.

Всего записей: 982 | Зарегистр. 23-04-2007 | Отправлено: 00:56 20-08-2011
aidomars



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возникла проблема. Теперь при открытии формы очень долго выполняется запрос с подставлением в таблицу последних данных по дате из t2. Строк в t1 порядка 15000, а в t2 около 40000. Раньше в t1 было поле с последней датой, которая изменялась на последнюю одновременно с добавлением в t2 новой строки по клиенту и форма открывалась мгновенно. Правильно будет вернуть все как раньше?

Всего записей: 982 | Зарегистр. 23-04-2007 | Отправлено: 08:58 23-08-2011
GeXamin



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
aidomars
Ты же сам ответил -
Цитата:
форма открывалась мгновенно
.  
Я так понимаю что в таком случае надобность в t2 отпадает.

Всего записей: 131 | Зарегистр. 07-09-2006 | Отправлено: 09:18 23-08-2011
aidomars



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GeXamin
Нет, в том то и дело, что надо сохранять все даты по клиенту! Для статистики и отчетов.

Всего записей: 982 | Зарегистр. 23-04-2007 | Отправлено: 10:09 23-08-2011
dabudada

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, возможно ли в перекрестном запросе использовать параметры, вводимые с клавиатуры при запуске самого запроса? Спасибо.

Всего записей: 21 | Зарегистр. 12-03-2009 | Отправлено: 23:45 23-08-2011
11943499

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброе время !
 
Помогите пожалста, на ассевв только начал программировать, путаюсь в методике.
 
Во такая простейшая задача,
 
есть таблица клиентов и подчиненная один ко многим таблица объектов.
открывая форму клиентов нужно добавить клиенту новый объект из подчиненной таблицы.
 
для этого создал две формы, одна с источником данных Клиенты, другую с источником данных Объекты.
На первой форме кнопка с вызовом формы Объекты.
Нажимаю, открывается форма объектов, выбираю нужный объект...и ничего, в базу первой формы ничего не добавляется, хотя они и подчиненные. В общем, я так понял, отдельные формы изолированны друг от друга...
 
Внимание вопрос...
Как сделать так, чтобы при выборе нового объекта он бы прописывался в базе первой формы ?
 
Спасибо.
 

Всего записей: 132 | Зарегистр. 06-10-2008 | Отправлено: 22:32 04-09-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Access VBA


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru