Quantcast
Channel: SQL.ru: Microsoft Access
Viewing all 3060 articles
Browse latest View live

Версия программы

$
0
0
Приветствую всех!
На компе установлены две версии одной программы, причем одна из них Runtime. Как определить, какая версия запущена в данный момент?

adodb.connection

$
0
0
Пытаюсь из внешнего приложения(не офисного) открыть adodb.connection
Пробую так
connDB.Open "Provider=Microsoft.ACE.OLEDB.12.0;data source=" & "********\test.mdb;"
Ошибка - Не удается найти указанный поставщик. Вероятно он установлен неправильно.
Пробовал менять версию провайдера на 16 - не помогает. Указывал jet 4 - тоже не помогает.
Может проблема в разрядности?
Офис и access - 32, а windows и приложение откуда пробую присоединиться - 64....

использование Агрегатных функций с DAO

$
0
0
всем добрый день.
может конечно придумаваю фигню, но прошу подсказать насколько это реально

Суть в следующем: есть форма, в ней подформа (ленточная форма - таблица), в подформе эн-нное количество записей, отобранный стандартным механизмов подформы. С основной формой связано через поле связи.

Для работы с данными подформы использую DAO.recordset. Понадобилось найти по одному полю максимальное значение, сделал через
for ... to ... next
. Второй вариант - сделать SQL-запрос в исходную таблицу, которая по факту содержит данные, отобранные в рекордесете подформы, то есть отборать по полю связи и найти MAX.

Вопрос в следующем: реально ли сделать SQL-запрос в уже отобранный рекордсет, идея в том, что раз он уже отобран, то запрос должен быстрее обрабатываться, чем сделать такой же запрос непосредственно в исходную таблицу, где может быть несколько тысяч значений.

Спасибо за ответы

Выборка нескольких пересечений периодов в течение года

$
0
0
Господа, приветствую.

Проблема несколькими словами...
Есть таблица календаря работы человека. Всего 360 дней на человека с несколькими вахтами работы, длящиеся приблизительно дней 40.
Есть определенные маркеры начала и конца вахт (Пр и От)

Как вывести в одной строке в двух полях дату начала и дату окончания вахты человека,
ну и по строкам эти несколько вахт за год?

Перемешать значения в полях

$
0
0
Всем доброго времени суток!
Даже не знаю как объяснить, задача нелёгкая, но я попробую.


Есть таблица работы работников на работах :D

Работа МесяцНачалаРаботы МесяцКонцаРаботы Работник

Мне нужно сделать таблицу, которая покажет все месяцы, которые попали под работу, то есть если есть 2 записи:

Работа1 Январь Март Работник1
Работа2 Февраль Апрель Работник2

Я хочу получить что-то наподобие:

Январь Работа1 Работник1
Февраль Работа1 Работник1
Февраль Работа2 Работник2
Март Работа1 Работник1
Март Работа2 Работник2
Апрель Работа2 Работник2

Попробовал создать таблицу "Месяцы" И вручную все месяцы вбил, только поля месяцы с работниками и работами перемешать через UNION не получилось. То есть месяцы которые идут между начальной датой и последней просто ну никак не попадают.
Помогите плз может какие нибудь промежуточные или доп таблицы?

Подключение к другому серверу для выборки данных

$
0
0
Форумчане, помогите пожалуйста:

Adp проект: Аccess2003 + SQL 2000

есть работающая вьюшка vw_ActSub, которая подключается к БД адресу: 10.1.1.7\regCentr и формирует массив данных
SELECT *
FROM [10.1.1.7].regCentr.dbo.vwActSub

мне нужно подключиться к БД адресу: 10.1.1.7\CENTR\registrCentr
пробовала по разному
FROM [10.1.1.7.CENTR].registrCentr.dbo.vwActSub
FROM [10.1.1.7\CENTR].registrCentr.dbo.vwActSub
не получается.
Спасибо.

MAPI проблема с SignOn - Login has failed

$
0
0
Здравствуйте! В надежде что кто-то сталкивался и сможет определить что за ерунда происходит с MSMAPI при поптыке отправки почты через TheBat. пожалуйста откликнитесь кто что думает. Есть подозрение, что дело в настройке Бата. Может вручную в реестре где что поковырять типа принудительной установки дефолтового аккаунта или что еще. Но я уже без сил. В форуме и в интернете ничего не нашел т.к. самое фиговое, что в одном месте работает, а в другом НЕТ!!!

База ACC2003, все компоненты зарегены, лицензии введены, объекты на форме, код отлажен.
В ОС: TheBat проинсталлирован, клиент по умолчанию, Simple MAPI работает (инициирование отправки письма срабатывает корректно даже если Бат не запущен запускает его и создает письмо) и всё прочее.

Кусок кода обращения к MAPI
'Почта использоваться может ТОЛЬКО установленная по умолчанию
Me.MAPISession1.LogonUI = False 'это чтобы не показывалось окно подтверждения email и пароля
Me.MAPISession1.UserName = "мойаккаунт"
Me.MAPISession1.Password = "мойпароль"
Me.MAPISession1.NewSession = True'Me.MAPISession1.Action = 1

Me.MAPISession1.SignOn'ЗАТЫК ВСЕГДА ЗДЕСЬ. ЧТО ЕЙ НЕ НРАВИТСЯ????

Me.MAPIMessages1.SessionID = Me.MAPISession1.SessionID
Me.MAPIMessages1.Compose 'очистить буфер перед отсылкой


Ситуация такая: Винда 10 32-б, Офис 2010 32-б, TheBat 7.4 - всё работает, отправляется. никаких ошибок!

Винда 10 64-б, Офис 2010 32-б, TheBat 7.4 - спотыкается всё время на Me.MAPISession1.SignOn с ошибкой "Login has failed"
Винда ХР, Офис 2003, TheBat 7.4 - Та же самая проблема!

сформировать запрос

$
0
0
ms access таблица:

name value
item1 a
item2 a
item3 b
item4 b
item1 a
item3 a
item2 c
item1 c
item1 a
item1 d
item2 a
item2 a


нужен запрос чтобы сложил кол-во повторяющихся сочетаний

name a b c d
item1 3 0 1 1
item2 3 0 1 0
item3 1 1 0 0
item4 0 1 0 0

ADO-DAO

$
0
0
Запрос DAO в Аксе
SELECT * FROM MAIN WHERE MAIN.marka like 'АБВК.8*';
- работает
Такой же из стороннего приложения (ADO,adOpenStatic, adLockReadOnly) - не работает
Запрос с полным именем без звездочки (ADO,adOpenStatic, adLockReadOnly) -
"SELECT * From MAIN WHERE MAIN.MARKA Like 'АБВК.8322.110.000.01';"
- работает...... Не могу понять почему со звездочкой не работает.....

Как выделить ячейку формы, сделанной на основе перекрестно запроса?

$
0
0
Добрый день!
Пример формы на скрине.
В инете не нашел ответа как выделить конкретную ячейку?
не пойму как обратиться к конкретной ячейке "перекрестной формы".

Что делал:
Вариант 1. При выделении через Me.D1.BorderColor = RGB(255, 255, 0)
выделяется весь столбец.

Чудеса или Пагубное влияние Надписи, на Все Процедуры в Форме.

$
0
0
Всем привет.
Вчерась столкнулся с тем, с чем ни когда прежде не сталкивался.
Решил облагородить форму и в одной надписи в Имени, вместо м2_Надпись, написал м²_Надпись.
Типа двоечка в верхнем регистре из вставок.
Почему то именно в этой форме перестали работать абсолютно УСЕ Процедуры.
Стали вылазить ошибки.
Почти час мучался и маялся, пытаясь найти ошибку, пока не стал перебирать самые невероятные свои действия, которые совершил в творческом порыве во время ваяния.
Просветите люди добрые, с чем это связано, тем более это просто надпись, даже не надпись поля?

Вот и сейчас решил посмотреть, чего написал, и узрил, что вместо двоечки будет отображаться палочка.
Видимо и Акс так же это видит.

Особенности применения функции ROUND

$
0
0
Что нам говорит о ней справка? Вот что пишут здесь

Функция Round

Возвращает число, округленное до указанного количества десятичных разрядов.

Round(выражение[, количество_деятичных _знаков])

Синтаксис функции Round имеет следующие аргументы:

выражение - Обязательное. Числовое выражение, которое требуется округлить.

количество_деятичных _знаков - Необязательное. Число, указывающее количество цифр справа от десятичного разделителя включены округления. Если не указано, функция округляет число до ближайшего целого числа.

И больше ничего там не написано. Но поиск в интернете даёт следующее

Функция Microsoft Access Round возвращает число, округленное до указанного количества десятичных знаков. Однако функция Round ведет себя немного странно, поэтому, прежде чем использовать эту функцию, пожалуйста, прочитайте следующее:

Функция Round использует логику округления к четному. Если округляемое выражение заканчивается на 5, функция округления округляет выражение так, чтобы последняя цифра была четным числом.


Пример:

Round(12.55, 1)
Result: 12.6 (округление вверх)

Round(12.65, 1)
Result: 12.6 (округление вниз)

Round(12.75, 1)
Result: 12.8 (округление вверх)

Round(12.85, 1)
Result: 12.8 (округление вниз)

Как с этим бороться?
Предлагают прибавить к числу половинку последнего знака. Вот так

Round(12.55 + 0.005, 1)
Result: 12.6 (округление вверх)

Round(12.65 + 0.005, 1)
Result: 12.7 (округление вверх)

Round(12.75 + 0.005, 1)
Result: 12.8 (округление вверх)

Round(12.85 + 0.005, 1)
Result: 12.9 (округление вверх)

Другие предлагают прибавлять половинку предпоследнего знака при округлении

Round(12.55 + 0.05, 1)
Result: 12.6 (округление вверх)

Round(12.65 + 0.05, 1)
Result: 12.7 (округление вверх)

Round(12.75 + 0.05, 1)
Result: 12.8 (округление вверх)

Round(12.85 + 0.05, 1)
Result: 12.9 (округление вверх)

Третьи предлагают просто добавить к числу 0,0001

Round(12.55 + 0.0001, 1)
Result: 12.6 (округление вверх)

Round(12.65 + 0.0001, 1)
Result: 12.7 (округление вверх)

Round(12.75 + 0.0001, 1)
Result: 12.8 (округление вверх)

Round(12.85 + 0.0001, 1)
Result: 12.9 (округление вверх)

Во все случаях округление даёт верный результат.


-------------------------------------------------------------
А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса?

Ошибки в запросах SQL

$
0
0
Не могу понять, где ошибка в запросе.
1 найти плательщиков оплативших счета ( платежные поручения) за определенный период;
этот я попыталась написать, но он не корректно работает почему-то
SELECT Поручение. Назначение, Поручение. Сумма, Поручение. Дата, Поручение. Плательщик, Плательщик. Код, Плательщик. ФИО
FROM Поручение
INNER JOIN Плательщик ON Поручение. Плательщик=Плательщик. Код
WHERE (((Поручение. Дата) >=[Начало периода] And (Поручение. Дата) <=[Окончание периода]))
но он даёт выбрать одного платильщика и по нему за определенный период показывает. а мне нужно всех.

2 найти общую сумму платежей от каждого плательщика к каждому получателю (перекрестный запрос)
TRANSFORM Sum(Поручение. Сумма) AS [Sum-Сумма]
SELECT Получатель. Наименование
FROM Получатель INNER JOIN (Плательщик INNER JOIN Поручение ON Плательщик. Код = Поручение. Платильщик) ON Получатель. Код = Поручение. Получатель
GROUP BY Получатель. Наименование
PIVOT Плательщик. ФИО;

вообще не работает, пишет несоответсвие данных.

3. найти информацию по конкретному получателю (ввод наименования получателя).
тут не знаю как.
нужно вводить фио получателя и выводится вся информация о нем, все платежи.

Помогите, пожалуйста!!!

После перемещения элементов на вкладку перестал работать их код

$
0
0
Народ, доброго времени суток! Столкнулся с такой проблемой: есть рабочая форма с множеством контролов. Возникла необходимость расширить ее функционал. Растягивать ее не резон, так как мониторы и разрешение у всех юзеров разные, поэтому как-то габариты этой формы я оптимизировал под всех них, и менять это не хочется. Решил я воспользоваться "Вкладками". Переместил часть контролов на "Вкладку_1", часть на "Вкладку_2" и т.д. Но тут столкнулся с проблемой: перестал срабатывать код на их (контролов) события. Допустим, в ПолеСоСписком1 на AfterUpdate была инструкция. После перемещения его на вкладку, она перестала срабатывать... Причем, самое интересное, если удалить инструкцию ПолеСоСписком1_AfterUpdate и создать ее заново, то все начинает работать нормально... о_О Это чего ж мне теперь все инструкции вручную переписывать? Чего они отвалились то?

З.Ы. проект сделан в А2003, сейчас его правлю в А2016

Создание нескольких полей из одного

$
0
0
Доброго времени суток
Дано:
Есть таблица, допустим tblOut, в которой, помимо прочего, есть два поля, допустим "fldOut" (Исх.№) и "fldOutDate" (Дата исх.)
Задача:
Создать запрос, возвращающий несколько полей, название каждого из которых совпадает с номером года, в каждом из которых будут выведены все исх.№ за этот год.

В первом приближении получил что-то вроде:
SELECT IIf(Year([fldOutDate])=2008,Replace(fldOut,"200/","")) AS 2008, IIf(Year([fldOutDate])=2009,Replace(fldOut,"200/","")) AS 2009
FROM tblOut

(Replace убирает ненужную для дальнейшей работы постоянную часть из исх.№)

Результат работы запроса выглядит примерно так:

2008 2009
2
4
5
10
15
.........5
.........7
.........11
.........20
.........23

Вопрос - есть ли способ убрать из результата работы запроса пустые места?
Чтобы было так:

2008 2009
2.......5
4.......7
5.......11
10......20
15......23

Заранее спасибо за советы

Реестр Windows

$
0
0
Приветствую всех!
На компе установлено две версии программы - полная и Runtime, соответственно в реестре имеется две ветки, Professional и Runtame.
Вопрос, как определить, что имеется только Professional или Runtame тоже.

Перенос данных из подчиненной формы в шаблон Ворд в заданном виде.

$
0
0
Приветствую всех! Помогите решить задачу. Надо подготовить документ Ворд на основе шаблона. Не могу сделать перенос данных из "подформаПлатежи" в заранее нарисованную в шаблоне таблицу. Надо переносить "Номер_недели" из подформы в "Неделя" шаблона и "Платеж" из подформы в "Платеж" шаблона. Количество Платежей(недель) может быть разное, но не более 30. Таблица в шаблоне должна быть именно такая - 15строк + 15строк, в один столбец вертикально нельзя.
Выкладываю файлы бд и шаблона.

mysysaccessstrorage

$
0
0
Что то пошло не так..... и база перестала открываться.....
отсутствует разрешение на чтение mysysaccessstrorage говорит
Импортировать в новую базу данные не получается... - говорит поврежден VBA проект и надо его удалить....
После попытки открыть файл напрямую его размер с 30 мегов до 10 падает....
Слава Богу я пытался открывать только его копии...
Сохраненная рабочая копия есть - но 2 дня работы будут похерены....
Кто что может подсказать?

Список (поле со списком) и поле.

$
0
0
Добрый день!
Не подскажите с одним вопросом? Есть таблица, в ней поля Мероприятия, Дата и Участники. Как сделать чтобы в окне формы был список (или поле со списком) со значениями из полей Мероприятия и внизу было поле со значениями Участики? Чтобы я мог выбрать необходимое мне мероприятие и отредактировать участников и поотм нажать кнопку сохранить.

некорректный вывод символа номер в отчете в поле rtf

$
0
0
Добрый день, форумчане!

Помогите советом: что делать с символом № в поле отчета, формат текста которого задан RTF (формат поля так задан для выравнивания по ширине).
Проблема в том, что к символу № не применяется шрифт (ни Times New Roman, ни какой-либо другой - как это выглядит наглядно видно в изображении, которое доступно по ссылке, а также прикреплено. Для наглядности применен шрифт Impact, что бы было явно видно)
При выгрузке отчета из Accessa и при просмотре в word - шрифт применяется, но мне надо рапечатывать именно из Access!

Очень надеюсь, что направите в каком направлении думать, что бы решить задачку!
Viewing all 3060 articles
Browse latest View live