Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.08.2012, 12:26   #1
Amka
Пользователь
 
Регистрация: 17.04.2012
Сообщений: 25
По умолчанию Непонятна ошибка в коде vba

Здравствуйте, мне приходится осваивать vba, происходит все со скрипом. вот тут прога ругается и ожидает знака равно,а я не пойму куда и зачем((
iif(Forms![Ф1]![ПолеСоСписком4].Value="нет",Forms![Ф1]![ПолеСоСписком4].BackColor = Blue,Forms![Ф1].Controls![Ф2].Form.Controls![поле].InputMask=Forms![Ф1]![ПолеСоСписком4].Value)

Ф1 главная форма, на ней поле со списком, Ф2-подчиненная табличная форма для заполнения значений. мне хотелось, чтобы при переходе к каждой новой строке прога проверяла значение поля со списком главной формы и если там выбрана одна из масок ввода, эта маска применялась бы к текущему полю. Где я не права?
Amka вне форума Ответить с цитированием
Старый 23.08.2012, 15:09   #2
Amka
Пользователь
 
Регистрация: 17.04.2012
Сообщений: 25
По умолчанию

Вообщем я немного исправила но теперь новая проблема. выбираю из списка нужную маску, ввожу в подчиненную табличную форму запись(по маске, т е маска сработала), после этого хочу выбрать другую маску чтобы ввести новую запись в другом виде, и все введеное ранее изменяется согласно новой выбранной маске. а мне нужно чтобы оно так записывалось в таблицу со всеми масочными точкамми и запятыми.а другие поля по-другому сохранялись
Цитата:
Private Sub Form_Open(Cancel As Integer)
Forms![Ф1]![ПолеСоСписком0].Value = "свободный"
End Sub

Private Sub ПолеСоСписком0_AfterUpdate()
If Forms![1_Vvod]![ПолеСоСписком0].Text = "свободный" Then Forms![Ф1]![ПолеСоСписком0].BackColor = Blue Else Forms![Ф1].Controls![Ф2].Form.Controls![поле].InputMask = Forms![Ф1]![ПолеСоСписком0].Text
End Sub

Последний раз редактировалось Amka; 23.08.2012 в 15:12.
Amka вне форума Ответить с цитированием
Старый 23.08.2012, 15:23   #3
Amka
Пользователь
 
Регистрация: 17.04.2012
Сообщений: 25
По умолчанию

Выходит, что какие бы разные аски я нен применяла, в таблицу сохняется только то, что пользователь ввел сам((есть вариант чтобы при вводе в поле с маской __._.____.____.__ например чисел 3333333333333 в базе сохранялось 33.3.3333.3333.33?а иначе зачем мне разные маски если в таблице будет все равно каша из цифр.может стоит также записывать в таблицу маску, которая применялась для записи каждой конкретной строки.но тогда потом, заглядывая вперед как мне вывести значения каждое сос воей маской в одну таблицу.ведь я так поняла маска либо одна для всей таблицы либо никакой, то есть нельзя для каждого поля свою отображать.или нет?помогите кто-нибудь, у меня голова сейчас лопнет)
Amka вне форума Ответить с цитированием
Старый 23.08.2012, 15:30   #4
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Добрый день.
А Вы не пробовали маску в таблице назначить?
gluk_fm вне форума Ответить с цитированием
Старый 23.08.2012, 15:41   #5
Amka
Пользователь
 
Регистрация: 17.04.2012
Сообщений: 25
По умолчанию

тогда будет маска для всех строк таблицы, а мне нужна своя собственная для кадой строки, настраеваемая пользователем
Amka вне форума Ответить с цитированием
Старый 23.08.2012, 20:04   #6
Андрэич
Форумчанин
 
Аватар для Андрэич
 
Регистрация: 20.05.2012
Сообщений: 311
По умолчанию

Цитата:
Сообщение от Amka Посмотреть сообщение
Здравствуйте, мне приходится осваивать vba, происходит все со скрипом. вот тут прога ругается и ожидает знака равно,а я не пойму куда и зачем((
iif(Forms![Ф1]![ПолеСоСписком4].Value="нет",Forms![Ф1]![ПолеСоСписком4].BackColor = Blue,Forms![Ф1].Controls![Ф2].Form.Controls![поле].InputMask=Forms![Ф1]![ПолеСоСписком4].Value)

Ф1 главная форма, на ней поле со списком, Ф2-подчиненная табличная форма для заполнения значений. мне хотелось, чтобы при переходе к каждой новой строке прога проверяла значение поля со списком главной формы и если там выбрана одна из масок ввода, эта маска применялась бы к текущему полю. Где я не права?
По коду.
1. Используйте конструкцию If ... Then ... Else. Функция IIf -"немедленный If", - несмотря на своё название , работает медленнее; ещё она менее понятна (есть ещё причины...)
2. Функция RGB() вернёт нужный цвет.
3. Свойство Vаlue (значение, содержание) является свойством поля по умолчанию. Указывать его необязательно.
4. Пытаетесь сравнить несравнимое: значение поля и Маску ввода...

Вообще, посмотрите в справке Условное форматирование. Скорей всего, это то, чего вы пытаетесь добиться...

Устанавливать какие-либо ограничения полей непосредственно в таблице - совет вреднейший. Всё только в форме ввода...

Главный вопрос:
а зачем пользователю менять свойство Маска ввода???
Андрэич вне форума Ответить с цитированием
Старый 23.08.2012, 20:10   #7
Андрэич
Форумчанин
 
Аватар для Андрэич
 
Регистрация: 20.05.2012
Сообщений: 311
По умолчанию

gluk_fm,
извиняюсь, неправильно интерпретировал вашу фразу. Перечитал и понял: это не совет, но вопрос... Ещё раз, сорри

Последний раз редактировалось Андрэич; 23.08.2012 в 20:13. Причина: пропуск слова
Андрэич вне форума Ответить с цитированием
Старый 23.08.2012, 20:53   #8
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Amka.
Думаю опыта у Вас не много, и потому рекомендую выложить здесь на странице
архив с проектом (базой данных) и краткое описание назначения и желаемого
результата. И тогда участники форума смогут Вам помочь не только в решении
"проблемы" с ошибками в коде, но и советом - как решить Вашу задачу правильно
используя маски ввода или другие возможности MS Access.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 26.08.2012, 23:49   #9
Myhaylo
Форумчанин
 
Регистрация: 19.07.2012
Сообщений: 520
По умолчанию

Если Вы сможете сохранять маску для каждой записи (а это уже будет нестандартная обработка данных), то потом нужно писать свою функцию, которая бы отображала данные в требуемом формате (поскольку нестандартная обработка данных). Вопрос только в одном: сможете ли Вы придумать удобный интерфейс для пользователя...
Это всё возможно, если идёт речь не о таблицах, расположенных на закладке "Таблицы" окна "база данных", а о формах в режиме таблицы.
Окупант, руки прочь от Украины!!! Слава Героям!
Myhaylo вне форума Ответить с цитированием
Старый 27.08.2012, 10:44   #10
Amka
Пользователь
 
Регистрация: 17.04.2012
Сообщений: 25
По умолчанию

Да дело в том что мне и выложить пока нечего. есть только задумка и я пока не разобралась как ее реализовать. данные вводимые в таблицу могут вводиться в нескольких разных форматах,часто совершаюся ошибки при вводе, так как в записи много точек,черточек и всякого такого. могут появиться новые форматы. поэтому я думала существующие форматы заносить в таблицу "маски" в виде масок ввода. на форме был бы выпадающий список, пользователь выбирает маску из списка-она применяется к текущей строке таблицы куда вносятся данные. и еще в эту строку заносится информация о применяемой маске. а потом надо будет придумать запрос, который выдавал бы мне записи с учетом примененной маски, как Myhaylo сказал. Так что наверное сейчас проблема в функции , которая будет для каждой строки применять маску из поля2 к полю1 и выводить это в запрос.Кто-нибудь может сказать как ее писать?от чего отталкиваться?сколько читаю про маски, они применяются ко всей таблице разом(
Amka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? ArchiCurtis Помощь студентам 2 07.04.2012 14:16
ошибки в коде VBA noscere Microsoft Office Excel 7 05.04.2012 13:46
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? ankris HTML и CSS 5 23.11.2010 16:58
Исправить ошибку в коде VBA. NitriNKa Помощь студентам 2 29.04.2009 22:22
использование SQL запросов в коде VBA b00s Microsoft Office Access 3 26.04.2008 13:40