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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Changeless

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Yorcfild
Это не подход к решению проблемы!!! В твоем задании нет ничего сложного. Лучше спроси, что у тебя не получается и я тебе помогу.

Всего записей: 217 | Зарегистр. 28-09-2007 | Отправлено: 19:25 14-06-2010
Yorcfild



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Changeless
эм, не получается именно объединить, отдельные столбцы Фамилия Имя и Отчество в один столбец ФИО, а так же № общежития и комнату так же само только в другой столбец, я сам понимаю что это несложно, но застрял пока на этом...

Всего записей: 58 | Зарегистр. 01-08-2009 | Отправлено: 20:19 14-06-2010
Changeless

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ок.  
Открой запрос в режиме конструктора, вытащи из таблиц нужное количество полей для объединения. В пустом столбце конструктора в поле, которое называется "Поле" кликни ПКМ и нажми построить. Введи выражение по аналогии:
Комбинированное поле: IIf(Таблица1.Фамилия Is Null Or Таблица1.Фамилия='';'';Таблица1.Фамилия)+IIf(Таблица1.Имя Is Null Or Таблица1.Имя='';'';" " & Таблица1.Имя)+IIf(Таблица1.Отчество Is Null Or Таблица1.Отчество='';'';" " & Таблица1.Отчество) и далее по аналогии
Где "Комбинированное поле"  - будет желаемое название столбца при выводе запроса; функция Iff нужна на тот случай если одно из объединяемых полей окажется пустым. Сделай по аналогии №общежития и комнату. Можно и без Iff но получиться не так красиво, писать нужно так: =[Фамилия]&", "&[Имя]&", "&[Отчество] (если не ошибаюсь так можно делать прямо в текстовом поле формы). Расказать тебе как сделать так, что бы имя и отчество сокращались до первых букв, например так Иванов А.С.? Тебя зауважают.

Всего записей: 217 | Зарегистр. 28-09-2007 | Отправлено: 20:48 14-06-2010
Yorcfild



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Changeless
вышло объединить при помощи запроса, а можно чтоб те данные которые вывел запрос на объединение столбцов, вывести в отдельную таблицу?.  
 
Но если начинать с 1-го задания: На базе таблицы "студенты" и "общежитие" построить табличную форму "Студенты АП-группы" с полями "Фио", "Адрес" и "год рождения". Поле "Фио" должно содержать фамилию, имя и отчество студента, а поле "Адрес" - сведение об общежитии и комнате. Список должен быть отсортирован по фамилиям
 
теперь вопрос: как сортировать в самой форме по фамилиям? и как вывести в форме только данные студентов (мужиков, а не девушек) АП группы
 
П,С чем дальше копаю тем глубже захожу в тупик, сижу покрываюсь потом, завтра днем надо сдавать...

Всего записей: 58 | Зарегистр. 01-08-2009 | Отправлено: 21:52 14-06-2010 | Исправлено: Yorcfild, 22:22 14-06-2010
Changeless

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

Цитата:
 вывести в отдельную таблицу?.  

Это решается запросом на добавление, только я не пойму зачем это тебе? Это что тоже есть в задании? По-моему ты не в ту степь копаешь.
Делается это задание так: Вытягиваешь в запрос две таблицы (между ними обязательно должна быть связь по каким-то полям - обычно она по ключевому полю), добавляешь нужные тебе поля, указываешь группировку "по возрастанию" (это то, что ты называешь сортировкой, только почти всегда это делается на уровне запроса, а не формы). Поскольку в том запросе кроме оригинальных полей этих таблиц есть "Комбинированное поле" с ФИО (см.предыдущий пост) ты указываешь группировку для оригинального поля "Фамилия". Создаешь табличную форму с двумя полями. Источник записей для формы это твой запрос. Источник записей для твоих двух полей это всего два поля из твоего запроса.

Цитата:
как вывести в форме только данные студентов (мужиков, а не девушек)

Если записи мужчин отличаются по каким либо признакам от записей женщин, тогда можно. Назови чем отличаются и я скажу как переделать наш запрос.  
Кстати, я что-то не припомню в твоем задании такого пункта?
 
P.S. Отставить панику, солдат.

Всего записей: 217 | Зарегистр. 28-09-2007 | Отправлено: 22:53 14-06-2010
Yorcfild



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Changeless
ох, первые 2-ва задания 4-е сделал осталось еще 3-тье
 
3. Построить составную форму "Лучшие студенты" Главная форма должна содержать название предмета, а подчиненная форма - список студентов получивших по этому экзамену 4 и 5. Список должен включать "номер группы", "фамилию, имя" и оценку, и должен быть отсортирован по группам и фамилиям студентов.  
 
3. Как я понимаю нужно сначала создать запрос который содержит №Группы, Фамилия Имя, и становлюсь в тупик как в запрос вставить предмет, а потом сделать выборку по оценками

Всего записей: 58 | Зарегистр. 01-08-2009 | Отправлено: 23:14 14-06-2010 | Исправлено: Yorcfild, 23:44 14-06-2010
dneprcomp



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

Цитата:
указываешь группировку "по возрастанию" (это то, что ты называешь сортировкой,

ORDER BY - сортировка
GROUP BY - группировка
Если "по возростанию", то это все же ORDER BY - сортировка
T.ч. клиент был прав

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 23:53 14-06-2010
Changeless

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

Цитата:
как в запрос вставить предмет

Создай одиночную форму, а в ней ленточную или табличную. Название предмета - это скорее всего один из столбцов твоей таблицы. В одиночной форме создай поле со списком (Тип источника строк укажи - таблица или запрос, Источник строк - запрос вида: Открой конструктор, вытащи одно единственное (!!!) поле (то где указывается предмет) из нужной таблицы, укажи для него сортировку по возрастанию, переключись в вид SQL и после слова Select добавь слово Distinct (должно получиться - Select Distinct поле1...). В этом же режиме скопируй содержимое и вставть в поле источник строк твоего поля со списком.

Цитата:
потом сделать выборку по оценками  

Ты наверно обращал внимание, в конструкторе запросов есть пункты условие отбора. Так вот, тебе нужно создать запрос в котором будут все поля (номер группы, фамилию, имя и оценка), в столбце оценка в пункте условие отбора ввести "4" и на одну строчку ниже (там где "или") ввести "5". Отсортируй так как сказано в задании: сначала по возрастанию для поля Группы, а затем для поля Фамилии.
Далее необходимо добавить значение поля со списком в запрос. Для этого добавь поле название предмета в запрос, сними галочку с пункта вывод на экран и в поле условие вбей [Forms]![Имя твоей формы]![Имя поля со списком одиночной формы]. Теперь на событие после обновления поля со списком добавь программу:
Me.Имя вложенной формы.Requery где имя вложенной формы это имя формы внутри одиночной формы, а не настоящее имя вложенной формы (будь внимателен). Теперь при переключении поля со списком "Предмет" будут выводится разные списки студентов в подчиненной форме.
 
Добавлено:

Цитата:
Если "по возростанию", то это все же ORDER BY - сортировка  

Ну да, че-то перемкнуло.
Yorcfild
4й пункт это просто кнопки по нажатию на которые открываются запросы ограниченные условием "Номер группы" по одноименному полю.

Всего записей: 217 | Зарегистр. 28-09-2007 | Отправлено: 00:03 15-06-2010
Yorcfild



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

Всего записей: 58 | Зарегистр. 01-08-2009 | Отправлено: 09:42 15-06-2010
DocBeen



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ребята подскажите такой вот вопрос:
 
Разработать базу данных "Производство" для учета расходования материалов на производство станков.
Предусмотреть таблицы:
"Станки" с полями: НомерОбъекта (тип – счетчик, ключевое поле), НаименованиеСтанка (тип – текстовый), КоличествоКомплектующих (тип – числовой), Себестоимость (тип – Денежный);
"Склад" с полями: КодДетали (тип – счетчик, ключевое поле), НаименованиеДетали (тип – текстовый), Количество (тип – числовой), Цена (тип – Денежный);
"РасходМатериалов" с полями: НомерОбъекта (тип – числовой), КодДетали (тип – подстановочное поле из таблицы "Склад", по названию детали подставляется ее код), Количество (тип – числовой),  Цена (тип – подстановочное поле из таблицы "Склад", по коду детали подставляется ее цена), Дата (тип – дата);
 
 
как сделать чтоб в РасходМатериалов цена бралась из Склад - по коду ... знаю что как то просто, а вот как ваще из головы вылетело...

Всего записей: 147 | Зарегистр. 15-07-2005 | Отправлено: 20:11 21-06-2010
Changeless

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

Цитата:
как сделать чтоб в РасходМатериалов цена бралась из Склад - по коду

Для этого в "Схеме данных" нужно установить связь между полем, например, "Склад" таблицы "Расход материалов" и полем "Код" таблицы "Склад". Перед объединением поле "Код" таблицы "Склад" сделай ключевым. Забегая вперед скажу, что на этапе создания запроса, в констуктор нужно будет вытянуть две таблицы: Склад и Расход материалов (Если пишешь руками, то это констуркции left join, right join, inner join - тип объединения зависит от твоих задачь). При этом код в запрос вытаскивать не нужно (если это не предусмотрено).

Всего записей: 217 | Зарегистр. 28-09-2007 | Отправлено: 21:22 21-06-2010
mdid

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не нашел сегодня как создавать такие поля типа Вложение через sql запрос...access 2007 и написано что вроде тип этот Attachment..а вот при создании запроса ругается

Код:
 
create table ttt
(
  [ID] AutoIncrement NOT NULL PRIMARY KEY,
  [RecipName] varchar,
  [Email] varchar,
  [attach] Attachment
)
 

 
pls help

Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 21:53 13-07-2010 | Исправлено: mdid, 21:53 13-07-2010
vofkanov



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mdid
собственно, у соседей дельный совет дали относительно использования longbinary

Всего записей: 177 | Зарегистр. 06-02-2008 | Отправлено: 11:00 14-07-2010
mdid

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

Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 11:31 14-07-2010
vofkanov



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mdid
насколько я понимаю ситуацию, такой тип поля как Attachment - искусственно созданный для отображения  на форме конструктора, а то пользователь начнет пугаться blob-clob'ов. потому сам sql его не "понимает"

Всего записей: 177 | Зарегистр. 06-02-2008 | Отправлено: 11:37 14-07-2010
registry5

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, подскажите пожалуйста как сделать.
 
Вопрос в следующем.
Имеется база данных в Accesse, которая заполняется каждый день.
Как сделать так, чтобы все изменения в этой базе данных приходили мне на e-mail, каждый день?
 
Просто с Accessom  давно не общался.
 
Имеется такая мысль. Написать програмку на VB, поместить ее в автозагрузку, чтобы она сама сканила б/д и все изменения кидала на мыло.  
 
Помогите как реализовать или подскажите другую идею!
 
Заранее спасибо!

Всего записей: 61 | Зарегистр. 22-01-2009 | Отправлено: 10:42 19-07-2010
vofkanov



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
registry5
так вопрос в чем? написать программку, которая по таймеру будет сканить mdb и отсылать на e-mail?
и что означает "все изменения"? может проще таблицу событий завести и при каких-либо определенных действиях пользователей вносить туда информацию в подготовленном для дальнейшей передачи виде?

Всего записей: 177 | Зарегистр. 06-02-2008 | Отправлено: 17:39 19-07-2010
Dixi257



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
registry5
Дык изменений могут быть мегабайты. И потом, что посылать на мыло? Разницу? Новые данные? Конечно нужно внедрять в базу триггеры, которые будут сваливать необходимое в журнал. А журнал раз в сутки пусть архивируется и отсылается ...

Всего записей: 128 | Зарегистр. 24-08-2005 | Отправлено: 01:18 22-07-2010
MrZeRo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
registry5
Многое зависит от структуры базы, от требований, от того, что понимать под "изменениями" - то ли это изменения в данных, то ли это изменения в структуре (добавление новых отчетов, форм, ...).
 
Не обязательно писать программу на VB6, можно взять другую базу Access, прилинковать к основной базе и сделать макрос AutоExec, он будет выполняться автоматом при открытии этой базы и делать все что надо.

----------
... не это главное ...

Всего записей: 831 | Зарегистр. 30-01-2002 | Отправлено: 19:19 23-07-2010
Natasha888

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите пожалуйста! Если уже где-то было извеняюсь, все 50 стр не осилила.
Есть таблица:
[дата]      [кол-во товара]
2.08.10       10
10.08.10     15
14.08.10     20
Значение "кол-во товара " накопительное. Нужно посчитать среднее кол-во продаж за период, т.е. из значения "кол-во товара " конца периода вычесть "кол-во товара " начала периода и разделить на кол-во дней. Период задается в отдельной форме, в полях со списком "начало периода" и "конец периода".
Заранее спасибо.

Всего записей: 1 | Зарегистр. 15-08-2010 | Отправлено: 17:01 15-08-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 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