Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Как запретить отображение #Error  [new]
wook
Guest
В форме есть поля.
До тех пор пока туда ничего не внесено, они пустые, но процесс вычесления все равно идет, и поетому появляется надпись #Error.
Как толко что то ввел, то надпись соответственно исчезает,и появляется результат.
Может кто подскажет как скрыть надпись #Error до вычесления???

И проблема номер 2.

Как сделать так, чтоб после ввода в форму только одного символа (не более) автоматически курсор переходил в другое поле??

Прикладываю базу. Посмотрите, помогите, пожалуйста.

К сообщению приложен файл (ELT.zip - 50Kb) cкачать
31 янв 06, 10:19    [2303813]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить отображение #Error  [new]
bubucha
Member

Откуда:
Сообщений: 5641
По первой части - использовать Nz, по второй части вопроса - поставить маску ввода "0" , для перемещения в нужное поле использовать ИмяПоля.SetFocus
31 янв 06, 10:37    [2303935]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить отображение #Error  [new]
Rivkin Dmitry
Member

Откуда: Israel
Сообщений: 5500
На вскидку, поля t имеют значение null, поэтому вычисления ELT code ошибочны.
На форме практически нет акса. База данных присутствует только в единственной таблице на комбобоксе. мне кажется, нет смысла (если нет других задач) работать в Аксе. Все эти вычисления легче сделать, например, в бейсике. Ну и в Аксе, на мой взгляд, нет смысла в таком огромном количестве невидимых контролов. Все можно сделать в коде. Элегантнее и красивее
31 янв 06, 10:40    [2303952]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить отображение #Error  [new]
ывап
Guest
Error# не увидел. В какой форме?
Чтобы курсор переходил автоматически в соседнее поле, нужно:
1. Указать маску ввода для этого поля (одна буква - L)
2. Свойство автопереход - Да.
31 янв 06, 10:47    [2304001]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить отображение #Error  [new]
wook
Guest
Спасибо!

Авто переход заработал!

а вот ввод одного символа не работает :(
если ввозу в маску L,
то вводятся толко букви, хотя и поодной как было запланировано.
А с #error я так ничего и не понял что и где использовать?
если можно, то по-подробнее?

А насчет вычислений в базе данных, то там будет только одна таблица с данными, зато отчет потом будет красивий и автоматический.
31 янв 06, 14:48    [2305476]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить отображение #Error  [new]
wook
Guest
A как избавится от невидимых полей и заменить их кодом???
Я изначално так и хотел, но не знаю как :((
ПОдскажите пожалуйста.
31 янв 06, 14:57    [2305513]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить отображение #Error  [new]
ып
Guest
From help

InputMask Property


You can use the InputMask property to make data entry easier and to control the values users can enter in a text box control. For example, you could create an input mask for a Phone Number field that shows you exactly how to enter a new number: (___) ___-____. It is often easier to use the Input Mask Wizard to set the property for you.

Setting

The InputMask property can contain up to three sections separated by semicolons (;).

Section Description
First Specifies the input mask itself; for example, !(999) 999-9999. For a list of characters you can use to define the input mask, see the following table.
Second Specifies whether Microsoft Access stores the literal display characters in the table when you enter data. If you use 0 for this section, all literal display characters (for example, the parentheses in a phone number input mask) are stored with the value; if you enter 1 or leave this section blank, only characters typed into the control are stored.
Third Specifies the character that Microsoft Access displays for the space where you should type a character in the input mask. For this section, you can use any character; to display an empty string, use a space enclosed in quotation marks (" ").


In Visual Basic you use a string expression to set this property. For example, the following specifies an input mask for a text box control used for entering a phone number:

Forms!Customers!Telephone.InputMask = "(###) ###-####"When you create an input mask, you can use special characters to require that certain data be entered (for example, the area code for a phone number) and that other data be optional (such as a telephone extension). These characters specify the type of data, such as a number or character, that you must enter for each character in the input mask.

You can define an input mask by using the following characters.

Character Description
0 Digit (0 to 9, entry required, plus [+] and minus [-] signs not allowed).
9 Digit or space (entry not required, plus and minus signs not allowed).
# Digit or space (entry not required; spaces are displayed as blanks while in Edit mode, but blanks are removed when data is saved; plus and minus signs allowed).
L Letter (A to Z, entry required).
? Letter (A to Z, entry optional).
A Letter or digit (entry required).
a Letter or digit (entry optional).
& Any character or a space (entry required).
C Any character or a space (entry optional).
. , : ; - / Decimal placeholder and thousand, date, and time separators. (The actual character used depends on the settings in the Regional Settings Properties dialog box in Windows Control Panel).
< Causes all characters to be converted to lowercase.
> Causes all characters to be converted to uppercase.
! Causes the input mask to display from right to left, rather than from left to right. Characters typed into the mask always fill it from left to right. You can include the exclamation point anywhere in the input mask.
\ Causes the character that follows to be displayed as the literal character (for example, \A is displayed as just A).


Note Setting the InputMask property to the word "Password" creates a password-entry control. Any character typed in the control is stored as the character but is displayed as an asterisk (*). You use the Password input mask to prevent displaying the typed characters on the screen.

For a control, you can set this property in the control's property sheet. For a field in a table, you can set the property in table Design view (in the Field Properties section) or in Design view of the Query window (in the Field Properties property sheet).

You can also set the InputMask property by using a macro or Visual Basic.

Remarks

When you type data in a field for which you've defined an input mask, the data is always entered in Overtype mode. If you use the BACKSPACE key to delete a character, the character is replaced by a blank space.

If you move text from a field for which you've defined an input mask onto the Clipboard, the literal display characters are copied, even if you have specified that they not be saved with data.

Note Only characters that you type directly in a control or combo box are affected by the input mask. Microsoft Access ignores any input masks when you import data, run an action query, or enter characters in a control by setting the control's Text property in Visual Basic or by using the SetValue action in a macro.

When you've defined an input mask and set the Format property for the same field, the Format property takes precedence when the data is displayed. This means that even if you've saved an input mask, the input mask is ignored when data is formatted and displayed. The data in the underlying table itself isn't changed; the Format property affects only how the data is displayed.
31 янв 06, 15:31    [2305686]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить отображение #Error  [new]
wook
Guest
Спасибо, :)

С маской разобрался :)

А как с #Error быть?
он как был так и остался :(
31 янв 06, 15:46    [2305778]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить отображение #Error  [new]
ып
Guest
Была подсказка использовать функцию Nz(). См справку
31 янв 06, 15:47    [2305788]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить отображение #Error  [new]
wook
Guest
да ноу меня ничего не получилось.

Я в Properties - Control Source написал

=NZ([Text37];0)

и #Error остался все равно :(
31 янв 06, 15:51    [2305807]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить отображение #Error  [new]
ыпвы
Guest
Как выглядит вычисляемое выражение?
31 янв 06, 16:07    [2305895]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить отображение #Error  [new]
wook
Guest
Результат, отображаемый в поле Text37, вычисляется по формуле:

=IIf([t9]*(2^3)+[t10]*(2^2)+[t11]*(2^1)+[t12]*(2^0)>=10;Chr([t9]*(2^3)+[t10]*(2^2)+[t11]*(2^1)+[t12]*(2^0)+55);[t9]*(2^3)+[t10]*(2^2)+[t11]*(2^1)+[t12]*(2^0))

Сама база данных приложена в самом первом сообщении.
31 янв 06, 16:18    [2305947]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить отображение #Error  [new]
Ольга_Т
Member

Откуда: Москва
Сообщений: 629
Я пишу в вычисляемом поле IIF(IsNumeric(Expr);Expr;""), и вместо ерроров - пустые строки.
31 янв 06, 16:37    [2306033]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить отображение #Error  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
wook
и #Error остался все равно :(
Турникет ищете? Сюда пожалуйте:
Форма: [Aviation User Protocol]
Контрол: [Code]
Установить значение по умолчанию: =128
Это я не вам навсегда, а просто чтобы вы сами вспомнили где у вас собака порылась.

Ну как так. Разве не вы писали сей апофеоз вычисляемых контролов в отдельно взятой форме? Ведь кто-то же написал для тех контролов, где вас мучает #Error (а именно: Text33, Text35, Text37) формулу вычисления, использующую числа из контролов T2-T11.

А там эти числа вычисляются, исходя из значения поля Code - причем если в Code значение меньше 128, то вместо чисел там выводится строка "ERROR" - которая в дальнейшем участвует в арифметических действиях, что и приводит к ошибке.

То есть, что у вас происходит при открытии вашей формы:
1) контрол Code содержит пустое значение
2) контролы T2-T11 содержат слово "ERROR"
3) контролы Text33, Text35, Text37 при попытке взять степень числа от этого значения обламываются и пишут вам #Error.

То есть, вы буквально сами и написали туда это слово. Вот такое вот вуаля вам ;)
31 янв 06, 17:28    [2306304]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить отображение #Error  [new]
Rivkin Dmitry
Member

Откуда: Israel
Сообщений: 5500
Может быть так?

К сообщению приложен файл (ELT.zip - 44Kb) cкачать
31 янв 06, 17:42    [2306397]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить отображение #Error  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Если по-простому, то можно при открытии формы программно установить первый элемент в комбобоксе Combo4 и вызвать его AfterUpdate. После того как в поле Code появляется значение - а они все заведомо >128 ;) - проблемные контролы приходят в чувство.

А ежели по-хорошему, то надо бы, конечно, тот вредоносный IIf не заканчивать словом ERROR (тогда уж просто нулем). А захочется просигналить о недопустимом значении в поле Code - лучше где-нибудь в отдельном контроле об этом открыто заявить, либо цветом выделить ядовитым.

Ну и во-вторых, вполне можно пару функций маленьких написать для ControlSource вычисляемых контролов. А то уж шибко громоздкие и однотипные выражения там ворочаются.
31 янв 06, 18:24    [2306661]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить отображение #Error  [new]
wook
Guest
To Rivkin Dmitry:
Bolshoje Vam spasibo, kod dejstvitelno krasivij :) i net nikakih dopolnitelnih skritih okoshek :))
No tolko teper knopka Calculate kak bi i ne nuzna.

Kak s vashim kodom sdelatj tak, 4tobi posle vvoda poslednego Registracionnogo Simvola, vi4eslenija ne proishodilo do teh por, poka ne nazmesh na knopku Calculate?

I kak selatj tak, 4tobi nazav na knopku SAVE, vesj ELT code pomestilsja v Tablicu vmeste s Registracionnim nomerom?

Ja naverno mnogogo ho4u da? :)

Prosto ja navi4ek v etom dele (v Access'e).

A baza dannih budet.
Tak kak flot rastet, i koli4estvo samoletov uveli4ivaetsja. I vot budet baza dannih registracioonih nomerov i kodov ELT.
I po zaprosu Civil Aviation Administration mozno budet vidatj konkretnij nomer ELT po zaprowennomu Registracionnomu nomeru v krasivo oformlennom ot4ete, absoljutno avtomati4eski.
1 фев 06, 09:49    [2307752]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить отображение #Error  [new]
Rivkin Dmitry
Member

Откуда: Israel
Сообщений: 5500
Я только предложил один из вариантов. Можно сделать еще проще. Или сложнее, имхо! :)
Поле для деятельности и фантазии.
Не делать расчеты пока не нажата кнопка - удали код на AfterUpdate всех контролов под названием "символ"
А для спасения полученного результата придется писать процедуру заполнения соответствующей таблицы. С проверками на существование такой записи. Если существует - что делать? и т.д.

Стоит покапаться в учебниках или в хелпе, прежде, чем начнешь программировать!

Удачи!
1 фев 06, 10:10    [2307841]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить отображение #Error  [new]
bubucha
Member

Откуда:
Сообщений: 5641
автор
=IIf([t9]*(2^3)+[t10]*(2^2)+[t11]*(2^1)+[t12]*(2^0)>=10;Chr([t9]*(2^3)+[t10]*(2^2)+[t11]*(2^1)+[t12]*(2^0)+55);[t9]*(2^3)+[t10]*(2^2)+[t11]*(2^1)+[t12]*(2^0))

О! Это где это вас так научили???
1 фев 06, 10:13    [2307856]     Ответить | Цитировать Сообщить модератору
 Re: Как запретить отображение #Error  [new]
wook
Guest
Rivkin Dmitry
Я только предложил один из вариантов. Можно сделать еще проще. Или сложнее, имхо! :)
Поле для деятельности и фантазии.
Не делать расчеты пока не нажата кнопка - удали код на AfterUpdate всех контролов под названием "символ"
А для спасения полученного результата придется писать процедуру заполнения соответствующей таблицы. С проверками на существование такой записи. Если существует - что делать? и т.д.

Стоит покапаться в учебниках или в хелпе, прежде, чем начнешь программировать!

Удачи!


Udalil kod na AfterUpdate vseh kontrolov Symbol (AfterUpdate bil tolko na odnom), i vse ravno i4ego ne polu4ilosj. Kak tolko vvozu poslednij simvol v pole SYMBOL7 to srazu ze pojavljaetsja rezultat.
13 фев 06, 12:55    [2349680]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить