SELECT
row_number() over (PartitionBY Locations.Location_ID Orderby Locations.Region ) as num,
Locations.Region, Employees.FullName, Count(DATA.ID) AS [Count-ID]
FROM (Locations INNER JOIN Employees ON Locations.[Location_ID] = Employees.[Location]) INNER JOIN DATAON Employees.[Login] = DATA.[CreatedBy]
GROUPBY Locations.Region, Employees.FullName, num
ORDERBYCount(DATA.ID) DESC;
Нужно псевдополе num, access-у не нравится конструкция row_number() over (Partition BY Locations.Location_ID Order by Locations.Region ) as num, ошибка синтаксиса, пропущен оператор. Через order by - тоже ругается. А мне нужна нумерация строк по региону. Помогите, пожалуйста, не понимаю в чем ошибка
Добрый день. Вопрос вот в чем: - делала отчет, но в связи с тем что в нем много полей ширина не позволяет все уместить. Есть ограничение на ширину (чуть меньше 60 см). В связи с этим решила попробовать сформировать отчет в экселе, но есть проблема.
Скажите пожалуйста, есть ли возможность программно добавлять строки для вставки данных в нужное место, напр. добавить данные за очередной месяц и не резервировать строки заранее, чтобы потом не удалять пустые?
Добрый день. Помогите решить такую проблему. Нужно из таблицы внешнего файла добавить имеющуюся там запись в такую же таблицу текущей базы. Как это сделать? Прошу помочь
Каким образом можно автоматом записать значение в поле таблицы из запроса ( значение по умолчанию, макросом или нужен код). Есть табл Продажа. связанная с табл. ПродажаТовара. На основе ПродажаТовара создан запрос ПродажаТовара с полями ШтрихКод, Количество, НаименованиеТовара, Цена, ЦенаПрайс,Сумма. На основе т.Продажа и зап.Продажа товара содздана форма для ввода данных. Так вот при добавлении товара сканером по штрих коду подставляются Наименование товара и цена прайса, а количество и цена вводятся вручную (за исключением количества =1 т.к значение по умолчанию) Сумма считается как количество*цена. Цена вводится по прайсу. Сразу скажу, что цена прайс часто меняется и делать сумму как цена прайс*количество не катит. Подскажите что-нибудь дельное, я еще новичок в Акссес.
Добрый день. Пытаюсь отправить email. Outlook и Outlook Express мне по определенным причинам не подходят. Решил воспользоваться найденным кодом:
Dim oMSG AsObjectDim oConfig AsObjectDim CFields AsObjectDim strBody AsString'создаем объект Message это наше письмоSet oMSG = CreateObject("CDO.Message")
'создаем объект Configuration это настройки соединенияSet oConfig = CreateObject("CDO.Configuration")
Set CFields = oConfig.Fields
Set oMSG.Configuration = oConfig
CFields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
CFields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.МойСервер.ru"
CFields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
CFields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
CFields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "УчетнаяЗапись"'"user" 'Login
CFields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "Пароль"'пароль
CFields("urn:schemas:mailheader:content-language") = "windows-1251"
CFields.Update
oMSG.To = "Кому@mail.ru"'адрес получателя
oMSG.From = "ОтКого@ МойСервер.ru"'адрес отправителя
oMSG.Subject = "Тема"' тема письма
oMSG.BodyPart.Charset = "windows-1251"' кодировака письма
oMSG.AddAttachment "D:\Файл.txt"'путь к вложенному файлу
strBody = "Текст"' Текст сообщения (может быть текстовым или в формате HTML)
oMSG.HTMLBody = strBody 'тело письма
oMSG.send 'отправляем'обнуляем переменныеSet CFields = NothingSet oConfig = NothingSet oMSG = Nothing
Если в качестве сервера исходящей почты использовать сторонний сервис, например Майл.ру или Яндекс.ру, все замечательно работает. Но я хочу отправлять письма со своего VPS арендованного сервера. Пытаюсь это сделать. При выполнение строки кода oMSG.send выскакивает ошибка: «run-time error -2147220973(80040213)» далее какие-то краказяблы. В Outlook Express завел учетную запись – работает. В Telnetе пишу «o СерверМоейПочты 25», возвращает «220 ESMTP Exim 4.72”
Посоветуйте в какую сторону капать чтоб победить проблему? Спасибо.
Добрый день! Ч-з API в рекордсет выводим отобранные данные. Доступны поля "С" "По", т.е. в эти поля вводим, напр., 01.01.2018 и 10.01.2018 и получаем все записи с 1 по 10 января включительно. Как красиво\оптимально сделать так, чтобы в поле со списком выбирать месяцы, а в итоге получать диапазон дат указанного месяца (с 1 по последний день) применительно к текущему году? Может есть какие-нибудь красивые решения? Мне кроме тупой подстановки ничего в голову не приходит.. :( Буду признательна за любые решения\идеи.
Добрый день! Ч-з API в рекордсет выводим отобранные данные. Доступны поля "С" "По", т.е. в эти поля вводим, напр., 01.01.2018 и 10.01.2018 и получаем все записи с 1 по 10 января включительно. Как красиво\оптимально сделать так, чтобы в поле со списком выбирать месяцы, а в итоге получать диапазон дат указанного месяца (с 1 по последний день) применительно к текущему году? Может есть какие-нибудь красивые решения? Мне кроме тупой подстановки ничего в голову не приходит.. :( Буду признательна за любые решения\идеи.
Добрый день! Ч-з API в рекордсет выводим отобранные данные. Доступны поля "С" "По", т.е. в эти поля вводим, напр., 01.01.2018 и 10.01.2018 и получаем все записи с 1 по 10 января включительно. Как красиво\оптимально сделать так, чтобы в поле со списком выбирать месяцы, а в итоге получать диапазон дат указанного месяца (с 1 по последний день) применительно к текущему году? Может есть какие-нибудь красивые решения? Мне кроме тупой подстановки ничего в голову не приходит.. :( Буду признательна за любые решения\идеи.
Поиск не помог. Проблема: есть ОЛЕ-объект на форме, в котором открывается Эксель-файл. Этот файл служит шаблоном для программного заполнения. Есть код, который вызывает этот файл для заполнения. Проблема в ругани Аксесса (ошибка 1004) для кода:
Dim xl As Excel.Application, xbk As Excel.Workbook, xsh As Excel.Worksheet
Me.OLEBound806 = DLookup("Stencil", "ACC_Stencils", "Sten_Name='Inspection_Form_2018'") <= ищет правильный шаблон в таблице
Me.OLEBound806.Action = acOLEActivate
Set xl = GetObject(Class:="Excel.Application")
Set xbk = xl.ActiveWorkbook
xbk.SaveAs "C:\Users\" & Environ("USERNAME") & "\Desktop\test.xlsx", xlNormal <= вот тут ругается
xbk.Close
Set xbk = Excel.Workbooks.Open("C:\Users\" & Environ("USERNAME") & "\Desktop\test.xlsx")
.... заполняем сохраненную копию...
В старом Офисе 2003 работало на ура. Сейчас Access 2013, Windows 7
Поиск не помог. Проблема: есть ОЛЕ-объект на форме, в котором открывается Эксель-файл. Этот файл служит шаблоном для программного заполнения. Есть код, который вызывает этот файл для заполнения. Проблема в ругани Аксесса (ошибка 1004) для кода:
Dim xl As Excel.Application, xbk As Excel.Workbook, xsh As Excel.Worksheet
Me.OLEBound806 = DLookup("Stencil", "ACC_Stencils", "Sten_Name='Inspection_Form_2018'") <= ищет правильный шаблон в таблице
Me.OLEBound806.Action = acOLEActivate
Set xl = GetObject(Class:="Excel.Application")
Set xbk = xl.ActiveWorkbook
xbk.SaveAs "C:\Users\" & Environ("USERNAME") & "\Desktop\test.xlsx", xlNormal <= вот тут ругается
xbk.Close
Set xbk = Excel.Workbooks.Open("C:\Users\" & Environ("USERNAME") & "\Desktop\test.xlsx")
.... заполняем сохраненную копию...
В старом Офисе 2003 работало на ура. Сейчас Access 2013, Windows 7
Доброго времени суток. Появилась проблема, есть строковое поле в таблице. Выглядит сейчас так: Иванов Иван Иванович Иванов1 Иван Иванович Петров Петр Петрович Петров1 Петр Петрович
Появилась задача, как убрать цифры из ФИО, т.е. нужно оставить так: Иванов Иван Иванович Иванов Иван Иванович Петров Петр Петрович Петров Петр Петрович
Доброго времени суток. Появилась проблема, есть строковое поле в таблице. Выглядит сейчас так: Иванов Иван Иванович Иванов1 Иван Иванович Петров Петр Петрович Петров1 Петр Петрович
Появилась задача, как убрать цифры из ФИО, т.е. нужно оставить так: Иванов Иван Иванович Иванов Иван Иванович Петров Петр Петрович Петров Петр Петрович
PrivateSub Кнопка23_Click()
Dim d As Dictionary
Dim s AsStringDim rs As ADODB.Recordset
Dim sSql AsString
sSql = "SELECT [Наименование проекта] FROM Проекты IN '' [MS Access;DATABASE=" & sPath & ";pwd=" & sPass & "];"
Debug.Print sSql
Set rs = CurrentProject.Connection.Execute(sSql)
rs.MoveFirst
DoUntil rs.EOF
s = rs.Fields("Наименование проекта")
Set d = GetKust2(s)
ForEach a In d
If Len(a) > 4 Or a = "Нет"Then
фЧтоКорректировать.AddItem a & " - " & s, 0
EndIfNext a
rs.MoveNext
Loop
rs.Close
Set rs = NothingEndSub
Сам SQL запрос получается таким:
SELECT [Наименование проекта] FROM Проекты IN'' [MS Access;DATABASE=C:\Art\МАКРОСЫ\MS_Access\ПроблеммныеВопросыИльнура\serv_BD.accdb;pwd=rf];
Но если SQL запрос немного откорректировать (строка 6):
PrivateSub Кнопка23_Click()
Dim d As Dictionary
Dim s AsStringDim rs As ADODB.Recordset
Dim sSql AsString
sSql = "SELECT [Наименование проекта] FROM Проекты IN '' [MS Access;DATABASE=" & sPath & ";pwd=" & sPass & "] WHERE [Наименование проекта] LIKE " & sMask1 & ";"
Debug.Print sSql
Set rs = CurrentProject.Connection.Execute(sSql)
rs.MoveFirst
DoUntil rs.EOF
s = rs.Fields("Наименование проекта")
Set d = GetKust2(s)
ForEach a In d
If Len(a) > 4 Or a = "Нет"Then
фЧтоКорректировать.AddItem a & " - " & s, 0
EndIfNext a
rs.MoveNext
Loop
rs.Close
Set rs = NothingEndSub
То он почему-то перестаёт работать, выскакивает ошибка: BOF или EOF имеет значение True, либо текущая запись удалена. Для выполняемой операции требуется текущая запись. На строке:
rs.MoveFirst
Сам SQL запрос выглядит так:
SELECT [Наименование проекта] FROM Проекты IN'' [MS Access;DATABASE=C:\Art\МАКРОСЫ\MS_Access\ПроблеммныеВопросыИльнура\serv_BD.accdb;pwd=rf] WHERE Проекты.[Наименование проекта] LIKE'*бустройств*уст*кважи*#*';
И выполняется без проблем, если его выполнить, через создание запроса, пользовательскими средствами MS Access. Возвращает следующее: см. КАРТИНКА В чём ошибка не могу понять?
PrivateSub Кнопка23_Click()
Dim d As Dictionary
Dim s AsStringDim rs As ADODB.Recordset
Dim sSql AsString
sSql = "SELECT [Наименование проекта] FROM Проекты IN '' [MS Access;DATABASE=" & sPath & ";pwd=" & sPass & "];"
Debug.Print sSql
Set rs = CurrentProject.Connection.Execute(sSql)
rs.MoveFirst
DoUntil rs.EOF
s = rs.Fields("Наименование проекта")
Set d = GetKust2(s)
ForEach a In d
If Len(a) > 4 Or a = "Нет"Then
фЧтоКорректировать.AddItem a & " - " & s, 0
EndIfNext a
rs.MoveNext
Loop
rs.Close
Set rs = NothingEndSub
Сам SQL запрос получается таким:
SELECT [Наименование проекта] FROM Проекты IN'' [MS Access;DATABASE=C:\Art\МАКРОСЫ\MS_Access\ПроблеммныеВопросыИльнура\serv_BD.accdb;pwd=rf];
Но если SQL запрос немного откорректировать (строка 6):
PrivateSub Кнопка23_Click()
Dim d As Dictionary
Dim s AsStringDim rs As ADODB.Recordset
Dim sSql AsString
sSql = "SELECT [Наименование проекта] FROM Проекты IN '' [MS Access;DATABASE=" & sPath & ";pwd=" & sPass & "] WHERE [Наименование проекта] LIKE " & sMask1 & ";"
Debug.Print sSql
Set rs = CurrentProject.Connection.Execute(sSql)
rs.MoveFirst
DoUntil rs.EOF
s = rs.Fields("Наименование проекта")
Set d = GetKust2(s)
ForEach a In d
If Len(a) > 4 Or a = "Нет"Then
фЧтоКорректировать.AddItem a & " - " & s, 0
EndIfNext a
rs.MoveNext
Loop
rs.Close
Set rs = NothingEndSub
То он почему-то перестаёт работать, выскакивает ошибка: BOF или EOF имеет значение True, либо текущая запись удалена. Для выполняемой операции требуется текущая запись. На строке:
rs.MoveFirst
Сам SQL запрос выглядит так:
SELECT [Наименование проекта] FROM Проекты IN'' [MS Access;DATABASE=C:\Art\МАКРОСЫ\MS_Access\ПроблеммныеВопросыИльнура\serv_BD.accdb;pwd=rf] WHERE Проекты.[Наименование проекта] LIKE'*бустройств*уст*кважи*#*';
И выполняется без проблем, если его выполнить, через создание запроса, пользовательскими средствами MS Access. Возвращает следующее: см. КАРТИНКА В чём ошибка не могу понять?
Имеется ли в VBA возможность закомментировать выделенный участок кода, нажатием горячих клавиш? ------------------------------------------------------------------------ Спасибо за ответ.
Имеется ли в VBA возможность закомментировать выделенный участок кода, нажатием горячих клавиш? ------------------------------------------------------------------------ Спасибо за ответ.
Здесь датчик приближения перемещается из одной партии (ПГП 16) на другую(ПГП 21) и обратно. Как бы сделать так, чтобы программа автоматически показывала кол-во датчиков на отдельных партиях (в данном случае что дат. прибл. находится на ПГП 16), отбрасывая предыдущие перемещения датчиков.