powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA удаление записей
21 сообщений из 21, страница 1 из 1
VBA удаление записей
    #38521259
MrSavDre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Итак, предположим есть таблица с товарами, нужно сделать возможным удалить сведения о товарах, проданных в течение заданного сезона (например, зимой).
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521271
Фотография i45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrSavDreИтак, предположим есть таблица с товарами, нужно сделать возможным удалить сведения о товарах, проданных в течение заданного сезона (например, зимой).

Это тест на пригодность, наём на работу или приказ?
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521333
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
DELETE FROM ТаблицаСТоварами WHERE СезонПродажи="Зима"
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521336
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
i45Это тест на пригодность, наём на работу или приказ?
мне особенно понравилось "Итак". Продолжаем давно начатаый разговор
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521395
Фотография i45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне тоже!!

:)
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521402
MrSavDre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача:
1. Создать таблицу, которая содержит сведения о продаже товаров.
Структура таблицы:
- наименование товара;
- шифр товара;
- оптовая цена;
- розничная цена;
- дата продажи;
- количество проданного товара.
2. Предусмотреть возможность добавления в таблицу произвольного количества строк.
3. По заданному шифру товара выдавать информацию о нем. Определить:
• суммарная прибыль от продажи всех товаров;
• наименование товаров, которые продаются по самой высокой и самой низкой цене.
4. Создать на 2 листе книги таблицу, которая содержит сведения о продаже товаров в интервале между двумя заданными датами. Таблица должна содержать наименование товара и суммарную выручку.
5. Сортировать данные в таблице по заданному столбцу.
6. Увеличить розничную цену на Х% у товара с заданным наименованием (значение Х задано).
7. Удалить сведения о товарах, проданных в течение заданного сезона (например, зимой).

И то что уже сделано приложено, а нужно доделать 7-й пункт, прошу прощения за раннюю неточную формулировку
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521438
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок, так гораздо яснее.

Теперь вопрос, что вызывает затруднение? Удаление строки? Проверка вхождения даты в диапазон? Создание формы? Заполнение выпадающего списка? Цикл перебора записей?

Ждем конкретные вопросы.
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521454
MrSavDre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поиск подходящей строки и её удаление, вот что не ясно
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521460
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не морочиться всякими автофильтрами, просто делается цикл перебора строк, функцией Month и Year проверяется вхождение даты в нужные значения, в случае совпадения - rows(i).delete
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521467
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нюанс - не забывать, что при удалении строки предыдущая строка сдвигается вверх, надо сделать i=i-1, или гнать цикл от конца к началу
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521483
MrSavDre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я очень плохо разбираюсь в цикловых и разветвляющихся операторах VBA, не могли бы вы написать пример для объекта OptionButton1? А дальше сам разберусь
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521552
MrSavDre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотя уже разобрался, осталась только одна проблема, мой код приблизительно таков:

Код: vbnet
1.
2.
3.
4.
5.
6.
i = 2
If OptionButton1 = True Then
Do While Month(Cells(i, 5)) <= 2
Rows(i).Delete
Loop
End If


Модератор: Учимся использовать тэги оформления кода - FAQ

Это для зимы, как учесть декабрь если он 12-й и явно больше 2-х?
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521592
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
Do While Month(Cells(i, 5)) <= 2 OR Month(Cells(i, 5)) = 12
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521599
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только твой цикл закончится на первой же строке, где условие не соблюдается
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521632
MrSavDre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почти заработало, но удаляются они только по порядку, декабрь будет в конце и не будет удален, такая же проблема с весной и прочими после зимы, программа их не видит и не удаляет, из-за чего это могло бы быть?
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521637
MrSavDre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как сделать что бы он не заканчивался?
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521653
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну подумать немножко надо. У тебя же i=2 и не меняется. То есть ты можешь удалять только строку №2 и никакую другую.
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521662
MrSavDre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Со второй строчки, строго говоря. Не подскажете как сделать так что бы он все строчки проверял?
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521664
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я же подсказал уже. Надо менять i
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521668
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ладно, видимо толку не будет
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
i = 2
If OptionButton1 Then
  Do Until Cells(i, 5).Text = ""
    If Month(Cells(i, 5)) <= 2 Or Month(Cells(i, 5)) = 12 Then
      Rows(i).Delete
    Else
      i = i + 1
    End IF
  Loop
End If
...
Рейтинг: 0 / 0
VBA удаление записей
    #38521672
MrSavDre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ошиблись, был догадался сам и делал через цикл for to, однако пустые строки он считал за 12 и выдавал ошибку, а решение проблемы с ними вы только что описали, примного благодарен
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA удаление записей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]