Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Еще идейка (иметь данные по товару, у которого самая высокая цена) / 13 сообщений из 13, страница 1 из 1
21.04.2004, 11:51
    #32489289
Grauhch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще идейка (иметь данные по товару, у которого самая высокая цена)
Значит, опять же, имеем 2 формы связанные один-ко-многим.

Во 2 форме - есть данные по товару, допустим, и его цене. (ленточная форма)
Хотелось в 1 форме иметь данные по товару, у которого самая высокая цена. Можно ли в построителе выражений для поля использовать sqlязык? Или не так. Я могу построить запрос, но как указать текущую запись?
Допустим: select [Vid].[Vid] where ([Vid].[Proc]=max([Vid.Proc])) and ([Vid].[IDRam]=[текущая запись в главной форме]) Хотя это скорее всего неправильно, поскольку максимум будет искаться по всей таблице Вид а не в выборке для текущей записи Рам.
Помогите?
...
Рейтинг: 0 / 0
21.04.2004, 11:59
    #32489313
Sfagnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще идейка (иметь данные по товару, у которого самая высокая цена)
Grauhchимеем 2 формы связанные один-ко-многим. жёстко...

GrauhchЯ могу построить запрос, но как указать текущую запись?а не надо указывать... ты сделал в принципе правильную конструкцию, дело в том что воспринимается только текущая запись в форме... так что смело подставляй в WHERE значение нужного компонента...

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
21.04.2004, 13:30
    #32489583
Grauhch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще идейка (иметь данные по товару, у которого самая высокая цена)
авторзначение нужного компонента...

CurrentRecord даст значение которое находится в окошке навигатора. А если и эта таблица подчиненная, как у меня, то там указывается не физический номер записи, а номер записи для текущей в главной форме. (вот написал, но кто знает, вроде понятно) Фактически, придется добавлять поле со значением ID? Не красиво.

автор[quot автор]Grauhch
имеем 2 формы связанные один-ко-многим.
жёстко... [/quot]

Ну таблицы связаны, а формы подчиненные...=)
...
Рейтинг: 0 / 0
21.04.2004, 14:05
    #32489687
Sfagnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще идейка (иметь данные по товару, у которого самая высокая цена)
ну ты хоть попробуй...
select [Vid].[Vid] where ([Vid].[Proc]=max([Vid.Proc])) and ([Vid].[IDRam]=Forms!Имя_Главной_Формы!Имя_Поля)
только пробуй при открытой Главной_Формы

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
21.04.2004, 14:25
    #32489763
Grauhch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще идейка (иметь данные по товару, у которого самая высокая цена)
Currentrecord точно не проходит:(
Если выводить поле то вроде есть. Надо только Мах правильно описать.
В принципе поле можно сделать и невидимым =-%
...
Рейтинг: 0 / 0
21.04.2004, 14:35
    #32489804
Grauhch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще идейка (иметь данные по товару, у которого самая высокая цена)
Вот так работает:
SELECT Vid.Vid
FROM Vid
WHERE (((Vid.Proc)=(select Max([Vid].[Proc]) from [Vid] where [Vid].[IDRam]=[Forms]![Razrez Form]![Litoral Form].[Form]![Ramka Form].[Form]![Поле15])) AND ((Vid.IDRam)=[Forms]![Razrez Form]![Litoral Form].[Form]![Ramka Form].[Form]![Поле15]));

Фуу. Привыкнешь к одной системе, так сложно в другую врубаться...
...
Рейтинг: 0 / 0
21.04.2004, 14:49
    #32489874
Grauhch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще идейка (иметь данные по товару, у которого самая высокая цена)
Однако в запросе это работает, а в значение поля вставит не получается...
...
Рейтинг: 0 / 0
21.04.2004, 14:56
    #32489902
Sfagnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще идейка (иметь данные по товару, у которого самая высокая цена)
его можно вставить источником листбокса или комбобокса... и ессно формы

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
21.04.2004, 15:28
    #32490005
Grauhch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще идейка (иметь данные по товару, у которого самая высокая цена)
Лучше поле, конечно, но если нельзя, мы и здесь чего нить придумаем
...
Рейтинг: 0 / 0
22.04.2004, 11:22
    #32491358
Grauhch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще идейка (иметь данные по товару, у которого самая высокая цена)
Sub UpdateDominant()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim Dom As String
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT Vid.Vid FROM Vid WHERE (((Vid.Proc)=(select Max([Vid].[Proc]) " & _
"from [Vid] where [Vid].[IDRam]=[Forms]![Razrez Form]![Litoral Form].[Form]![Ramka Form].[Form]![Ïîëå15]))" & _
"AND ((Vid.IDRam)=[Forms]![Razrez Form]![Litoral Form].[Form]![Ramka Form].[Form]![Ïîëå15]))")
Dom = rs!Vid
[Forms]![Razrez Form]![Litoral Form].[Form]![Ramka Form].[Form]![Ïîëå13] = Dom


End Sub

"Слишком мало параметров, требуется 1" Все ж по книжке один в один!?
...
Рейтинг: 0 / 0
23.04.2004, 08:39
    #32493106
Grauhch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще идейка (иметь данные по товару, у которого самая высокая цена)
Что все таки надо формализовать?
Вообще, длина строки 262 символа. Может эта чухня все грузит? Но запрос сам по себе работает. Или SQL в VBA и SQL в Access не есть одно и тоже?

Поскольку меняю строку запроса на "select * from Vid" никто не ругается. АААА! Я понял! Это такая специальная фича, чтобы всякие идиоты, вроде меня, сидели дома и сосали чупу чупс :-Е
...
Рейтинг: 0 / 0
23.04.2004, 10:21
    #32493304
Grauhch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще идейка (иметь данные по товару, у которого самая высокая цена)
Сейсас попробовал открыть запрос:
Sub UpdateDominant()
Dim rs As DAO.Recordset
Dim Dom As String

Set rs = CurrentDb.OpenRecordset("FindDominant")
Dom = rs!Vid

[Forms]![Razrez Form]![Litoral Form].[Form]![Ramka Form].[Form]![Ïîëå13] = Dom


End Sub

Так на выделенном поле ругается что опять нет параметров. Тут же открываю запрос руками - точно требует ввести значение поля15. Закрываю модуль - все само открывается. Может здесь над собакой надругаться и закопать к червям напрочь?
...
Рейтинг: 0 / 0
27.04.2004, 14:24
    #32498711
Grauhch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Еще идейка (иметь данные по товару, у которого самая высокая цена)
Сделал
Sub updateDominanter()
Dim rs As DAO.Recordset
Dim Dom As String
Dim I As String
Dim SQLS As String

I = [Forms]![Razrez Form]![Litoral Form].[Form]![Ramka Form].[Form]![Ïîëå15]
SQLS = "SELECT Vid.Vid FROM Vid WHERE (((Vid.Proc)=(select Max([Vid].[Proc]) from [Vid] where [Vid].[IDRam]=" + I + ")) AND ((Vid.IDRam)=" + I + "));"
Set rs = CurrentDb.OpenRecordset(SQLS)

Dom = rs!Vid
[Forms]![Razrez Form]![Litoral Form].[Form]![Ramka Form].[Form]![Ïîëå13] = Dom

И все пошло. Почему такой гимор? Почему открывание запроса в модуле ведет к потере данных формы? Попробовал на всякий случай - пошло. Ничего не понимаю:(
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Еще идейка (иметь данные по товару, у которого самая высокая цена) / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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