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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Вычисления в форме
 
 автор: Скорп   (16.09.2008 в 22:48)   личное сообщение
13 Кб.
 
 

баалин....глюкануло что-то, заново писать надо

короче, на форме есть 2 поля, значения в которыполучаем одно ч-з DlookUp, а второе ч-з Column()

и если поля просуммировать сами с собой, то данные полученые DlookUp-ом суммируются правильно, а данные полученные ч-з Column() нет..(просуммировав 5+5 получем 55, а не 10)

  Ответить  
 
 автор: Lukas   (16.09.2008 в 22:53)   личное сообщение
 
 

Данные в List.Column, если не ошибаюсь хранятся в текстовом формате.
Отсюда 55.
Помогут CInt, Clng и т.д., хотя это не совсем правильно.

Возврат в привате.

  Ответить  
 
 автор: Скорп   (16.09.2008 в 23:02)   личное сообщение
 
 

а почему же тогда умножение работает?

  Ответить  
 
 автор: Lukas   (16.09.2008 в 23:04)   личное сообщение
 
 

С тестом, знак "+" имеет специфическое назначение.
Когда применяем другие знаки, Access в тени производит преобразование типов.
Кстати это можно попробовать использовать:
List.Column(1)*1+List.Column(1)*1.

  Ответить  
 
 автор: Скорп   (16.09.2008 в 23:06)   личное сообщение
 
 

м-дяя..
спасибо Lukas
я блин, сгодня весь день на эту ерунду убил(((

  Ответить  
 
 автор: Lukas   (16.09.2008 в 23:10)   личное сообщение
 
 

Да не за что.
Зато запомнится надолго.

  Ответить  
 
 автор: Скорп   (16.09.2008 в 23:14)   личное сообщение
 
 

да..это тоже работает
спасибо еще раз

п.с. так почему не совсем правильно использовать CLng?

  Ответить  
 
 автор: Скорп   (16.09.2008 в 23:07)   личное сообщение
 
 

а почему не совсем правильно?
т.е. так делать нельзя?

  Ответить  
 
 автор: Lukas   (16.09.2008 в 23:15)   личное сообщение
 
 

Неправильно - это для Column .
Можно, но осторожно. Происходит двойное преобразование типа:
Число-текст-число. Ну с целыми более менее понятно, а вот с дробными возможны варианты.
Хотя я не пробовал, может сгущаю краски.

Не вижу всей задачи целиком. Возможно правильнее было бы привязать форму к таблице, а поле со списком использовать для установки текущей записи?

  Ответить  
 
 автор: Скорп   (16.09.2008 в 23:26)   личное сообщение
 
 

не-не-не..
форма свободная
на ней два десятка полей из разных таблиц и полсотни вычисляемых полей на основе этих данных (это калькулятор)

короче, остановился на варианте с умножением на 1-цу
но видит Бог, я учусь на примерах, которые попадаются мне на пути, и встреть я такой расклад с умножением на 1-цу, ни вжизнь бы не догадался, для чего это нужно

есть и плюсы - кто будет разбираться в моей проге умрет от старости, так и не разобравшись в ней)))

вывод - на кой фиг паролить базы, делать защиту и т.п???)))

  Ответить  
 
 автор: Lukas   (16.09.2008 в 23:34)   личное сообщение
 
 

Посмотри файл с колесом мыши, там тоже калькулятор и все на DlookUp-ах.
Я сам удивляюсь, но работает достаточно быстро.

  Ответить  
 
 автор: Скорп   (16.09.2008 в 23:39)   личное сообщение
 
 

ага..я смотрел
но даже в моем прикрепленном вопросе (в файле), даже визуально DlookUp запаздывает по сравнению с другим полем

  Ответить  
 
 автор: Lukas   (16.09.2008 в 23:56)   личное сообщение
15 Кб.
 
 

А в этом варианте, тот - же DlookUp, но значительно быстрее.

  Ответить  
 
 автор: Скорп   (17.09.2008 в 00:00)   личное сообщение
 
 


ну...даже не знаю что и сказать

  Ответить  
 
 автор: Lukas   (17.09.2008 в 00:10)   личное сообщение
1 Кб.
 
 

Для проверки возвращаемых значений лучше использовать не Nz(....,0) как у меня в файле, а что-нибудь такое:
Потому как 0 тоже может быть значением.
Она тоже вернет 0, но при этом ругнется.

  Ответить  
 
 автор: Скорп   (17.09.2008 в 00:23)   личное сообщение
 
 

не..точно программирование похоже на шаманство

ладно..полчасика еще поработаю и спать

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