-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4

Invalid link!








Добавить любой RSS - источник (включая журнал LiveJournal) в свою ленту друзей вы можете на странице синдикации.

Исходная информация - http://www.sql.ru/forum/actualtopics.aspx?bid=4.
Данный дневник сформирован из открытого RSS-источника по адресу http://www.sql.ru/forum/actualrss.aspx?id=4, и дополняется в соответствии с дополнением данного источника. Он может не соответствовать содержимому оригинальной страницы. Трансляция создана автоматически по запросу читателей этой RSS ленты.
По всем вопросам о работе данного сервиса обращаться со страницы контактной информации.

[Обновить трансляцию]

Создание папки в CurrentProject.Path

Суббота, 28 Июня 2014 г. 19:33 + в цитатник
Здравствуйте, помогите с созданием новой папки для дальнейшего сохранения в нее файла после слияния с word. Необходимо чтобы папка создавалась в папке с файлом access.

Сделал по примеру с сохранением в определенной директории на жестком диске. Работает:

Private Sub FOLD_Click()

Const sDir = "E:\TEST\"
Dim s$
s = Trim(ФИО) & "_" & Trim(ДАТА)
If Len(s) = 0 Then
ElseIf Len(Dir(sDir & s, vbDirectory)) = 0 Then
MKDIR sDir & s
End If

End Sub


Попытался сделать аналогично но с сохранением в папке с файлом Access. Не работает(. Выдает ошибку constant expression required

Private Sub FOLD_Click()

Const sDir = CurrentProject.Path & "\TEST\"
Dim s$
s = Trim(ФИО) & "_" & Trim(Дата)
If Len(s) = 0 Then
ElseIf Len(Dir(sDir & s, vbDirectory)) = 0 Then
MKDIR sDir & s
End If

End Sub

Подскажите где ошибка

http://www.sql.ru/forum/1102646/sozdanie-papki-v-currentproject-path


События контролов подчиненной таблицы/запроса на форме

Суббота, 28 Июня 2014 г. 12:47 + в цитатник
На форме имеется подчиненная форма, объект-источник которого таблица или запрос.
Возможно ли обработать события контролов этой подчиненной таблицы?

http://www.sql.ru/forum/1102613/sobytiya-kontrolov-podchinennoy-tablicy-zaprosa-na-forme


Как в запрос с параметром [Укажите фамилию] ввести две и больше фамилии?

Суббота, 28 Июня 2014 г. 03:37 + в цитатник
Всем привет.
Есть один запрос с параметром, скажем, [Укажите фамилию]. Но мне нужно ввести две и больше фамилии. Пробовал использовать оператор "Or", функцию In (In([Укажите фамилию], вводил фамилии в скобках и через запятую), но не получилость.
Подскажите, как в один параметр правильно ввести несколько вариантов.
Заранее благодарен за помощь.

http://www.sql.ru/forum/1102592/kak-v-zapros-s-parametrom-ukazhite-familiu-vvesti-dve-i-bolshe-familii


Работа с SQL-выражениями запросов

Пятница, 27 Июня 2014 г. 19:24 + в цитатник
Есть сохранённый запрос1 на выборку из таблицы1
В коде вместо него можно открыть и его SQL выражение:
...OpenRecordset("Select * From Table1"...

Такой же сохранённый к таблице2:
...OpenRecordset("Select * From Table2"...

А можно ли представить в виде SQL-строки запрос к запросам1 и 2?
Иными словами - вообще отказаться от сохранённых запросов.

http://www.sql.ru/forum/1102529/rabota-s-sql-vyrazheniyami-zaprosov


Поиск по 2-м разным таблицам

Пятница, 27 Июня 2014 г. 17:05 + в цитатник
Уважаемые, добрый день!

Хотелось бы с вами посоветоваться по поводу следующего:
Имеется две таблицы:

Первая таблица
ID_Фамилия
Фамилия

Вторая таблица
ID_Статья
Статья(поле Memo)

Необходимо вывести те статьи в которых встречались фамилии, при условии что в одной статье указывается одна фамилия, задача вроде как простая, но при этом хотелось спросить:
можно ли сделать такой поиск только запросами SQL? (Like и т.д)

http://www.sql.ru/forum/1102506/poisk-po-2-m-raznym-tablicam


как получить сумму по контрагенту

Пятница, 27 Июня 2014 г. 16:16 + в цитатник
Господа, можно ли сформировать запрос для получения суммы накладных в разрезе только клиента или только дебитора?? Пример ниже

http://www.sql.ru/forum/1102493/kak-poluchit-summu-po-kontragentu


Из Access создать каталог на SQL сервере

Пятница, 27 Июня 2014 г. 13:41 + в цитатник
Принудили. Понадобилось на сервере хранить документы (в ФС сервера),
для этого нужно иногда создавать каталоги.

Нужно исполнить строку на сервере, типа "exec master..xp_cmdshell 'MD c:\Docs\2014';"

DoCmd.RunSql "exec master..xp_cmdshell 'MD c:\Docs\2014';" --- не подходит. Может кто подскажет как?

(Access 2003, MDB)

Спасибо.

http://www.sql.ru/forum/1102468/iz-access-sozdat-katalog-na-sql-servere


Неожиданный результат производительности запроса

Пятница, 27 Июня 2014 г. 12:25 + в цитатник
По факту имею запрос на SQL 2008:
SELECT V_OPU_d.*
FROM t_BE LEFT OUTER JOIN
t_BE_Access ON t_BE.BE = t_BE_Access.BE INNER JOIN
V_OPU_d ON t_BE.BE = V_OPU_d.BE
WHERE (t_BE.BE IS NOT NULL) AND (t_BE_Access.BE IS NULL)
Объекты t_... -таблицы, v_... -представление. Все записи V_OPU_d открываются примерно за 2 мин.
Время исполнения приведенного запроса в ms sql среде - 6 мин 44 сек. "Один в один" запрос в Access 2003 c присоединенными sql-таблицами и теми же именами выдает результат через 2 мин.
"Настольная" среда оказывается в 3 раза быстрее!

Сервер загружен мало. Сетевой интерфейс 100 мб/с ПК загружается на ~70%, проц на ~30%

Знатоки: объясните такой парадокс?!

http://www.sql.ru/forum/1102438/neozhidannyy-rezultat-proizvoditelnosti-zaprosa


проблема с ценой товара

Пятница, 27 Июня 2014 г. 00:39 + в цитатник
привожу пример.
купил товар за 10 руб 100 шт.
продал 40 шт за 15 руб.
оставшийся товар хочу продать за 14 руб.
когда меняю цену в таблице товара на 14, то ранее проданный товар тоже вычисляется по новой цене во всех отчетах.
как сделать так, чтобы отчеты ранее проданных товаров не изменились.
схема данных один-ко-многим

http://www.sql.ru/forum/1102374/problema-s-cenoy-tovara


Join expression not supported. (Error 3296)

Четверг, 26 Июня 2014 г. 17:30 + в цитатник
Добрый день.
Есть запрос, который в режиме дизайнера SQL работает без ошибок, но как только я его сохраняю как вьюшку, закрываю и открываю эту вьюшку, то вылазит ошибка Join expression not supported. (Error 3296)
Получается, что Access каким-то образом форматирует и убирает скобки?
SELECT DISTINCT
*
FROM ((((((((tbl_ref_Countries 
RIGHT JOIN (tbl_ref_Producers 
RIGHT JOIN ((h_tbl_Material 
INNER JOIN vw_MaterialStatus ON h_tbl_Material.MCode = vw_MaterialStatus.MCode) 
LEFT JOIN 
tbl_ref_Suppliers ON h_tbl_Material.SupplierID = tbl_ref_Suppliers.SupplierId) ON tbl_ref_Producers.ProducerId = h_tbl_Material.ProducerId) ON tbl_ref_Countries.CountryId = tbl_ref_Producers.CountryId) 
LEFT JOIN 
vw_MaterialPalletizing_Unit_Case ON h_tbl_Material.MCode = vw_MaterialPalletizing_Unit_Case.MCode
) 
LEFT JOIN 
vw_KAListing_Short AS vwREALListing_Short ON (h_tbl_Material.MCode = vwREALListing_Short.UL_MCode AND 
						 vwREALListing_Short.KAId = 4
)) 
LEFT JOIN 
vw_KAListing_Short AS vwEKOListing_Short ON (h_tbl_Material.MCode = vwEKOListing_Short.UL_MCode AND 
                         vwEKOListing_Short.KAId = 8
))
LEFT JOIN 
vw_KAListing_Short AS vwKaravanListing_Short ON (h_tbl_Material.MCode = vwKaravanListing_Short.UL_MCode AND 
                         vwKaravanListing_Short.KAId = 7
))
LEFT JOIN 
vw_KAListing_Short AS vwMetroListing_Short ON (h_tbl_Material.MCode = vwMetroListing_Short.UL_MCode AND 
                         vwMetroListing_Short.KAId = 1
))
LEFT JOIN 
vw_KAListing_Short AS vwFozzyListing_Short ON (h_tbl_Material.MCode = vwFozzyListing_Short.UL_MCode AND 
                         vwFozzyListing_Short.KAId = 5
))
LEFT JOIN 
vw_KAListing_Short AS vwAuchanListing_Short ON (h_tbl_Material.MCode = vwAuchanListing_Short.UL_MCode AND 
                         vwAuchanListing_Short.KAId = 2
)) 
LEFT JOIN 
vw_KAListing_Short AS vwCosmoListing_Short ON (h_tbl_Material.MCode = vwCosmoListing_Short.UL_MCode AND 
                         vwCosmoListing_Short.KAId = 6
						 )

http://www.sql.ru/forum/1102321/join-expression-not-supported-error-3296


Как в динамическом Recordset-е правильно увидеть новую запись?

Четверг, 26 Июня 2014 г. 14:53 + в цитатник
Можно ли вообще в динамическом Recordset-е увидеть новую запись без Requery?
В таймере делаю Requery через 20 секунд, с последующей установкой курсора на то место где он был до этого у пользователя. Но пользователей много (>70) и SQL-сервер стал сильно грузиться этими дёрганиями.
В динамическом Recordset-е всё хорошо: кто-то изменил запись - через несколько секунд все это видят, кто-то удалил запись запись - тоже видят. А можно ли так, чтобы кто-то добавил запись и все это тоже увидели, ну как в WallBoard? Requery через 20 секунд здорово грузят сервер ... М.б. существует другой способ?
Да, совсем даже не важно именно увидеть, а нужно (оптимально) проверить: увеличился или нет счётчик или RecodCount, и если да, то только тогда делать - RequeryWithID Me, Me.ID.
--
MSA 2003, а таблицы на MS SQL (ODBC)
Заранее спасибо.

http://www.sql.ru/forum/1102270/kak-v-dinamicheskom-recordset-e-pravilno-uvidet-novuu-zapis


Сложный запрос с подзапросами

Четверг, 26 Июня 2014 г. 13:13 + в цитатник
Приветствую!
Комрады, прошу помощи, так как сам я на поиск решения убил уже много дней. Прикладываю кусок базы с нужными таблицами и тестовыми данными и картинку, показывающую структуру и результирующий запрос, который мне нужно получить (обведен жирной рамкой. Запрос один, перенес для экономии места.
Несколько комментариев:
1. refer формируется в зависимости от признака пола (tblClients.sex). Для каждого offer_id всегда есть запись.
Для tblClients.sex=1 - tblOffPersRefer.persReferM + tblClients.client_name + tblClients.client_midname
для tblClients.sex=2 - tblOffPersRefer.persReferF + tblClients.client_name + tblClients.client_midname
для tblClients.sex=0 - tblOffPersRefer.persReferNot
2. tblOffParams. Содержит параметры для клиентов для определенных offer_id. Не для всех offer_id есть клиенты с параметрами.
3. tblOffAction (самое сложное)
Данные транспонируются из таблицы tblOffAction в зависимости от признака пола (tblClients.sex). Пример на картинки. Для пола 0 и 1 данные идентичны (tblOffAction.action_textM).
4. Фильтр отбора для запроса - offer_id.
Сложность для меня в том, что нужно использовать вложенные запросы, для транспонирования некоторых данных активно использовать альясы... В общем на текущий момент я решил только часть задачи
Вытащил обращение + имя отчество в строку
+
SELECT tblClients.client_id, 
    t1.action_textF AS action_text_yes, 
    t2.action_textF AS action_text_not, 
    t3.action_textF AS action_text_notnow
FROM 
    tblOffActions AS t1, 
    tblOffActions AS t2, 
    tblOffActions AS t3, 
    tblOffers INNER JOIN tblClients ON tblOffers.client_id = tblClients.client_id
WHERE 
    tblClients.sex="2" 
    AND t1.action_id=1 
    AND t2.action_id=2 
    AND t3.action_id=3 
    AND tblOffers.offer_id=99 
    AND t1.offer_id=99 
    AND t2.offer_id=99 
    AND t3.offer_id=99
UNION
SELECT tblClients.client_id, 
    t1.action_textM AS action_text_yes, 
    t2.action_textM AS action_text_not, 
    t3.action_textM AS action_text_notnow
FROM 
    tblOffActions AS t1, 
    tblOffActions AS t2, 
    tblOffActions AS t3, 
    tblOffers INNER JOIN tblClients ON tblOffers.client_id = tblClients.client_id
WHERE 
    tblClients.sex NOT LIKE "2"
    AND t1.action_id=1 
    AND t2.action_id=2 
    AND t3.action_id=3 
    AND tblOffers.offer_id=99 
    AND t1.offer_id=99 
    AND t2.offer_id=99 
    AND t3.offer_id=99

Пришить к нему поля с параметрами (tblOffParams) с учетом того, что не для всех клиентов есть поля, не получается.
Очень прошу помощи!
_____________________
А что на самом деле хотел сказать Frost_Imp никто не знает, так как администрация форума попросила его быть вежливым.

http://www.sql.ru/forum/1102241/slozhnyy-zapros-s-podzaprosami


Условие для интервала дат

Четверг, 26 Июня 2014 г. 11:51 + в цитатник
Здравствуйте.

Есть таблица Календарь, с датами.

Нужно следующее условие.

Если сегодня 1 - 17 число месяца, то нужно выбирать даты с 01-го по 15-ое число текущего месяца, если сегодня число больше 17-го, то нужно выбирать даты с 16-го по конец месяца.

Написал такое условие, но оно не работает (выдает пустую ячейку) :
SELECT [25 календарь].Д
FROM [25 календарь]
WHERE ((([25 календарь].Д)=IIf(Day(Date())<=17,([25 календарь].Д) Between DateSerial(Year(Date()),Month(Date()),1) And DateSerial(Year(Date()),Month(Date()),15),([25 календарь].Д) Between DateSerial(Year(Date()),Month(Date()),16) And DateSerial(Year(Date()),Month(Date())+1,0))));


Где Д - это колонка с датами с начала 2010 по конец 2019. Ячейки не повторяются.

Подскажите - что делаю не так?

http://www.sql.ru/forum/1102222/uslovie-dlya-intervala-dat


почему поле запроса обрезается ?

Четверг, 26 Июня 2014 г. 01:23 + в цитатник
Третий день пытаюсь решить следующий вопрос,
но видимо без посторонней помощи не обойтись.

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

SELECT [Выражение1]
FROM [художественная литература];
UNION ALL SELECT [Выражение1]
FROM[техническая литература];
UNION ALL SELECT [Выражение1]
FROM[научная фантастика];

Все что больше 255 символов безжалостно обрезается. Длина некоторых таких строк должна составлять до 400 символов.
Как увеличить придел длины возвращаемых строк? Очень нужно.

Заранее спасибо.

http://www.sql.ru/forum/1102187/pochemu-pole-zaprosa-obrezaetsya


Блокировка записей по истечению времени

Четверг, 26 Июня 2014 г. 00:06 + в цитатник
Добрый день
Есть таблица, и табличная форма к этой таблице.
Возможно ли сделать блокировку изменения записей через форму по истечению некоторого времени(допустим сутки)?

Или это уже я намудрил?

Если есть, подскажите плз в какую хоть сторону копать.


Заранее спасибо.

http://www.sql.ru/forum/1102179/blokirovka-zapisey-po-istecheniu-vremeni


использование результата запроса в другом запросе через join

Среда, 25 Июня 2014 г. 21:25 + в цитатник
Добрый день!
В поиске не смогла найти ничего похожего.
SQL в MS Access пользуюсь всего третий день.

У меня есть две таблицы, в таблице1 есть id пользователя, а в таблице2 этот id входит в текстовое поле, в котором есть лишние символы.

Я создала два запроса:

в запросе1 с помощью Mid и InStr извлекла id пользователя из текстового поля таблицы2
в запросе2 соединила данные из таблицы1 c данными из таблицы2 через запрос1(через извлеченный id)

Подскажите, есть ли возможность обойтись одним запросом? то есть сразу извлечь id из таблицы2 и использовать для связи с таблицой1. Мне обязательно нужно, чтобы был один sql запрос.

http://www.sql.ru/forum/1102161/ispolzovanie-rezultata-zaprosa-v-drugom-zaprose-cherez-join


формат поля запроса

Среда, 25 Июня 2014 г. 16:03 + в цитатник
указан формат "фиксированный", число десятичных знаков: 2.
поле запроса выводит 8,00, но если кликнуть на поле, то появляется 7,99999982118607.
как сделать, чтобы всегда было 8,00?

http://www.sql.ru/forum/1102094/format-polya-zaprosa


текст запроса из txt

Среда, 25 Июня 2014 г. 15:57 + в цитатник
Еще один вопрос, связанный со сложными по структуре запросами.
Довольно-таки нудно форматировать SQL запрос в VBA для построения рекордсета. Существует ли опыт сохранения текста запроса в текстовый файл, а уже из него доставать этот текст как строку? Другими словами, нужно сформировать такой запрос
+
SELECT t2.*, tblOffParams.txt1, tblOffParams.txt2, tblOffParams.txt3, tblOffParams.txt4, tblOffParams.txt5, tblOffParams.int1, tblOffParams.dt1
FROM 
    (
        SELECT tblClients.client_id, tblOffPersRefer.persReferF & 
        (
            ' ' + tblClients.client_name +' '+tblClients.client_midname
        ) 
        AS Refer, tblClients.birthday, tblClients.sex, tblOffers.from, tblOffers.to FROM 
        (
            tblOffers LEFT JOIN tblClients ON tblOffers.client_CRM = tblClients.client_CRM
        ) 
        LEFT JOIN tblOffPersRefer ON tblOffers.offer_id = tblOffPersRefer.offer_id 
        WHERE tblOffers.offer_id= 101 AND tblClients.sex='2'
    )  
    AS t2 
    INNER JOIN tblOffParams ON t2.client_id = tblOffParams.client_id
    WHERE tblOffParams.offer_id=101
UNION ALL
SELECT t1.*, tblOffParams.txt1, tblOffParams.txt2, tblOffParams.txt3, tblOffParams.txt4, tblOffParams.txt5, tblOffParams.int1, tblOffParams.dt1
FROM 
    (
        SELECT tblClients.client_id, tblOffPersRefer.persReferM & 
        (
            ' ' + tblClients.client_name +' '+tblClients.client_midname
        ) 
        AS Refer, tblClients.birthday, tblClients.sex, tblOffers.from, tblOffers.to FROM 
        (
        tblOffers LEFT JOIN tblClients ON tblOffers.client_CRM = tblClients.client_CRM
        ) 
        LEFT JOIN tblOffPersRefer ON tblOffers.offer_id = tblOffPersRefer.offer_id 
        WHERE tblOffers.offer_id= 101 AND tblClients.sex='1'
    )  
    AS t1 
    INNER JOIN tblOffParams ON t1.client_id = tblOffParams.client_id
    WHERE tblOffParams.offer_id=101
UNION ALL
SELECT t0.*, tblOffParams.txt1, tblOffParams.txt2, tblOffParams.txt3, tblOffParams.txt4, tblOffParams.txt5, tblOffParams.int1, tblOffParams.dt1
FROM 
    (
        SELECT tblClients.client_id, tblOffPersRefer.persReferNot AS Refer, tblClients.birthday, tblClients.sex, tblOffers.from, tblOffers.to FROM 
        (
            tblOffers LEFT JOIN tblClients ON tblOffers.client_CRM = tblClients.client_CRM
        ) 
        LEFT JOIN tblOffPersRefer ON tblOffers.offer_id = tblOffPersRefer.offer_id 
        WHERE tblOffers.offer_id= 101 AND tblClients.sex='0'
    )  
    AS t0 
    INNER JOIN tblOffParams ON t0.client_id = tblOffParams.client_id
    WHERE tblOffParams.offer_id=101

Перегонять его в VBA - адский труд. И еще не дай бог что-нибудь в запросе изменится. А вот если бы что-то вроде
Set rs0 = CurrentDb.OpenRecordset(<ссылка на файл.txt>)
Возможно?

http://www.sql.ru/forum/1102092/tekst-zaprosa-iz-txt


Запрос, не возвращающий данные "обнуляет" отчет

Среда, 25 Июня 2014 г. 15:38 + в цитатник
Добрый день.
Ситуация следующая:
Имеется некий запрос, состоящий из нескольких "дочерних" запросов и являющийся источником записей отчета. Проблема состоит в том, что когда один из "дочерних" запросов не возвращает результат из БД (например: необходимо вывести данные за некоторую дату, но за эту дату данных в БД просто нет), то главный запрос, а вслед за ним и весь отчет оказывается пустым.
Есть ли способ обойти данную проблему в Access? Насколько я понимаю, корень проблемы состоит в самом понятии "Источник записей" для отчета. Скажем в Oracle Reports такой проблемы нет, т.к. отчет состоит из многих отдельных блоков, каждый из которых имеет собственный "источник записей".
Прошу подсказать решение.

http://www.sql.ru/forum/1102090/zapros-ne-vozvrashhaushhiy-dannye-obnulyaet-otchet


Форматирование запроса в сторонних редакторах

Среда, 25 Июня 2014 г. 15:01 + в цитатник
При форматировании сложных запросов использую Notepad++, в строках часто использую отступы (табуляции). При копировании такого запроса в окно SQL Акцесса - появляются символы табуляции. Они не влияют на качество выполнения запроса, однако сильно затрудняют редактирование. Кто пользуется таким же методом, подскажите, как исключить знаки табуляции при копировании кода из Notepad++ в Access. Способ "найти и заменить" в блокноте не предлагать.
_____________________
А что на самом деле хотел сказать Frost_Imp никто не знает, так как администрация форума попросила его быть вежливым.

http://www.sql.ru/forum/1102077/formatirovanie-zaprosa-v-storonnih-redaktorah



Поиск сообщений в rss_sql_ru_access_programming
Страницы: 353 ... 59 58 [57] 56 55 ..
.. 1 Календарь