Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] vb.net правка access файла

Ответить
Настройки темы
.NET - [решено] vb.net правка access файла

Аватара для iccup.platoon@vk

Пользователь


Сообщения: 82
Благодарности: 9

Профиль | Сайт | Отправить PM | Цитировать


Здравствуйте, господа.
Есть файл Card.mdb, содержащий в себе таблицу NumberDisc. В этой таблице, помимо прочих, есть столбцы с названиями Discount и Amount. В ячейках этих столбцов записаны только числа (то есть ни букв, ни спец. знаков там нет). Такова задача:
Построчно анализируя информацию в ячейках этих двух, исходя из числа, находящегося в ячейке Amount, менять значение в ячейке Discount по принципу
Если Amount больше или равно 1 - Установить Discount = 5, но
Если Amount больше или равно 10 - Установить Discount = 10, но
Если Amount больше или равно 15 - Установить Discount = 15, и
Если Amount больше 20 - Установить Discount = 20
Такие вот дела...

Отправлено: 06:12, 27-04-2015

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


iccup.platoon@vk, для Microsoft SQL можно использовать в запросе на обновление данных разновидность функции CASE — т.н. search CASE function (CASE), для Microsoft Access — функцию Switch, наподобие:
Код: Выделить весь код
UPDATE [NumberDisc] SET [NumberDisc].Discount = Switch([Amount]<=1,5,[Amount]<=10,10,[Amount]<=15,15,[Amount]>15,20);
но у меня нет уверенности, что сие сработает в Вашем варианте.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:36, 01-05-2015 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Изображения
Тип файла: png access.PNG
(12.4 Kb, 4 просмотров)

iccup.platoon@vk, у меня получилось так:
Мы говорим CREATE - Query Design
Выбираем нужную таблицу и поле NumberDisc, Discount
Встаем на поле. В ленте DESIGN - выбираем Update
Встаем на поле Update To под Discount
Финт ушами - Ctrl + F2 - открывается Expression Builder
В него пишем
Код: Выделить весь код
IIf([NumberDisc]![Amount]>=1 And [NumberDisc]![Amount]<10;5;
  IIf([NumberDisc]![Amount]>=10 And [NumberDisc]![Amount]<15;10;
    IIf([NumberDisc]![Amount]>=15 And [NumberDisc]![Amount]<20;15;
      IIf([NumberDisc]![Amount]>=20;20;-1
      )
    )
  )
)
OK, Run, Подтвердить.
Я на всякий случай делал копию таблицы, но она не пригодилась. Важных данных мы не потеряем.

Теперь как получить нормальную строчку.
Наступили слева в списке на Query.
View (на картинке) - SQL View
И там мы уже видим более привычную строчку SQL запросов.
Вот там можно попробовать способ, предложенный Iska, т.к. CASE он более правильный что ли, при множественном выборе.
Expression Builder мне его повторить не позволил.

Код: Выделить весь код
UPDATE NumberDisc 
SET NumberDisc.[Discount] = 
IIf([NumberDisc]![Amount]>=1 And [NumberDisc]![Amount]<10,5,
    IIf([NumberDisc]![Amount]>=10 And [NumberDisc]![Amount]<15,10,
        IIf([NumberDisc]![Amount]>=15 And [NumberDisc]![Amount]<20,15,
            IIf([NumberDisc]![Amount]>=20,20,-1)
        )
    )
);
Форматирование мое, для наглядности.
Общая конструкция
«Expr» IIf(«expression»; «truepart»; «falsepart»)

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 18:45, 02-05-2015 | #12


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


lxa85, в самом Access можно использовать «Switch()», о чём я писал выше.

А вот что из предложенного будет работать извне, из-под Visual Studio в том же VB.Net, например, надо смотреть, пробовать.

Отправлено: 19:22, 02-05-2015 | #13


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Iska, проглядел

Отправлено: 20:35, 02-05-2015 | #14


Аватара для iccup.platoon@vk

Пользователь


Сообщения: 82
Благодарности: 9

Профиль | Сайт | Отправить PM | Цитировать


Иска - бог. Снова.

-------
Да, я дотошный. Да, я всегда уточняю цели. Зато выполняю задание на совесть.


Отправлено: 03:23, 04-05-2015 | #15


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


iccup.platoon@vk, так что именно у Вас заработало из-под VB.Net?

Цитата iccup.platoon@vk:
Иска - бог.»
Это совсем не так .

Отправлено: 15:46, 04-05-2015 | #16



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] vb.net правка access файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
.NET - [решено] Проблема при сохранения файла в vb.net vitalik8388 Программирование и базы данных 7 02-05-2012 22:01
.NET - [решено] vb.net чтение конкретной строки файла RUVATA Программирование и базы данных 7 19-08-2010 10:21
Прочие БД - Запросы в VB (MS Access) mxmstrnt Программирование и базы данных 0 14-04-2008 16:22
.NET - *Теория*(VB.NET || C#.net ) Нужен алгоритм для мини - игры ssdm Программирование и базы данных 11 17-05-2007 02:12
Сравнение VB.NET и Visual C++.NET Commander Программирование и базы данных 5 09-05-2003 19:05




 
Переход