Понедельник, 29 Августа 2016 г. 10:46
+ в цитатник
Доброе время суток! Есть два десятка excel-файлов. Регулярно требуется часть листов с этих файлов импортировать в Access-файлы с теми же именами файлов. Как я решал эту задачу. Импортировал каждый лист каждого файла и сохранял опции импорта в меню "Сохраненные операции импорта". В дальнейшем, запуская импорт по сохраненным параметрам, обновлял нужные таблицы. Все это хорошо... Но обновление баз даже с применением сохранения настроек занимает довольно продолжительное время. Подскажите, пожалуйста, можно ли это автоматизировать? Есть опыт написания макросов в Excel.
Понедельник, 29 Августа 2016 г. 10:29
+ в цитатник
Добрый день, уважаемые форумчане! Очень прошу помощи в создании запроса. Есть таблица со списком работников. Она связана с 3-мя таблицами, каждая из которых является определённым разделом по учёту активности работника - Kaizen, BOS, OPL. Одна запись по работнику в каком то разделе является 1-й активностью. Мне надо по каждому работнику вывести количество активностей по каждому разделу. Запрос, который сделал:
SELECT TblSpysokPracKaizBosOpl.ID_Spysok, TblSpysokPracKaizBosOpl.PIPTxt,Count(Tbl_Kaizen.PracivnykKaizenLng)AS CountKaizen,Count(Tbl_BOS.PracivnykBOSLng)AS CountBOS,Count(Tbl_OPL.PracivnykOPLLng)AS CountOPL
FROM((TblSpysokPracKaizBosOpl LEFTJOIN Tbl_Kaizen
ON TblSpysokPracKaizBosOpl.ID_Spysok = Tbl_Kaizen.PracivnykKaizenLng)LEFTJOIN Tbl_BOS
ON TblSpysokPracKaizBosOpl.ID_Spysok = Tbl_BOS.PracivnykBOSLng)LEFTJOIN Tbl_OPL
ON TblSpysokPracKaizBosOpl.ID_Spysok = Tbl_OPL.PracivnykOPLLng
GROUPBY TblSpysokPracKaizBosOpl.ID_Spysok, TblSpysokPracKaizBosOpl.PIPTxt;
выводит мне сумму всех трёх разделов по работнику. Например: Ф.И.О. Каizen BOS OPL Иванов Иван Иванович 4 4 4 Петров Пётр Петрович 6 6 6
а мне надо:
Иванов Иван Иванович 1 2 1 Петров Пётр Петрович 2 3 1
Как нужно составить для этого запрос? Заранее благодарен!!! P.S. В приложенном файле Дизайнер этого запроса
Воскресенье, 28 Августа 2016 г. 20:58
+ в цитатник
Добрый день!
Много перечитал по вопросу установки в системе 2х разных версий MS Access, но так и не добился нужного результата!
ОС Win 10 - 64bit
Необходимо установить MS Access 2003 и MS Access 2013. Делал следующее:
1. Установил MS Access 2003 2. Перезагрузился 3. Установил Office 2013 Pro 4. Перезагрузился
Запускаю сначала файл 2003 через открыть с помощью и выбираю Аксес 2003. Все запустилось! Затем запускаю базу 2013, выполняется перерегистрация и база открывается. Затем закрываю ее и открываю базу 2003. Вроде тоже идет перерегистрация библиотек, но при работе с базой ошибки. Смотрю в окно ССЫЛОК вижу ссылку на Microsoft Acces 15.0 Object Library и поменять ее не могу так как пишет что занято процессом.
Кто подскажет рабочий вариант использования 2х версий Аксес 2003 и 2013 в одной системе?
Воскресенье, 28 Августа 2016 г. 17:14
+ в цитатник
приветствую, делаю форму где можно перемещать строки,сейчас столкнулся с проблемой,хотелось бы чтобы в текст бокс записывались значения больше на один,но ничего не выходит вот код:
PrivateSub List0_BeforeUpdate(Cancel AsInteger)
Dim i, s
WithMe.List0
s = s + 1
For i = 1 To .ListCount - 1
If .Selected(i) Then
s = s & "," & .Column(0, i)
EndIfNextEndWithMe.txtkod = Mid(s, 2)
EndSub
Для какой-нибудь серверной БД я бы использовал оконную ф-ю типа row_number(), а как-то в акцессе это можно сделать? Мне нужно для каждого прибора учета выбрать последние (по дате) 6 показаний, и пока решения в Акцессе я не вижу(
Имеется приложение которое при запуске выводит Форму 1 которая должна иметь некоторый размер, возможность передвигаться по экрану, минимизироваться на панель задач и восстанавливаться до своего фиксированного размера (вместе с окном Access потому как по другому минимизировать на панель задач не получается). Из этой формы открывается Форма 2 которая по умолчанию разворачивается на весь экран и тоже должна минимизироваться и восстанавливаться. При закрытии кнопкой закрытия Access Формы 2, она закрывается, передавая управление на Форму 1 а при её закрытии закрывается всё приложение. Всё это удалось реализовать более-менее нормально. Но осталась одна проблема. Как сделать чтобы невозможно было развернуть или изменить размеры Формы 1 а у Формы 2 эти возможности оставались. То есть в режиме когда на экране Форма 1, была не активна кнопка разворачивания окна и мышкой невозможно было вцепится для изменения размера формы.
Создал базу на основании шаблона MS Access 2013. не могу перейти в режим конструктора формы. соответствующего пункта нет и возле объектов отображается зеленый кружочек. Так понимаю какая то защита. Есть возможность как то все же перейти в конструктор формы в этом случае?
Грызу access 2007. Кнопки на формах с прямыми углами. Грубые прямоугольники. Подскажите как задать стиль кнопок на форме как в виндовс. Куда запрятана галочка? Или всё иначе чем раньше? -------------------------------------------------------------------------- СПС
Добрый день. В свое время переезжал со своей программкой на Access 2003 с более ранней версии. Все прошло хорошо. Сейчас на рабочем компе стоит офис 2010, и Access 2003, т.к. при переходе на Access 2010 источники многих форм неверно отображались (может и еще что то работало не так, просто вернулся к версии 2003 года и не стал разбираться). Но всему приходит конец, наше руководство решило что негоже одновременно иметь на компе офис разных годов (!!). Есть ли на форуме какой нибудь фак безболезненного переезда с 2003 на 2010 Access. Поиском ничего не нашел. Ткните пожалуйста. Спасибо.
Добрый день. В базе Access 2010, есть таблица "Соревнования" см. вложение. В запросе необходимо подсчитать количество организаторов за определенный промежуток времени (например с 01.01.2015 по 01.01.2016) В моем запросе количество строк организаторов выводится правильно, а вот количество считается по всей таблице d (кол = 2, а должно быть 1), как это можно поправить?
+
SELECT f.[Организатор соревнований], Count(d.[Организатор соревнований]) AS [Кол]
FROM Соревнования AS f LEFT JOIN Соревнования AS d ON f.[Организатор соревнований] = d.[Организатор соревнований]
GROUPBY f.[Организатор соревнований], f.[Дата окончания]
HAVING (((f.[Дата окончания]) Between [Введите дату начала] And [Введите дату окончания]));
Организатор соревнований
Кол
Mix Fighter
2
Лига ВТБ
1
Во втором варианте выводит правильно, но не суммирует, промежуток времени с 01.01.2015 по 01.01.2017
+
SELECT d.[Организатор соревнований], COUNT(d.[Организатор соревнований]) AS Кол
FROM Соревнования AS d
GROUPBY d.[Организатор соревнований], d.[Дата окончания]
HAVING (((d.[Дата окончания]) Between [Введите дату начала] And [Введите дату окончания]))
ORDER BY d.[Организатор соревнований];
Организатор соревнований
Кол
Mix Fighter
1
Mix Fighter
1
"Всероссийская федерация волейбола и ВК ""Минск"""
1. Данные почему то не выгружаются, то есть отсутствуют строки. А через в Microsofr SQL Managment Studio выгружаются строки при таком запросе. Почему не выгружается строки, может отсутствует какой то параметр? Не знаю, может надо тип команды указать "По умолчанию" как в Excel при создании подключения. Может вначале надо писать не как "Provider=MSOLAP.3", а как "OLEDB;Provider=MSOLAP.4"
2. Я правильно написал код вывода полученных строк на таблицу в Access?
Всех приветствую. Известно что при удалении записей из таблицы записи удаляются не физически, это можно заметить из объема файла. Есть ли способ их удалить сразу физически, чтобы не прибегал к сжатию/восстановлению базы для возврата объема файла в меньшее положение? У меня есть таблица как бы временная, постоянно туда заливаю данные и стираю. Но объем файла растет из-за этой "временной" таблицы.
Сильно не ругайте) Есть 2 таблицы(EXCEL), которые абсолютно одинаковые. Данные таблицы были загружены в Access и имеют постоянную связь, т.к. таблицы ежедневно обновляются. Путем запроса
таблицы объединяются. В новой таблице TTT, я вношу свои комментарии в отдельном столбце - "комментарии", путем обратной связи с таблицами табл1 и табл2 подтягиваются комментарии. Проблема заключается в том, что если табл1 или табл2 небыли обновлены, то и комментарии не будут доступны и следовательно при мое следующем запросе на создание таблицы TTT я не увижу своих комментариев. Как создать запрос таким образом, чтоб в таблицу TTT попадали только новые данные, а старые не изменялись?. Прошу прощение, если коряво написано. Спасибо!
Приветствую, есть два блока фильтрации(множество флажков и блок переключателей), нужно чтобы между ними была логика"и", а вот в блоке переключателей там где я фильтрую по столбцам была логика "или"
WithMeIf (.vybor_tip = 1) Then
strFilter = strFilter & " or [ES2G] = 'yes'" & " or [All] = 'yes'"EndIfIf (.vybor_tip = 2) Then
strFilter = strFilter & " or [ES1] = 'yes'" & " or [ES1Premium] = 'yes'" & " or [All] = 'yes'"EndIfEndWithFor i = 1 To 8
s = ""
s1 = Choose(i, "Napr", "Bereg", "akum", "obes", "zazem", "nm", "tm", "pt")
s2 = Choose(i, "Tokopriemnik", "Energosnabzhenie cherez vneshnee pitanie", "Akkumulyatornaya batareya 110 V", "Aktivnaya kabina mashinista", _
"Elektropoezd zazemlen", "Pnevmosnabzhenie cherez pitatelnuyu magistral", "Pnevmaticheskij tormoz", "Stoyanochnyj pruzhinnyj tormoz")
IfNotMe(s1 & "_all") And _
Not (Me(s1 & "_no") AndMe(s1 & "_yes") AndMe(s1 & "_case")) And _
Not (NotMe(s1 & "_no") AndNotMe(s1 & "_yes") AndNotMe(s1 & "_case")) Then
s = " AND (False"IfMe(s1 & "_no") Then s = s & " OR ([" & s2 & "]=""no"")"IfMe(s1 & "_yes") Then s = s & " OR ([" & s2 & "]=""yes"")"IfMe(s1 & "_case") Then s = s & " OR ([" & s2 & "]=""irrelevant"")"
s = s & ")"EndIf
strFilter = strFilter & s
Next
Здравствуйте. Подскажите пожалуйста - В табличной форме одно из полей - поле со списком связанное с таблицей в которой может быть несколько сотен записей. Выбирать значение из списка заманаешься. Фильтровать по вводимым символам тоже не выход, особенно если не знаешь что имеется в исходной таблице. Наилучшим выходом вижу выбор из вспомогательной формы в которой можно было бы вывести записи в виде какого-то структурированного списка. Но как это сделать представляю плохо -т.к. в базах данных вообще и программировании в частности не очень хорошо разбираюсь к сожалению. Видимо должна быть какая-то всплывающая форма с передачей значения из это формы по клику мышкой, или по кнопке в исходное поле. Может кто-нибудь показать пример подобного решения? Или предложить что-нибудь более подходящее?
Здравствуйте. Задача такая: на форме0 по нажатию кнопки "создать план на следующий год" должны выполниться несколько запросов по очистке некторых таблиц, удаление данных. и т.д. НО до этого производится проверка данных уже прошедшего года. Оператору задаются несколько вопросов (форма1, форма2) после того как процедура получит эти ответы уже выполняются запросы. Форма1 и форма2 типа Msgbox но с дополнительной кнопкой по которой можно посмотреть список оборудования(табличная форма) к которым относится вопрос. Ответ Форма1 и форма2 дает через глобальные переменные, а открываются с acDialog. Проблема в том что когда идет уже обработка ответов на вопросы если оператор нажал на да или нет или отмена, то без проблем. Но если оператор просмотрел список оборудования в форме1 или в форме2 , а потом ответил, то в глобальных переменных сидят правильные ответы а главная процедура реагирует не правильно. Можно ли как то получить ответ от формы при закрытии только по определенным кнопкам? Или я не понимаю как работает acDialog?