Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > сделать выборку и вывести результаты


Автор: Гость_DeathStorm 17.1.2006, 08:26
сразу извиняюсь за такой ламерский вопрос, но очень нужно

ситуация такая есть таблица zakazi
zakazchik auto rasstoyanie stoimost_za_km
z123 101 100 2
z134 103 23 6
z156 101 25 3

есть форма: поля field1(общий километраж), field2 (общая стоимость),field3 (список на кого работал)
и выпадающий список, где указаны auto -(подстановка из таблицы)
при событии onChange надо сделать так чтобы сделалась выборка из таблицы, и сответственно заполнились поля

может кто нибудь, делал что-то подобное, если не затруднит, скиньте код, но ТОЛЬКО рабочий

Автор: Митрофан 17.1.2006, 09:14
Создаёш фильтор можно в макросе с условием отбора указываеш поля со списком далие при возникновение onChange с тавиш выполнение данного макроса и всё работает

Автор: Гость_DeathStorm 17.1.2006, 09:23
да дельный совет smile
а поподробнее можно, я же просил ПРИМЕР, да простят меня за назойливость, а что он и суммировать все будет автоматом?
и в поле записывать как строку?
З.Ы. Я же предупреждал что в vb я ламер, да и не нравится мне этот язык, если честно, синтакси у него ... не приведи Господь

Автор: Papirus 17.1.2006, 09:54
Цитата(Гость_DeathStorm @ 17.1.2006, 09:23 Найти цитируемый пост)

Я же предупреждал что в vb я ламер

ИМХО, как я понял задачу, можно и бехз программирования и макросов. В одиночную форму кидаешь поле со списком (выборка из таблицы авто). Добавляешь субформу. Источником записей делаешь запрос с группировкой, в котором критерием выборки будет значение поля со списком... Что-то типа
Код

Select zakazchik, Sum(rasstoyanie) As Probeg, Sum(stoimost_za_km*rasstoyanie) As Summa From zakazi
Where auto = Forms!MyForm.Combobox1
Group By zakazchik

В раздел примечания субформы можно влепить суммарные итоги по пробегу и оплате, а в главной форме сослаться на них через свободные поля.

Автор: Митрофан 17.1.2006, 09:58
у тебя это на одной таблице или на двух

Автор: Гость_DeathStorm 17.1.2006, 10:09
2Mitrofun
таблиц много, но данные надо с этой вытащить

Автор: Митрофан 17.1.2006, 10:28
тогда делаем так создаем запрос с кодом
Код

Select zakazchik, Sum(rasstoyanie) As Probeg, Sum(stoimost_za_km*rasstoyanie) As Summa From zakazi
Where auto = Forms!1.поля9
Group By zakazchik

далие
на форме создаёш поля и не показываеш его пользователю на пример поля9
Код

Form_1.поля9 = Form_1.полясосписком4
Form_1.RecordSource = "имя запроса приведёного выше"

и всё.
Добавлено @ 10:28
это в выподающем списке

Автор: Гость_DeathStorm 17.1.2006, 11:15
обработчик такой будет

суп паблик цццц_onChange()

myQ="Select zakazchik, S..... Where auto = Forms!1.полесосписком"
Form_1.RecordSource = "myQ" recordset запустит на выполнение запрос?

конец супа
или я бестолочь этакая, опять что-то не учел smile

Автор: Митрофан 17.1.2006, 11:31
Цитата

Form_1.RecordSource = "myQ" recordset запустит на выполнение запрос?

обнавит значение полей но тут должны название полей совподать с названем столбцов в запросе а то с глючит
Цитата

myQ="Select zakazchik, S..... Where auto = Forms!1.полесосписком"
Form_1.RecordSource = "myQ" recordset запустит на выполнение запрос?

Данная штука будет рабоботать если измениш полесосписком на поля. Проста понемаеш после обнавление значение с полесосписком проподёт и выдаст глюк и по этому лудше скопировать значение в обычное поле и обработчик поставить после обновления
Код

Private Sub полесосписком_AfterUpdate()
Form_1.поля9 = Form_1.полесосписком
myQ="Select zakazchik, S..... Where auto = Forms!1.полесосписком"
Form_1.RecordSource = "myQ" recordset
End Sub

а лудше скажи своё мало я тибе скину рабочий вариант а то так можеш не понять smile

Автор: Гость_deathstorm 17.1.2006, 11:44
dstorm81[dog]mail.ru
буду премного благодарен

Автор: Митрофан 17.1.2006, 12:14
отправил думаю разберёшся если что пеши на сайт а то мыло рабочие и просматривается

Автор: dstorm81 18.1.2006, 08:25
2 митрофан.
Спасибо за пример, классно работает, пытался на своей такое сделать
но к сожалению, полная лажа получается. (у меня цена за км и расстояние в разных бд лежат)
может можно как нибудь это одним модулем организовать, чтобы потом просто на действие привязать
может скинуть свою бд тебе, может уж добьешь до конца (извиняюсь за назойливость, просто ОЧЕНЬ НАДО)

Автор: Papirus 18.1.2006, 09:48
Пардон за любопытство.
Ну и нафига было процы плодить? smile

Автор: dstorm81 18.1.2006, 09:51
2 papirus
что за процы

Автор: Papirus 18.1.2006, 09:59
Цитата(Митрофан @ 17.1.2006, 11:31 Найти цитируемый пост)

Private Sub полесосписком_AfterUpdate()
Form_1.поля9 = Form_1.полесосписком
myQ="Select zakazchik, S..... Where auto = Forms!1.полесосписком"
Form_1.RecordSource = "myQ" recordset
End Sub

Это и есть процедура обработки события. Можно конечно и так, а в некоторых случаях только так (например, если используется проект *.adp) Но здесь, имхо, все это лишнее.
Добавлено @ 10:00
Впрочем, от добра добра не ищут. Если уже все работает - нет смысла менять.

Автор: Митрофан 19.1.2006, 08:02
Сбрось на то мыла а то proxci не даёт скапировать

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)