Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как написать формулу или создать запрос, который бы вписывал в поле формы число?
 
 автор: belvesta   (22.03.2007 в 13:28)   личное сообщение
 
 

Как написать формулу или создать запрос, который бы вписывал в поле формы число?
Мне нужно, чтобы в форме карточки клиента поле скидка считалось само. То есть по умолчанию оно "0", но чтобы еще запрашивал из таблицы1, на какую сумму уже закупил клиент за весь период по сегодняшний день. У меня есть запрос, где выводится список клиентов без повторений, в котором есть еще и накопленная сумма. Может как-то с ним связать?

  Ответить  
 
 автор: osmor   (22.03.2007 в 13:56)   личное сообщение
 
 

Help по Dlookup
=nz(dlookup("[Сумма]";"[ИмяЗапроса]";"[КодКлиента]=" & [КодКлиента];0)

  Ответить  
 
 автор: belvesta   (22.03.2007 в 14:10)   личное сообщение
 
 

но дело в том, что мне нужно, чтобы было так:

если эта сумма из запроса <=1000 то поле=0
если эта сумма из запроса >1000 и <=5000 то поле=5
если эта сумма из запроса >5000 то поле=10

  Ответить  
 
 автор: osmor   (22.03.2007 в 14:24)   личное сообщение
 
 

анализируйте полученое Dlookup число и ставьте в поле сколько нужно

  Ответить  
 
 автор: KrukVN   (22.03.2007 в 15:06)   личное сообщение
 
 

точно :)

    MySum = nz(dlookup("[Сумма]", "[ИмяЗапроса]", "[КодКлиента]=" & [КодКлиента]), -1)
    Select Case MySum
        Case Is <= 1000: txt_Sum = 0
        Case 1000 To 5000: txt_Sum = 5
        Case Is > 5000: txt_Sum = 10
    End Select

  Ответить  
 
 автор: belvesta   (22.03.2007 в 15:50)   личное сообщение
 
 

Куда мне это писать? В модуль, а потом в поле сдулать ссылку на этот модуль?

  Ответить  
 
 автор: KrukVN   (22.03.2007 в 17:03)   личное сообщение
 
 

в модуль попробуйте, на загрузку формы

  Ответить  
 
 автор: belvesta   (23.03.2007 в 16:14)   личное сообщение
 
 

А ковычки обязательны и запятая? там случайно не точки ставятся?

  Ответить  
 
 автор: KrukVN   (23.03.2007 в 16:20)   личное сообщение
 
 

кавычки, запятая, точка... где там? Вы что-то рисуете?

  Ответить  
 
 автор: belvesta   (23.03.2007 в 16:26)   личное сообщение
 
 

Ошибка выходит:

Compile error:
Expected: expression

  Ответить  
 
 автор: belvesta   (23.03.2007 в 16:27)   личное сообщение
 
 

из-за этой строки ошибка:

MySum = Nz(DLookup("[Itog3]", "[Отчет Мониторинг]", "[SurnameNamePatronymicClient]=" & [SurnameNamePatronymicClient]), -1)

  Ответить  
 
 автор: belvesta   (23.03.2007 в 16:29)   личное сообщение
 
 

извиняюсь, такая ошибка:
Invalid outside procedure на Itog

  Ответить  
 
 автор: belvesta   (23.03.2007 в 16:32)   личное сообщение
 
 

Я в том, что Вы мне написали, исправила кроме выше упомянутой строки еще и txt_Sum на имя своего поля форме. Так?

  Ответить  
 
 автор: KrukVN   (23.03.2007 в 16:34)   личное сообщение
 
 


Я в том, что Вы мне написали, исправила кроме выше упомянутой строки еще и txt_Sum на имя своего поля форме. Так?

Так
А Вам не трудно сюда пример выложить?
Вам так быстрее ответят

  Ответить  
 
 автор: osmor   (23.03.2007 в 16:34)   личное сообщение
 
 

если SurnameNamePatronymicClient - тектовое то

MySum = Nz(DLookup("[Itog3]", "[Отчет Мониторинг]", "[SurnameNamePatronymicClient]='" & [SurnameNamePatronymicClient] & "'"), -1)

  Ответить  
 
 автор: KrukVN   (23.03.2007 в 16:37)   личное сообщение
 
 

оо, точно :)
на SurnameNamePatronymicClient не обратил внимания

  Ответить  
 
 автор: belvesta   (23.03.2007 в 16:45)   личное сообщение
 
 

даже когда я это исправила, все-равно ругается Itog также.
Вот моя база. Посмотрите пожалуйста.
Тут на сайте максимальный размер отправляемых файлов какой? у меня она не крепится

  Ответить  
 
 автор: osmor   (23.03.2007 в 16:47)   личное сообщение
 
 

максимум 50 кг.
Когда нибуть поправлю форму отправки... ну Slil.ru закиньте

  Ответить  
 
 автор: belvesta   (23.03.2007 в 17:01)   личное сообщение
 
 

Вот мой файл! Ужас просто с этими архивами!!!!
На других сайтах максимальный размер 100Кб!

  Ответить  
 
 автор: osmor   (23.03.2007 в 17:24)   личное сообщение
 
 

Про другие сайты не знаю... считаю 50 вполне достаточно, а место под сайт не резиновое

  Ответить  
 
 автор: belvesta   (23.03.2007 в 16:55)   личное сообщение
 
 

Файл здесь
http://slil.ru/24125842

  Ответить  
 
 автор: osmor   (23.03.2007 в 17:31)   личное сообщение
 
 

Вопрос: в какое поле должна выводиться сумма?

  MySum = Nz(DLookup("[Itog3]", "[Отчет Мониторинг]", "[SurnameNamePatronymicClient]='" & [SurnameNamePatronymicClient] & "'"), -1)
    Select Case MySum
        Case Is <= 1000: txt_Sum = 0
        Case 1000 To 5000: txt_Sum = 5
        Case Is > 5000: txt_Sum = 10
    End Select


Это все должно быть внути функции или процедуры, а не просто модуле

  Ответить  
 
 автор: belvesta   (23.03.2007 в 17:39)   личное сообщение
 
 

должно вывыодиться в поле формы "Данные о клиентах" - поле "Размер скидки, %"

  Ответить  
 
 автор: osmor   (23.03.2007 в 17:58)   личное сообщение
 
 

http://slil.ru/24126091

только я не стал обновлять ваше поле "Размер скидки, %" т.к. оно привязано к полю таблицы и это изменит данные в таблице, (не думаю что это правильно)
я создал свое поле discount и данные вывел в него

  Ответить  
 
 автор: belvesta   (23.03.2007 в 18:00)   личное сообщение
 
 

а что разве эти данные не могут заноситься в эту таблицу?

  Ответить  
 
 автор: osmor   (23.03.2007 в 18:07)   личное сообщение
 
 

почему не могут, могут...
только на мой взгляд вычислять их надо не в момент просмотра информации о клиенте, а... ну хотя бы в момент заключения договора.
иначе получится так, если Вы открыли информацию о клиенте - данные в таблице обновились (а если пользователь нажмет "Esc", то могут и не обновиться) А если Вы не открыли форму просмотра информации для этого клиента, то данные о скидке не обновятся.

Хотя я предпочитаю НЕ хранить в таблицах данные которые могу посчитать в любой момент и которые могут меняться с течением времени. А рассчитаывать их непосредственно в момент когда эти данные понадобились (как ваша скидка).
Иначе всегда существует вероятность, что данные будут не актуальны...
И оступаю от этого правила только тогда когда расчет слишком долгий или есть веские причины эти расчитанные данные сохранить.
А в вашем случае я бы скидку сохранил бы в договоре... или что там у вас с клиентом заключается

  Ответить  
 
 автор: belvesta   (23.03.2007 в 18:07)   личное сообщение
 
 

скачанный файл не открывается
Either multipart or corrupt ZIP archive

  Ответить  
 
 автор: osmor   (23.03.2007 в 18:11)   личное сообщение
 
 

А так?
http://slil.ru/24126162
RAR размером 142кг

  Ответить  
 
 автор: belvesta   (23.03.2007 в 18:18)   личное сообщение
 
 

Тут нет договоров - заключением сделки является квитанция, которая выходит из тех данных.
Сначала приходит клиент и я открываю "Данные о клиенте", чтобы проверить есть ли такой клиент в базе. Если есть, то можно сделать макрос на просмотр или изменение этой формы и данные будут обновляться. Или если его нет, то мы все-равно открываем эту форму и заносим новые данные и тогда там все-равно будет стоять "0", так как эта прога (Ваша) не нашла Itog3 в таблице.

  Ответить  
 
 автор: osmor   (23.03.2007 в 18:26)   личное сообщение
 
 

Ок. Вам виднее.

  Ответить  
 
 автор: belvesta   (24.03.2007 в 22:17)   личное сообщение
 
 

СПАСИБО ВАМ ОГРОМНОЕ! А как Вы так размер уменьшили? сжатие какое-нибудь сделали?

  Ответить  
 
 автор: osmor   (26.03.2007 в 09:14)   личное сообщение
 
 

Сервис - служебные программы - Сжать и восстановить

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList