Search code, repositories, users, issues, pull requests…
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Sign up
|
Hells Korzhik 0 / 0 / 0 Регистрация: 24.05.2018 Сообщений: 11 |
||||
|
1 |
||||
|
20.03.2020, 19:05. Показов 3789. Ответов 6 Метки microsoft access (Все метки)
Всем доброго дня.
Миниатюры
0 |
|
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
20.03.2020, 19:05 |
|
6 |
|
Заблокирован |
|
|
20.03.2020, 19:22 |
2 |
|
сделать перекрестный запрос отображающий по отделам количество сотрудников родившихся в каждом месяце и за весь год Если так, то при чём тогда «PIVOT Сотрудники.Фамилия» ? Нарисуйте то что вы хотите получить в начале (лучше в формате nxn) — подумаем.
0 |
|
mobile 26799 / 14478 / 3192 Регистрация: 28.04.2012 Сообщений: 15,782 |
||||
|
20.03.2020, 19:29 |
3 |
|||
|
Решение
перекрестный запрос отображающий по отделам количество сотрудников родившихся в каждом месяце и за весь год Попробуйте. Возможны ошибки, так как не знаю что за таблица Дата2 и зачем она здесь нужна
0 |
|
0 / 0 / 0 Регистрация: 24.05.2018 Сообщений: 11 |
|
|
20.03.2020, 22:45 [ТС] |
4 |
|
Да, я сам крайне запутался, когда создавал данный запрос и создал Дата2 для передачи месяцев в таблицу (См.Фото)-она пустая,и использоваться не будет-так думаю.
0 |
|
Модератор 5613 / 2726 / 672 Регистрация: 12.06.2016 Сообщений: 7,293 |
|
|
21.03.2020, 00:11 |
5 |
|
Предложенный вариант не работает Вижу расхождение — в предложенном варианте PIVOT Format([Дата_рождения],»mmm») А у Вас как? Смотрите внимательнее.
0 |
|
Hells Korzhik 0 / 0 / 0 Регистрация: 24.05.2018 Сообщений: 11 |
||||
|
21.03.2020, 00:32 [ТС] |
6 |
|||
|
Сильно доработал — и получился вот такой вариант.
Миниатюры
0 |
|
Hells Korzhik 0 / 0 / 0 Регистрация: 24.05.2018 Сообщений: 11 |
||||
|
21.03.2020, 01:32 [ТС] |
7 |
|||
|
Все получилось-спасибо за участие!
Миниатюры
0 |
MurCode
- Форумы
- Поиск
- О проекте
Ошибка синтаксиса — не могу найти
Gugy
Дата: 03.02.2012 13:33:31
| studieren |
|---|
| Gugy,
Вы скорее всего не подключили библиотеку DAO. |
действительно:( Уже подключила… Спасибо!
Теперь выдает ошибку как и ранее «Ошибка синтаксиса в инструкции Transform»
mds_world
Дата: 03.02.2012 13:40:32
| Gugy |
|---|
| [Теперь выдает ошибку как и ранее «Ошибка синтаксиса в инструкции Transform» |
| Владимир Саныч |
|---|
| Распечатайте значение strSQL. |
Озверин
Дата: 03.02.2012 13:41:23
| Gugy |
|---|
| Добрый день! Перечитала многие темы, но ответ на свой вопрос не нашла. Мне нужно выполнить запрос SQL из VBA. Сам запрос отлично работает. Но вот из кода запустить не могу, так как выдает ошибку «Ошибка синтаксиса в инструкции TRANSFORM». Пробовала разные варианты, где может быть ошибка, но так и не нашла:( Вот мой код: Private Sub Kaz_Click() Dim q As String Dim strSQL As String q = "720293*" strSQL = "TRANSFORM Sum(Данные.Колво) AS [Sum-Колво] " & _ " SELECT Данные.Ex_im, Данные.Страна " & _ "FROM Данные " & _ "WHERE (( (Данные.Коды) Like " & Chr$(34) & q & Chr$(34) & ") AND ((Year([Дата]))=2010 Or (Year([Дата]))=2011))" & _ "GROUP BY Данные.Ex_im, Данные.Страна " & _ "PIVOT Данные.Дата;" DoCmd.RunSQL strSQL End Sub q — это одно из условий отбора, которое я планирую менять. Убирала с кода данное условия, но ошибку выдает ту же. Т.е. думаю, что проблема не в этом. |
скобок в where на 1 закрывающую больше вроде или на открывающую меньше.
судя по коду я бы поставил перед (Данные.Коды) еще 1 (
studieren
Дата: 03.02.2012 13:41:44
Gugy,
А теперь проверьте текст SQL. Т.е. сразу же после программного формирования SQL текста добавьте строчку:
Debug.Print strSQL
А затем в окне отладки посмотрите текст повнимательнее. Если сами ошибку не обнаружите, то покажите здесь на форуме.
Озверин
Дата: 03.02.2012 13:45:06
Озверин,
((Данные.Коды) Like » & Chr$(34) & q & Chr$(34) & «)
AND ((Year([Дата])=2010 Or Year([Дата])=2011))
както так думаю )
mds_world
Дата: 03.02.2012 13:52:32
| Озверин |
|---|
| скобок в where на 1 закрывающую больше вроде или на открывающую меньше. судя по коду я бы поставил перед (Данные.Коды) еще 1 ( |
Лишние скобки, которые акс рассыпает в невероятном количестве, в большинстве своем нафик не нужны
"Where (Данные.Коды Like '" & q & "') AND Year([Дата]) in (2010, 2011) "
Gugy
Дата: 03.02.2012 13:53:23
Со скобками все в порядке.
Спасибо всем за помощь! Запрос заработал!! Ура!!!
Правда как-то криво, но я постараюсь с этим разобраться.
nord-woolf
Дата: 03.02.2012 13:55:50
| mds_world |
|---|
"... Year([Дата]) in (2010, 2011) "
|
Охо-хо…

Озверин
Дата: 03.02.2012 14:03:54
| nord-woolf | ||
|---|---|---|
Охо-хо… |
?
Gugy
Дата: 03.02.2012 14:05:02
| mds_world |
|---|
Лишние скобки, которые акс рассыпает в невероятном количестве, в большинстве своем нафик не нужны
"Where (Данные.Коды Like '" & q & "') AND Year([Дата]) in (2010, 2011) " |
О, спасибо! Убрала лишнее:)
I have written a VBA code in Access. But, I received syntax error in TRANSFORM statement. I would be grateful if you could help me.
Sub TransformX1()
Dim dbs As Database
Dim strSQL As String
Set dbs = CurrentDb
strSQL = "TRANSFORM Sum(BAR1.[TON]) AS SumOfTON" _
& "SELECT BAR1.[MABD],Sum(BAR1.[TON]) AS [Total Of TON]" _
& "FROM BAR1" _
& "WHERE (((BAR1.[MABD]) < 1300) And ((BAR1.[MAGH]) < 1300) And ((BAR1.G) = 1))" _
& "GROUP BY BAR1.[MABD]" _
& "PIVOT BAR1.[MAGH]"
DoCmd.RunSQL strSQL
End Sub
Erik A
31.8k13 gold badges42 silver badges67 bronze badges
asked May 21, 2018 at 8:11
1
If you examine your strSQL variable just before the RunSQL command, you’ll find that you are missing a few spaces. Replace
"TRANSFORM Sum(BAR1.[TON]) AS SumOfTON" _
with
"TRANSFORM Sum(BAR1.[TON]) AS SumOfTON " _
and so on.
answered May 21, 2018 at 8:18
SamSam
5,5691 gold badge18 silver badges33 bronze badges
2
Is it possible to use the HAVING clause with the transform statement in MS Access 2010?
I keep getting “Syntax error in transform statement”
My sql is
TRANSFORM FIRST(appointment_date) As FirstOfappointment_date
SELECT rank, complete_name
FROM appointment_overview
WHERE status IS NULL OR status <> ‘Deleted’
GROUP BY rank, complete_name
HAVING COUNT(appointment_id) < 2
PIVOT type;
I tried testing the select statement by itself and it works fine
Is what I’m trying to do not supported by access?
Erik A
31.8k13 gold badges42 silver badges67 bronze badges
asked Dec 1, 2017 at 3:34
0
Indeed, Having is not available when executing a Pivot.
A possible workaround is to use a subquery, and move your Having clause to the Where clause:
TRANSFORM FIRST(appointment_date) As FirstOfappointment_date
SELECT rank, complete_name
FROM appointment_overview a
WHERE (status IS NULL OR status <> 'Deleted')
AND (SELECT Count(s.appointment_id) FROM appointment_overview s WHERE (status IS NULL OR status <> 'Deleted') AND s.rank = a.rank AND s.complete_name = a.complete_name) = 2
GROUP BY rank, complete_name
PIVOT type;
Note that this may have a substantial impact on performance.
answered Dec 1, 2017 at 7:37
Erik AErik A
31.8k13 gold badges42 silver badges67 bronze badges
1
Я понял, что ответ глуп, все в порядке, и, конечно же, это работает, но нужно кое-что исправить, где есть запятая, должна стоять & «» «» & и так как она возникает после того, как строка продолжит с & _ before который должен стоять так, как pollID «так, выглядит так»
"TRANSFORM Str(Count([Prijava].[id]))&"" ""& Str(Count([Prijava].[datumSmrti])) " & _
"SELECT MKB10.id &"" ""& IIf([pol].[id]=1,'M','Ž') &"" ""& MKB10.NazivLatinski " & _
"FROM Pol INNER JOIN ((Opstina INNER JOIN Pacijent ON Opstina.id = Pacijent.opstinaID) INNER JOIN (MKB10 INNER JOIN Prijava ON MKB10.id = Prijava.mkb10ID) ON Pacijent.id = Prijava.pacijentID) ON Pol.id = Pacijent.polID " & _
"GROUP BY MKB10.id, IIf([pol].[id]=1,'M','Ž'), MKB10.NazivLatinski " & _
"ORDER BY MKB10.id " & _
"PIVOT starosnoDoba2([starost]) In ('<1','1','2','3','4','5','6','7-9','10-14','15-19','20-29','30-39','40-49','50-59','60-69','70>') "


Сообщение было отмечено ltv_1953 как решение