Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60

Добавление готового модуля

15.02.2017, 18:46. Показов 5195. Ответов 62
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. У меня был назначен макрос для кнопки. Я преобразовал его в модуль VBA. Как назначить этот готовый модуль для кнопки.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.02.2017, 18:46
Ответы с готовыми решениями:

[C++ Builder XE7] Добавление анимации на форму из готового .avi файла
Здравствуйте! Имеется тема курсовой на игровую тематику. Среда разработки C++ Builder XE7 В игре есть персонаж, состояние персонажа будет...

Добавление модуля
Windows 7 x64 Есть ли в кьюте установщик модулей? Или где в настройках кьюте можно указать путь к моему модулю? Как вообще...

Добавление модуля
Доброго времени суток! Очень нуждаюсь в Вашей помощи. Есть готовая рабочая програма. Всё что нужно, это сделать, что бы использованые в...

62
Эксперт MS Access
 Аватар для Eugene-LS
13270 / 5947 / 1529
Регистрация: 05.10.2016
Сообщений: 16,651
16.02.2017, 22:11
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Capricorn Посмотреть сообщение
А так изменений никаких
Ясно.

Добавлено через 22 минуты
А пустые даты в диапазон попадают?

Добавлено через 12 минут
Там еще нескольких полей кстати не хватает: Дата Сдачи, Дата выдачи талона, Дата получения талона + дата выдачи сертификата
Это как?

Добавлено через 5 минут
Короче:
Проверил - всё работает нормально по всем полям - просто строка фильтра длинная - ДА!
Ну что поделать - не я это придумал...
Идёт удвоение условий через OR.

Всё.
Успехов!
0
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60
17.02.2017, 01:07  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Дата Сдачи, Дата выдачи талона, Дата получения талона + дата выдачи сертификата
У меня такого не было

Добавлено через 1 минуту
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Проверил - всё работает нормально по всем полям - просто строка фильтра длинная - ДА!
А как написать это фильтр?

Добавлено через 8 минут
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Ясн
Блин. Обновлял страницу время от времени и не заметил, что третья страница уже появилась.
0
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60
19.02.2017, 20:21  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Короче:
Проверил - всё работает нормально по всем полям - просто строка фильтра длинная - ДА!
Ну что поделать - не я это придумал...
Идёт удвоение условий через OR.
А что за строка то? Я не понял ничего.
0
Эксперт MS Access
 Аватар для Eugene-LS
13270 / 5947 / 1529
Регистрация: 05.10.2016
Сообщений: 16,651
19.02.2017, 20:43
Цитата Сообщение от Capricorn Посмотреть сообщение
А что за строка то? Я не понял ничего.
Строку предстоит создать ЛИЧНО вам!
Я проверил - всё работает, подсказки выше.
Если хотите "готовенькое" - это, извините, не ко мне.

Добавлено через 12 минут
Я остановился тут - когда понял что вам ПУПО ЛЕНЬ!
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
48
49
50
51
Private Sub DoSubFormFilter()
Dim s$
Dim datFrom$, datTo$
Dim sT$
Dim sTemp$
 
    If (Me!ФильтрПодразделение <> "") Then
            s = " And Подразделение = '" & Me!ФильтрПодразделение & "'"
    End If
        
    If (Me!ФильтрПрисоединение <> "") Then
            s = " And Присоединение = '" & Me!ФильтрПрисоединение & "'"
    End If
        
    If (Me!ФильтрОборудование <> "") Then
            s = " And Оборудование = '" & Me!ФильтрОборудование & "'"
    End If
 
 
' памятка
' Oборудование |Дата К |Дата В |Дата К1 |
'= WHERE ((([Дата Н]) Between #5/12/2017# And #5/12/2017#)) OR ((([Дата К1]) Between #5/12/2017# And #5/12/2017#)) OR ((([Дата К]) Between #5/12/2017# And #5/12/2017#)) OR (((Оборудование.[Дата В]) Between #5/12/2017# And #5/12/2017#));
    
'WHERE (((Оборудование.Оборудование)="не") AND ((Оборудование.[Дата Н]) Between #5/12/2017# And #5/12/2017#)) OR (((Оборудование.Оборудование)="не") AND ((Оборудование.[Дата К1]) Between #5/12/2017# And #5/12/2017#)) OR (((Оборудование.Оборудование)="не") AND ((Оборудование.[Дата К]) Between #5/12/2017# And #5/12/2017#)) OR (((Оборудование.Оборудование)="не") AND ((Оборудование.[Дата В]) Between #5/12/2017# And #5/12/2017#));
    
    
    'Аугешвайдинг арбайтен!
    If IsDate(Me!txtDateFrom) And IsDate(Me!txtDateTo) Then 'Ментало гоферентеируталинг
        datFrom = Format$(Me!txtDateFrom, "\#mm\/dd\/yy\#")
        datTo = Format$(Me!txtDateTo, "\#mm\/dd\/yy\#")
        
        sTemp = " And ([Дата Н] Between " & datFrom & " and " & datTo & ") OR ([Дата К1] Between " & datFrom & " and " & datTo & _
        ") OR ([Дата К] Between " & datFrom & " and " & datTo & ") OR ([Дата В] Between " & datFrom & " and " & datTo & ")"
        'Debug.Print sTemp
        's = s & sTemp
    
        sTemp = s & " And ([Дата Н] Between " & datFrom & " and " & datTo & ") OR " & s
        s = sTemp
        Debug.Print s
    End If
 
 
    If Len(s) > 5 Then
        s = Mid(s, 6)
        Me.Filter = s
        Me.FilterOn = True
    Else
        Me.FilterOn = False
        Me.Filter = ""
    End If
End Sub
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12512 / 5086 / 814
Регистрация: 07.08.2010
Сообщений: 14,972
Записей в блоге: 4
19.02.2017, 21:29
что то я такой записи не доверяю
Visual Basic
1
2
3
If (Me!ФильтрПодразделение <> "") Then
            s = " And Подразделение = '" & Me!ФильтрПодразделение & "'"
    End If
применяю только
Visual Basic
1
2
3
4
If  len (Me!ФильтрПодразделение & "")>0 Then
            s = " And Подразделение = '" & Me!ФильтрПодразделение & "'"
    End If
    '''''
1
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60
19.02.2017, 22:07  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Я остановился тут - когда понял что вам ПУПО ЛЕНЬ!
Мне не лень. Я нашел пример в нете. Пытался вставить и отдельно и в фильтр. Но то одни ошибки то другие. А я даже не понимаю что не так.
0
Эксперт MS Access
 Аватар для Eugene-LS
13270 / 5947 / 1529
Регистрация: 05.10.2016
Сообщений: 16,651
19.02.2017, 22:16
Цитата Сообщение от Capricorn Посмотреть сообщение
Пытался вставить и отдельно и в фильтр. Но то одни ошибки то другие.
Так это нормально = отладка кода...
Нормальный процесс.

Подсказку (где решение) вам дали - а дальше сами.
Моя рекомендация:
Сделать сначала одно поле по дате (с учётом всех остальных условий)
- Потом второе отладить
- Ну а третье само пойдёт - и вам смешно станет насколько всё просто.
0
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60
19.02.2017, 22:24  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Сделать сначала одно поле по дате (с учётом всех остальных условий)
Visual Basic
1
2
3
4
5
6
7
If (IsDate(Me!С)) Then
    's = "Дата К Between " & Format(Nz(Me.С, #1/1/2000#), "\#mm\/dd\/yyyy\#") & " And " & Format(Nz(Me.по, #1/1/3000#), "\#mm\/dd\/yyyy\#")
    End If
    
    If IsDate(Me!по) Then
    's= "Дата К Between " & Format(Nz(Me.С, #1/1/2000#), "\#mm\/dd\/yyyy\#") & " And " & Format(Nz(Me.по, #1/1/3000#), "\#mm\/dd\/yyyy\#")
    End If
Я попробовал так но не знаю что писать для обновления поля. Просто DoSubFormFilter?

Я бы просто понял логику если бы умел читать этот код. Сейчас конечно попробую.

И еще один вопрос.
Даты надо будет фильтровать не только в масштабе оборудования. А когда то всех записей когда то для присоединения.
По логике как я понял мы задали переменную "s" и надо просто еще один фильтр или в этом же фильтре другую переменную который будет фильтровать значение s по датам?
0
Эксперт MS Access
 Аватар для Eugene-LS
13270 / 5947 / 1529
Регистрация: 05.10.2016
Сообщений: 16,651
19.02.2017, 22:31
Цитата Сообщение от Capricorn Посмотреть сообщение
И еще один вопрос.
А вам писал (выше) - постройте запрос по полному заполнению условий - ОН будет вам подсказкой.
А то что я опубликовал = просто болванка (моя и для меня).

Там всё через "OR" делается.
0
Эксперт MS Access
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
19.02.2017, 22:41
Цитата Сообщение от shanemac51 Посмотреть сообщение
что то я такой записи не доверяю
Достаточно сопоставить и ответ однозначен. Хотя бы таким запросом и все будет ясно
SQL
1
2
3
4
5
SELECT top 1 "Пустая строка" AS ТипЗначения, ("" & "")="" AS [без Len], len("" & "")=0 AS [c Len], [без Len]=[c Len] AS [Они равны?] FROM msysobjects
UNION ALL
SELECT top 1 "NULL", (NULL & "")="", len(NULL & "")=0, ((NULL & "")="") = (len(NULL & "")=0) FROM msysobjects
UNION ALL
SELECT top 1 "Символ", ("a1" & "")="", len("a1" & "")=0, (("a1" & "")="") = (len("a1" & "")=0) FROM msysobjects
Результаты
ТипЗначения Значение без Len c LenОни равны?
Пустая строка -1 -1-1
NULL -1 -1-1
Символ a 0 0-1
Во всех случая проверки с Len и без Len тождественны, совпадают. И понятно почему - конкатенация нулла или пустой строки с пустой строкой дают в результате только пустую строку. Длина которой всегда 0. Так что особого смысла использовать Len нет. Ну разве что для увеличения времени исполнения
0
Эксперт MS Access
 Аватар для Eugene-LS
13270 / 5947 / 1529
Регистрация: 05.10.2016
Сообщений: 16,651
19.02.2017, 22:47
Цитата Сообщение от mobile Посмотреть сообщение
Хотя бы таким запросом и все будет ясно
Ну через "UNION ALL" - там городить IMHO не стоит.
И так всё нормально - просто длинная строка фильтра с прибл 14-тью "но" и "если".
Да - Не проста строчка.
Просто (кое кому) лень её построить просто.
0
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60
19.02.2017, 23:26  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Там всё через "OR" делается.
Я понимаю что уже надоел скорее всего.

Но если можно кое что пояснить.
В строках что выше
Сперва мы присваиваем полям тип даты.
Потом sTemp задаем какие поля и как фильтровать.
Потом совмещаем два фильтра s и sTemp
Приравниваем s к sTemp
Я правильно понял или нет просто?
Я фильтрую даты по одному полю выдает ошибку в этом совмещении как раз.
0
Эксперт MS Access
 Аватар для Eugene-LS
13270 / 5947 / 1529
Регистрация: 05.10.2016
Сообщений: 16,651
19.02.2017, 23:28
Уважаемый Capricorn, а если пользователю потребуется выборка по датам не по всем полям:
"|Дата К |Дата В |Дата К1 |"
А только, допустим, по "Дата В" - Вполне допускаю что такое возможно.
- и тут всё меняется.
А по сему:
Лучше ,что бы вы сами освоили фильтрацию формы.
Успехов!
0
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60
19.02.2017, 23:32  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Лучше ,что бы вы сами освоили фильтрацию формы.
Я и пытаюсь освоить. Пытаюсь понять тип записей. Просто правильно я понял что выше написано или нет? Если да то я тогда примерно пойму что надо поменять или от чего отталкиваться.
0
Эксперт MS Access
 Аватар для Eugene-LS
13270 / 5947 / 1529
Регистрация: 05.10.2016
Сообщений: 16,651
19.02.2017, 23:37
Цитата Сообщение от Capricorn Посмотреть сообщение
сли да то я тогда примерно пойму что надо поменять или от чего отталкиваться.
Я подсказывал:
Постройте запрос по всем параметрам - переведите его в режим SQL - то что после WHERE - это ваш фильтр (строка фильтра).
Дальше стройте строку фильтра по значениям полей выбора с учётом того что НЕКОТОРЫЕ могут быть не заданны.
0
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60
20.02.2017, 00:18  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Я подсказывал
Спасибо. Все получилось.
Только теперь ищу как цветом поля нужные выделить. А то слишком много данных а что к чему искать надо
0
Эксперт MS Access
 Аватар для Eugene-LS
13270 / 5947 / 1529
Регистрация: 05.10.2016
Сообщений: 16,651
20.02.2017, 01:18
Цитата Сообщение от Capricorn Посмотреть сообщение
Спасибо. Все получилось.
Ура-а-а-а-а-а!
Искренне рад.

Расцветка - это уже другая тема.
Справились с прошлым, - и это уже не задачка.
0
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60
20.02.2017, 01:21  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Справились с прошлым, - и это уже не задачка.
Я правда через кнопку назначил все. Чтобы другим понятнее было. И прошлое немного изменил.

PureBasic
1
2
3
4
5
6
7
8
9
10
11
If (Me!ФильтрПодразделение <> "") Then
            s = " And Подразделение = '" & Me!ФильтрПодразделение & "'"
    End If
        
    If (Me!ФильтрПрисоединение <> "") Then
            s = " And Присоединение = '" & Me!ФильтрПрисоединение & "'" & " And Подразделение = '" & Me!ФильтрПодразделение & "'"
    End If
        
    If (Me!ФильтрОборудование <> "") Then
            s = " And Оборудование = '" & Me!ФильтрОборудование & "'" & " And Присоединение = '" & Me!ФильтрПрисоединение & "'" & " And Подразделение = '" & Me!ФильтрПодразделение & "'"
    End If
Сейчас в цветах копаюсь.
0
Эксперт MS Access
 Аватар для Eugene-LS
13270 / 5947 / 1529
Регистрация: 05.10.2016
Сообщений: 16,651
20.02.2017, 03:29
Цитата Сообщение от shanemac51 Посмотреть сообщение
что то я такой записи не доверяю
Галь - ну я так "начиркал" - тоже вариант.
Когда мы берём значения из полей формы - тут много всяких "НО" и "ЕСЛИ", но тут они второстепенны.

Тема не про то ...
0
0 / 0 / 0
Регистрация: 15.02.2017
Сообщений: 60
20.02.2017, 23:03  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Справились с прошлым
Что то опять пошло не так. Вбил часть данных Фильтрует или по датам или по названиям. А вместе никак. Ни ошибок ничего не выдает. Просто если даты выбраны то только по датам фильтрует. Я записал так.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
    If IsDate(Me!txtDateFrom) And IsDate(Me!txtDateTo) Then
        datFrom = Format$(Me!txtDateFrom, "\#mm\/dd\/yy\#")
        datTo = Format$(Me!txtDateTo, "\#mm\/dd\/yy\#")
        
        sTemp = " And ([Дата Н] Between " & datFrom & " and " & datTo & ") OR ([Дата К1] Between " & datFrom & " and " & datTo & ") OR ([Дата К] Between " & datFrom & " and " & datTo & ") OR ([Дата след К] Between " & datFrom & " and " & datTo & ") OR ([Дата след В] Between " & datFrom & " and " & datTo & ") OR ([Дата В] Between " & datFrom & " and " & datTo & ")"
        
        sT = s & sTemp
        
        s = sT
        
        Debug.Print s
        
    End If
Добавлено через 1 час 37 минут
Попробовал еще и такой вариант. Результат тот же.

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
Private Sub DoSubFormFilter()
Dim s$
Dim datFrom$, datTo$
Dim sT$
Dim sTemp$
       
    If (Me!ФильтрПодразделение <> "") Then
            s = " And Подразделение = '" & Me!ФильтрПодразделение & "'"
    End If
    
    If (Me!ФильтрПодразделение <> "") And IsDate(Me!txtDateFrom) And IsDate(Me!txtDateTo) Then
        datFrom = Format$(Me!txtDateFrom, "\#mm\/dd\/yy\#")
        datTo = Format$(Me!txtDateTo, "\#mm\/dd\/yy\#")
            
        s = " And Подразделение = '" & Me!ФильтрПодразделение & "'" & " And ([Дата Н] Between " & datFrom & " and " & datTo & ") OR ([Дата К1] Between " & datFrom & " and " & datTo & ") OR ([Дата К] Between " & datFrom & " and " & datTo & ") OR ([Дата след К] Between " & datFrom & " and " & datTo & ") OR ([Дата след В] Between " & datFrom & " and " & datTo & ") OR ([Дата В] Between " & datFrom & " and " & datTo & ")"
    End If
        
        
    If (Me!ФильтрПрисоединение <> "") Then
            s = " And Присоединение = '" & Me!ФильтрПрисоединение & "'" & " And Подразделение = '" & Me!ФильтрПодразделение & "'"
    End If
    
     If (Me!ФильтрПрисоединение <> "") And IsDate(Me!txtDateFrom) And IsDate(Me!txtDateTo) Then
        datFrom = Format$(Me!txtDateFrom, "\#mm\/dd\/yy\#")
        datTo = Format$(Me!txtDateTo, "\#mm\/dd\/yy\#")
            
        s = " And Присоединение = '" & Me!ФильтрПрисоединение & "'" & " And Подразделение = '" & Me!ФильтрПодразделение & "'" & " And ([Дата Н] Between " & datFrom & " and " & datTo & ") OR ([Дата К1] Between " & datFrom & " and " & datTo & ") OR ([Дата К] Between " & datFrom & " and " & datTo & ") OR ([Дата след К] Between " & datFrom & " and " & datTo & ") OR ([Дата след В] Between " & datFrom & " and " & datTo & ") OR ([Дата В] Between " & datFrom & " and " & datTo & ")"
    End If
        
    If (Me!ФильтрОборудование <> "") Then
            s = " And Оборудование = '" & Me!ФильтрОборудование & "'" & " And Присоединение = '" & Me!ФильтрПрисоединение & "'" & " And Подразделение = '" & Me!ФильтрПодразделение & "'"
    End If
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.02.2017, 23:03

Добавление модуля в asterisk
Добрый день. Сервер с centos 6 на нем развернут asterisk 1.8 + freepbx 2.11. Возникла необходимость мониторить астер с помощью snmp. Как...

Добавление позиции модуля
Здравствуйте! Тема тривиальная, но всё же прошу уделить внимания. 1. В файле templateDetails.xml прописано...

Добавление модуля apache
Добрый день, добавила модуль svm чарез pecl, скопировала модуль к модулям апача, добавили ini-файл в директорию. В phpinfo показывается...

Добавление модуля в ASF проект.
Здравствуйте,мне нужно добавить модуль XMEGA Quadrature Decoder dryvers в готовый проект. В описании работы с ASF сказано: После...

Добавление модуля UML в NetBeans 6.5
Не видит этот модуль. Я скопировал папку uml6 в папку с программой. Далее перезапускаю netbeans, создаю новый проект, но в Categories нет...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru