Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
kos-625
2 / 2 / 1
Регистрация: 15.02.2014
Сообщений: 127
#1

Модуль для форматирования поля - MS Access

20.05.2018, 19:02. Просмотров 191. Ответов 11
Метки нет (Все метки)

Курсор становится на поле - выделяется красным цветом название поля.
На форме поля с текстовым значением и поля с выпадающим значением. Прописал модуль для Combobox., как добавить в модуль чтобы форматирование было и для полей Text?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Function CtlFormat2(ctl As ComboBox)
    ctl.Controls(0).FontBold = False
    ctl.Controls(0).ForeColor = RGB(127, 127, 127)
    ctl.BorderColor = RGB(127, 127, 127)
End Function
 
Public Sub CreateCode()
Dim frm As Form
Dim ctl As Control
Set frm = Form_Form1
    For Each ctl In frm.Controls
        If TypeOf ctl Is Access.ComboBoxBox Then
            ctl.OnGotFocus = "=CtlFormat(" & ctl.Name & ")"  '=CtlFormat(Familia)
            ctl.OnLostFocus = "=CtlFormat2(" & ctl.Name & ")" '=CtlFormat2(Familia)
        End If
    Next ctl
End Sub
 
Public Sub CreateCode2()
Dim frm As Form
Dim ctl As Control
Set frm = Form_Form1
    For Each ctl In frm.Controls
        If TypeOf ctl Is Access.ComboBoxBox Then
            ctl.OnGotFocus = vbNullString
            ctl.OnLostFocus = vbNullString
        End If
    Next ctl
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2018, 19:02
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Модуль для форматирования поля (MS Access):

Глюк при задании условного форматирования поля со списком
Только что наткнулся на явный глюк. Создаю в табличной форме поле со списком....

Процедура для условного форматирования
Добрый день! Помогите кто может! Есть форма Рем в ней заполняются даты и...

Значения для условного форматирования из других таблиц
Ребят, помогите! В отчете с помощью условного форматирования нужно перекрасить...

Зависимые поля (список значений одного поля зависит от значения другого поля)
Здравствуйте, Уважаемые участники форума, изучив множество подобных вопросов...

Как связать между собой два поля (список значений одного поля зависит от значения другого поля)
Есть таблица: предмет, КодТипаМатериала (список), КодМатериала (список) ...

Модуль для очистки переносов строк, пробелов и точек
Помогите отладить модуль для очистки колонки таблицы от переносов строк,...

11
mobile
Эксперт MS Access
22496 / 12814 / 2613
Регистрация: 28.04.2012
Сообщений: 14,015
20.05.2018, 19:25 #2
Цитата Сообщение от kos-625 Посмотреть сообщение
Курсор становится на поле - выделяется красным цветом название поля.
На форме поля с текстовым значением и поля с выпадающим значением. Прописал модуль для Combobox., как добавить в модуль чтобы форматирование было и для полей Text?
Если правильно понял, то достаточно заменить иф (проверяющий тип контрола) на
Visual Basic
1
If TypeOf ctl Is Access.ComboBox Or TypeOf ctl Is Access.TextBox Then
0
kos-625
2 / 2 / 1
Регистрация: 15.02.2014
Сообщений: 127
20.05.2018, 20:00  [ТС] #3
Выдает ошибку -если курсор становится на текстовое поле.
0
Миниатюры
Модуль для форматирования поля   Модуль для форматирования поля  
Вложения
Тип файла: rar Инвентаризация непрофильных активов (2) — копия.rar (14.26 Мб, 2 просмотров)
mobile
Эксперт MS Access
22496 / 12814 / 2613
Регистрация: 28.04.2012
Сообщений: 14,015
20.05.2018, 20:16 #4
Цитата Сообщение от kos-625 Посмотреть сообщение
Выдает ошибку -если курсор становится на текстовое поле.
Вы не сделали параметр функций CtlFormat и CtlFormat2 универсального типа As Control, а оставили ComboBox. Поэтому ошибка несоответствия типа. Надо:
Visual Basic
1
Function CtlFormat(ctl As Control)
и
Visual Basic
1
Function CtlFormat2(ctl As Control)
1
kos-625
2 / 2 / 1
Регистрация: 15.02.2014
Сообщений: 127
20.05.2018, 20:22  [ТС] #5
Отлично! Все заработало! Спасибо!
0
shanemac51
Модератор
Эксперт MS Access
7768 / 2986 / 423
Регистрация: 07.08.2010
Сообщений: 8,142
Записей в блоге: 1
20.05.2018, 20:25 #6
сравните ваш код с этим
и не забывайте про Option Explicit и компиляцию

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Option Explicit
Dim jc As Long
Function CtlFormat(ctl As Object)
jc = ctl.ControlType
 If jc = acComboBox Or jc = acTextBox Then
    ctl.Controls(0).FontBold = True
    ctl.Controls(0).ForeColor = vbRed
    ctl.BorderColor = vbRed
  End If
End Function
 
Function CtlFormat2(ctl As Object)
jc = ctl.ControlType
 If jc = acComboBox Or jc = acTextBox Then
    ctl.Controls(0).FontBold = False
    ctl.Controls(0).ForeColor = RGB(127, 127, 127)
    ctl.BorderColor = RGB(127, 127, 127)
    End If
End Function
 
Public Sub CreateCode()
Dim frm As Form
Dim ctl As Control
Set frm = Form_Form1
    For Each ctl In frm.Controls
    jc = ctl.ControlType
        If jc = acComboBox Or jc = acTextBox Then
 
 
            ctl.OnGotFocus = "=CtlFormat(" & ctl.Name & ")"  '=CtlFormat(Familia)
            ctl.OnLostFocus = "=CtlFormat2(" & ctl.Name & ")" '=CtlFormat2(Familia)
        End If
    Next ctl
End Sub
 
Public Sub CreateCode2()
Dim frm As Form
Dim ctl As Control
Set frm = Form_Form1
    For Each ctl In frm.Controls
        'If TypeOf ctl Is Access.ComboBoxBox Then
        If ctl.ControlType = acComboBox Then
            ctl.OnGotFocus = vbNullString
            ctl.OnLostFocus = vbNullString
        End If
    Next ctl
End Sub
1
kos-625
2 / 2 / 1
Регистрация: 15.02.2014
Сообщений: 127
20.05.2018, 20:49  [ТС] #7
Спасибо, точно ,как то "потерял" Option Explicit. Этот код тоже работает!
0
shanemac51
Модератор
Эксперт MS Access
7768 / 2986 / 423
Регистрация: 07.08.2010
Сообщений: 8,142
Записей в блоге: 1
20.05.2018, 20:59 #8
да в вложения огромные --при таких размерах вы сможете ввести в базу не более 1000 записей
0
kos-625
2 / 2 / 1
Регистрация: 15.02.2014
Сообщений: 127
20.05.2018, 21:05  [ТС] #9
С вложениями подумаю, наверное лучше гиперссылку сделать?
0
shanemac51
Модератор
Эксперт MS Access
7768 / 2986 / 423
Регистрация: 07.08.2010
Сообщений: 8,142
Записей в блоге: 1
20.05.2018, 21:24 #10
так как в некоторых позициях по нескольку вложений --удобнее сделать подчиненную таблицу для гиперссылок
что бы при открытии головной части записи было сразу видно, а есть ли вложения

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

конечно неразумны поля количество/списание/остатки
--количество должно вводиться приходной накладной
--списание/расход --расходной накладной
--поле входной остаток для хранения результатов последней инвентаризации
--поле остаток --считать запросом, а не объявлять его вычисляемым
1
kos-625
2 / 2 / 1
Регистрация: 15.02.2014
Сообщений: 127
20.05.2018, 21:40  [ТС] #11
Спасибо, за полезные советы- проработаю. База задумывалась как альтернатива excel .Товар этот не для продажи,поэтому приходов и расходов как таковых практически не будет.
0
shanemac51
Модератор
Эксперт MS Access
7768 / 2986 / 423
Регистрация: 07.08.2010
Сообщений: 8,142
Записей в блоге: 1
20.05.2018, 21:42 #12
Цитата Сообщение от kos-625 Посмотреть сообщение
приходов и расходов как таковых практически не будет
УВЫ, но есть количество/списание/остатки
обычно при этом отслеживают, кто и когда их изменил
(конечно если это не студенческая поделка, где все правильно --если хоть что-то открывается)
0
20.05.2018, 21:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2018, 21:42
Привет! Вот еще темы с решениями:

Код VBA (для события поля со списком "Отсутствие в списке") для добавления новой записи в таблицу
Здравствуйте! Подскажите пожалуйста код VBA для добавления новой записи. А...

Фильтр для поля со списком
Здравствуйте!Собственно такая проблема. Есть форма - Билеты, на ней есть...

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

Создание поля для поиска
Добрый вечер! Подскажите пожалуйста как создать в запросе поле с возможностью...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru