xq
1 / 1 / 0
Регистрация: 14.09.2014
Сообщений: 372
1

Фильтр по году

07.06.2017, 15:19. Показов 1930. Ответов 28
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как сделать фильтр,чтобы он оставлял только тех, у кого дата следующего прохождения намечена на 2017?
То что у меня на скрине, не совсем корректно и правильно
Миниатюры
Фильтр по году  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2017, 15:19
Ответы с готовыми решениями:

Фильтр по месяцу и году
Хочу организовать фильтр по месяцу и году. Имеются 4 поля со списками: ГодС, ГодПо, МесяцС,...

Фильтр по месяцу и году в ADO
Добрый вечер. Просмотрела много тем и вопросов по своей проблеме, но фильтрация всё равно не...

Фильтр по году в ленточной форме
Добрый вечер! Access. В ленточной форме сделал поле для ввода,необходимо привязать к нему...

Составить таблицу и выяснить минимальную и максимальную плотность населения в 1970 году и в 1989 году
Ребята, помогите пожалуйста с Excel. Я сам не успеваю.Задание ниже

28
53 / 53 / 17
Регистрация: 12.02.2017
Сообщений: 261
07.06.2017, 16:15 2
Цитата Сообщение от xq Посмотреть сообщение
Как сделать фильтр,чтобы он оставлял только тех, у кого дата следующего прохождения намечена на 2017?
То что у меня на скрине, не совсем корректно и правильно
Можно с помощью проверки каждой строчки, только надо сперва уточнить дату в определеном формате.
VB.NET
1
2
3
4
5
6
7
8
9
Public Class Form1
    Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click
        For i As Integer = 0 To DataGridView1.Rows.Count - 1
            If DataGridView1.Item(1, i).Value = "2017" Then
                DataGridView1.Rows.RemoveAt(i)
            End If
        Next
    End Sub
End Class
0
xq
1 / 1 / 0
Регистрация: 14.09.2014
Сообщений: 372
07.06.2017, 16:31  [ТС] 3
Цитата Сообщение от Navthe Посмотреть сообщение
только надо сперва уточнить дату в определеном формате
вы про это?

VB.NET
1
2
3
4
5
6
    Dim dd As Object
        For i As Integer = 0 To KvallDataGridView.Rows.Count - 1
            If KvallDataGridView.Item(1, i).Value(dd.mm.yyyy) Then
                KvallDataGridView.Rows.RemoveAt(i)
            End If
        Next
0
53 / 53 / 17
Регистрация: 12.02.2017
Сообщений: 261
07.06.2017, 16:47 4
Цитата Сообщение от xq Посмотреть сообщение
If KvallDataGridView.Item(1, i).Value(dd.mm.yyyy) Then
Также как и в фильтрации с датами, здесь нужно указать Date.Parse, но это не обязательный параметр если только это не формат string.
0
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
07.06.2017, 17:01 5
If KvallDataGridView.Item(1, i).Value(dd.mm.yyyy) Then
всегда выдаст результат true, если сможет привести дату в заданный формат.
Нужно сравнить с чем-то, например
VB.NET
1
If KvallDataGridView.Item(1, i).Value(dd.mm.yyyy) > Today Then
или
VB.NET
1
If KvallDataGridView.Item(1, i).Value(yyyy) = "2017" Then
0
xq
1 / 1 / 0
Регистрация: 14.09.2014
Сообщений: 372
07.06.2017, 17:29  [ТС] 6
Цитата Сообщение от Bidgo Посмотреть сообщение
Нужно сравнить с чем-то, например

VB.NET
1
If KvallDataGridView.Item(1, i).Value(dd.mm.yyyy) > Today Then
или

VB.NET
1
If KvallDataGridView.Item(1, i).Value(yyyy) = "2017" Then
при первом варианте выдает:
Не задана переменная объекта или переменная блока With.

на второй вообще нет реакции
0
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
07.06.2017, 18:19 7
Протупил. Изначально неправильное использование Value(dd.mm.yyyy) привело к неправильному совету.
Можно еще так попробовать:
VB.NET
1
If CDate(KvallDataGridView.Item(1, i).Value) > Date.Today Then
VB.NET
1
If Mid(KvallDataGridView.Item(1, i).Value, 7, 4) = "2017" Then
0
xq
1 / 1 / 0
Регистрация: 14.09.2014
Сообщений: 372
07.06.2017, 18:42  [ТС] 8
Цитата Сообщение от Bidgo Посмотреть сообщение
Можно еще так попробовать:

В первом оно сначала ссылалось на неверный столбец,поставил нужный и ноль реакции

Во втором тот же результат
0
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
07.06.2017, 19:01 9
Результат должен быть после клика по Label1.
Если Вы ожидаете результат после других действий, стоит поставить это условие в другую процедуру.
0
xq
1 / 1 / 0
Регистрация: 14.09.2014
Сообщений: 372
07.06.2017, 19:07  [ТС] 10
Цитата Сообщение от Bidgo Посмотреть сообщение
Результат должен быть после клика по Label1.
Если Вы ожидаете результат после других действий, стоит поставить это условие в другую процедуру.
Поставил на label,до этого было на Button. Результаты все те же
0
66 / 63 / 23
Регистрация: 23.07.2014
Сообщений: 121
07.06.2017, 19:08 11
VB.NET
1
KvallDataGridView.Item(5, i).Value(yyyy) = "2017"
0
xq
1 / 1 / 0
Регистрация: 14.09.2014
Сообщений: 372
07.06.2017, 19:35  [ТС] 12
Цитата Сообщение от l34ddx Посмотреть сообщение
KvallDataGridView.Item(5, i).Value(yyyy) = "2017"
Для типа "Date" не найден член по умолчанию.
0
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
07.06.2017, 19:46 13
Ну да, конечно же колонку правильную надо указать.
Если таблица соответствует той, что в первом посте, то
VB.NET
1
2
3
4
5
        For i As Integer = DataGridView1.Rows.Count - 1 - If(DataGridView1.AllowUserToAddRows, 1, 0) To 0 Step -1
            If Mid(DataGridView1.Item(3, i).Value, 7, 4) <> "2017" Then
                DataGridView1.Rows.RemoveAt(i)
            End If
        Next
2
xq
1 / 1 / 0
Регистрация: 14.09.2014
Сообщений: 372
08.06.2017, 14:27  [ТС] 14
Цитата Сообщение от Bidgo Посмотреть сообщение
Ну да, конечно же колонку правильную надо указать.
Если таблица соответствует той, что в первом посте, то
Спасибо,таблицу фильтрует. А можно сделать,чтобы можно было указывать дату в textbox?
Ну и сброс фильтра
0
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
08.06.2017, 18:53 15
VB.NET
1
 If Mid(DataGridView1.Item(3, i).Value, 7, 4) <> Year(CDate(TextBox1.Text)) Then
Но если в textbox будет указана не дата или некорректная дата, будет ошибка, поэтому надо отлавливать.
Сброс фильтра = очистка и повторная загрузка DataGridView1.
0
xq
1 / 1 / 0
Регистрация: 14.09.2014
Сообщений: 372
08.06.2017, 21:23  [ТС] 16
Цитата Сообщение от Bidgo Посмотреть сообщение
Но если в textbox будет указана не дата или некорректная дата, будет ошибка, поэтому надо отлавливать.
Сброс фильтра = очистка и повторная загрузка DataGridView1.
В чем проблема?
Миниатюры
Фильтр по году  
0
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
08.06.2017, 22:28 17
Цитата Сообщение от xq Посмотреть сообщение
если в textbox будет указана не дата или некорректная дата, будет ошибка
Указан только год "2017", поэтому и ошибка.
Если указывать только год, то достаточно так:
VB.NET
1
If Mid(DataGridView1.Item(3, i).Value, 7, 4) <> TextBox1.Text Then
1
xq
1 / 1 / 0
Регистрация: 14.09.2014
Сообщений: 372
10.06.2017, 14:08  [ТС] 18
Цитата Сообщение от Bidgo Посмотреть сообщение
Если указывать только год, то достаточно так:
Работает,спасибо)
А какой будет код на сброс?
0
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
10.06.2017, 14:57 19
Для очистки:
VB.NET
1
DataGridView1.Rows.Clear()
А затем выполнить процедуру исходного заполнения таблицы, как при открытии формы.
0
xq
1 / 1 / 0
Регистрация: 14.09.2014
Сообщений: 372
10.06.2017, 16:34  [ТС] 20
Цитата Сообщение от Bidgo Посмотреть сообщение
DataGridView1.Rows.Clear()
Ошибка. "Невозможно очистить этот список".
0
10.06.2017, 16:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2017, 16:34
Помогаю со студенческими работами здесь

Программа, которая бы позволяла по заданному году и порядковому номеру дня в году определять день недели
Ребята, помогите доработать код=) день недели выводится не правильно, примерно после 50 года=(...

По введенному году определить число ноября, на которое будет приходиться День матери в этом году
Подскажите алгоритм по которому можно выполнить эту задачу.Пробовал много способов , но ничего не...

Необходимо написать программу, которая бы позволяла по году и порядковому номеру дня в году определять день недели
Необходимо написать программу, которая бы позволяла по году и порядковому номеру дня в году...

По заданному году и порядковому номеру дня в году определять день недели и месяц этого дня
Задачу не можем решить 3 людьми. ______________________________ Написать программу, которая бы...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru