powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Рекордсет на основе запроса
25 сообщений из 102, страница 3 из 5
Рекордсет на основе запроса
    #32574931
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наконец-то, как мне кааатся, ты уловил идею: на каждый новый запрос просто строим новый стринг, который мало чем отличается от твоего, просто упрощается. Но для меня остается загадкой как у тебя работал запрос с неправильным использованием IIf(IIf(IIf(?
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32574940
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rivkin DmitryНо для меня остается загадкой как у тебя работал запрос с неправильным использованием IIf(IIf(IIf(?

Понятия не имею выкладываю еще раз (скопировал из работающего запроса)
Код: plaintext
1.
2.
SELECT IIf([Forms]![000_Объемы]![Дата]= 1 ,Format([Дата],"dd/mm/yy"),IIf([Forms]![000_Объемы]![Дата]= 2 ,CByte((([Дата]-# 12 / 31 / 2000 #)-CByte(([Дата]-# 12 / 31 / 2000 #)/ 364 - 0 . 4999 )* 364 )/ 7 + 0 . 6 ),IIf([Forms]![000_Объемы]![Дата]= 3 ,Format([Дата],"mmmm  yy"),IIf([Forms]![000_Объемы]![Дата]= 4 ,Format([Дата],"q  yy"),IIf([Forms]![000_Объемы]![Дата]= 5 ,Format([Дата],"yyyy")))))) AS Выражение2
FROM 000_V
GROUP BY IIf([Forms]![000_Объемы]![Дата]= 1 ,Format([Дата],"dd/mm/yy"),IIf([Forms]![000_Объемы]![Дата]= 2 ,CByte((([Дата]-# 12 / 31 / 2000 #)-CByte(([Дата]-# 12 / 31 / 2000 #)/ 364 - 0 . 4999 )* 364 )/ 7 + 0 . 6 ),IIf([Forms]![000_Объемы]![Дата]= 3 ,Format([Дата],"mmmm  yy"),IIf([Forms]![000_Объемы]![Дата]= 4 ,Format([Дата],"q  yy"),IIf([Forms]![000_Объемы]![Дата]= 5 ,Format([Дата],"yyyy"))))));

Может кто-нибудь другой объяснит
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32574966
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в запросе в функции IIF можно опустить второй аргумент. А в редакторе VBA будет ругаться на компиляции.
Попробуйте
SELECT IIf(2=2,"Да ну!") AS ОПА FROM Tbl1;
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32574982
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander GА в запросе в функции IIF можно опустить второй аргумент. А в редакторе VBA будет ругаться на компиляции.
Попробуйте
SELECT IIf(2=2,"Да ну!") AS ОПА FROM Tbl1;

Действительно! И открытии рекордсета возможно! Спасибо, Alexander!
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575091
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander GА в запросе в функции IIF можно опустить второй аргумент. А в редакторе VBA будет ругаться на компиляции.


Я тут смотрю ларчик похоже просто открывался?(Ошибка при открытии Recordset)

А функцию я протестировал ВСЕ РАБОТАЕТ!!! И СКОРОСТЬ НОРМАЛЬНАЯ!!!
Немного подредактировал правда. Но идея мне понравилась (хитро)
перехожу на открытие Recordset
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575323
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставил в Open.Recordset теперь пишет 4 параметра
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Function yuq()

Dim qweSQL As String
Dim rst As ADODB.Recordset

Set objE = New Excel.Application
objE.Workbooks.Add
objE.Visible = True

qweSQL = MySql

Set rst = CurrentDb.OpenRecordset(qweSQL)

End Function

Вот запрос который получается по функции MySql
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT Format([Дата], "mmmm  yy"), Sum([001_Регион].[Sum-Продано_кг]) As Тоннаж 
FROM 00_Дата 
LEFT JOIN 001_Регион 
ON [00_Дата].[Дата] = [001_Регион].[Дата_] 
GROUP BY Format([Дата],"mmmm  yy") ,Year([Дата])* 12 +Month([Дата]) 
ORDER BY Year([Дата])* 12 +Month([Дата]) 

В чем проблема люди?
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575437
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С 4 параметрами вроде разобрался Ему похоже " " не нравятся
буду править
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575507
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NikPС 4 параметрами вроде разобрался Ему похоже " " не нравятся
буду править

Попробуй еще здесь поменять:

ON [00_Дата].[Дата] = [001_Регион].[Дата_]
GROUP BY Format([00_Дата].[Дата],"mmmm yy") ,Year([00_Дата].[Дата])*12+Month([00_Дата].[Дата])
ORDER BY Year([00_Дата].[Дата])*12+Month([00_Дата].[Дата])
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575544
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rivkin Dmitry NikPС 4 параметрами вроде разобрался Ему похоже " " не нравятся
буду править

Попробуй еще здесь поменять:

ON [00_Дата].[Дата] = [001_Регион].[Дата_]
GROUP BY Format([00_Дата].[Дата],"mmmm yy") ,Year([00_Дата].[Дата])*12+Month([00_Дата].[Дата])
ORDER BY Year([00_Дата].[Дата])*12+Month([00_Дата].[Дата])
Да не с [Дата] все нормально (ON [00_Дата].[Дата] = [001_Регион].[Дата_]) Вторая дата идет как [Дата_]

Я тут немного подправил сейчас Type mismatch пишет
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Function yup()

Dim rst As ADODB.Recordset

qweSQL = "SELECT #" & Format([Дата], "dd/mm/yy") & _
         "#, Sum([001_Регион].[Sum-Продано_кг]) As Тоннаж " & _
         "FROM 00_Дата LEFT JOIN 001_Регион ON [00_Дата].[Дата] = [001_Регион].[Дата_]" & _
         "GROUP BY#" & Format([Дата], "dd/mm/yy") & _
         "# ,Year([Дата])*365+Month([Дата])*31+Day([Дата])" & _
         "ORDER BY Year([Дата])*365+Month([Дата])*31+Day([Дата])"

Set rst = CurrentDb.OpenRecordset(qweSQL)
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575573
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я конечно сильно извеняюсь, не мне в разговор "монстров" встревать, но у меня работает так
qweSQL = "SELECT #" & Format([Дата], ""dd/mm/yy"") & _
"#, Sum([001_Регион].[Sum-Продано_кг]) As Тоннаж " & _
"FROM 00_Дата LEFT JOIN 001_Регион ON [00_Дата].[Дата] = [001_Регион].[Дата_]" & _
"GROUP BY#" & Format([Дата], ""dd/mm/yy"") & _
"# ,Year([Дата])*365+Month([Дата])*31+Day([Дата])" & _
"ORDER BY Year([Дата])*365+Month([Дата])*31+Day([Дата])"
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575606
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ирча на твой вриант ругается List separator or) и указывает на dd

Я так понял ты предложила dd/mm/yy заключить в двойные " других различий я вроде не заметил. Может у тебя там что-нибудь еще есть?
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575661
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ау! Люди! такое впечатление, что все вымерли.
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575677
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Встряну не в тему - если это копировали из кода программы, то!

Код: plaintext
1.
2.
3.
4.
5.
qweSQL = "SELECT #" & Format([Дата], "dd/mm/yy") & _
         "#, Sum([001_Регион].[Sum-Продано_кг]) As Тоннаж " & _
         "FROM 00_Дата LEFT JOIN 001_Регион ON [00_Дата].[Дата] = [001_Регион].[Дата_]_" & _
         "GROUP BY_#" & Format([Дата], "dd/mm/yy") & _
         "# ,Year([Дата])*365+Month([Дата])*31+Day([Дата])_" & _
         "ORDER BY Year([Дата])*365+Month([Дата])*31+Day([Дата])"

Там где подчеркнул - должны быть пробелы
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575694
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К paparome
пробелы поставил все равно Type mismatch

кстати! спасибо, что встрял, а то сижу как в пустыне
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575696
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я извиняюсь, но теперь я не догоняю.
В каком Аксе ты работаешь?
Я привык к А97 и возможно, поэтому не понимаю, разве это работает?

Dim rst As ADODB .Recordset
...
Set rst = CurrentDb .OpenRecordset(qweSQL) ?
Это ведь смесь АДО и ДАО и как Format может работать в АДО?
Поясните

Теперь,
Код: plaintext
qweSQL = "SELECT #" & Format([Дата], "dd/mm/yy") & _
это совсем не то, что задумывалось в функции - [Дата] - это поле из таблицы, поэтому, оно должно быть внутри стринга.
Короче, или я запутался, или ты...

Ирча, здравствуй! Не самоуничижайся! Важно, что в тебе есть интерес к происходящему, а опыт - вещь наживная... Что нибудь с моей просьбой продвинулось?
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575716
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К Dmitry

Могу сказать одно все равно нифига не хочет работать
ADO и DAO я понимаю что вещи разные
по-поводу Format [Дата] понимаю, что дата берется из таблицы

Но что-то делать надо! ответов нет, вот и извращаюсь как могу. Может хоть что-нибудь поможет
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575719
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rivkin DmitryЧто нибудь с моей просьбой продвинулось?
Пока не очень, то ли они очень скрытные, то ли у них компы отсутствуют
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575739
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ирча Rivkin DmitryЧто нибудь с моей просьбой продвинулось?
Пока не очень, то ли они очень скрытные, то ли у них компы отсутствуют
Может у тебя в Надыме в Газпроме есть знакомые, через них можно? В любом случае - спасибо!
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575741
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NikPК Dmitry

Могу сказать одно все равно нифига не хочет работать
ADO и DAO я понимаю что вещи разные
по-поводу Format [Дата] понимаю, что дата берется из таблицы

Но что-то делать надо! ответов нет, вот и извращаюсь как могу. Может хоть что-нибудь поможет

Давай тогда сначала, опиши последние проблемы
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575754
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можешь скинуть примерчик мне на мыло.
Я завтра последний день работаю, делать нечего, покопаюсь, может чем помогу
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575757
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.Раньше писал, что надо 5 параметров после наших изменений стал просить 4
2.После того, как начал ставить #" & Ругается Type mismatch

Не пропадай пожалуйста туго без советов или если планируешь пропасть говори, я у народа помощи попрошу
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575765
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Долго все это проистекает...
Там сколько - 2 таблицы?
Сделай базку с ними (на несколько записей), модуль с процедуркой, заархивируй, запости сюда, завтра утром (а у меня уже первый час ночи) посмотрю, если кто-нибудь не захочет разобраться раньше.
А то уже третья страница пошла, и все никак...
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575774
NikP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я сам уже замаялся никогда на форуме так долго проблемы не решал, а тут уже второй день сижу. Сейчас подготовлю и все скину
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575782
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Dmitry
Format-y без разницы ,что ADO ,что DAO. Это функция VBA .А вот
Код: plaintext
1.
2.
Dim rst As ADODB.Recordset
...
Set rst = CurrentDb.OpenRecordset(qweSQL) 
Действительно никуда не годиться .
...
Рейтинг: 0 / 0
Рекордсет на основе запроса
    #32575806
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(c)VIG2 Dmitry
Format-y без разницы ,что ADO ,что DAO. Это функция VBA .А вот
Код: plaintext
1.
2.
Dim rst As ADODB.Recordset
...
Set rst = CurrentDb.OpenRecordset(qweSQL) 
Действительно никуда не годиться .

Я просто привык если ADODB, так SQL Server, а там Format не пашет...

2 AnTT
Пока не убегаю, но работа у меня тоже...
Совет - если закапался и не видишь выхода, отойди от компа минут на 10, попей чайку, подумай о девушке (если ты парень или о парне, если ты девушка) и потом возвращайся. Иди к тому месту, где еще как-то работало и от него продвигайся по-новой...
...
Рейтинг: 0 / 0
25 сообщений из 102, страница 3 из 5
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Рекордсет на основе запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]