vb.net правка access файла
Здравствуйте, господа.
Есть файл Card.mdb, содержащий в себе таблицу NumberDisc. В этой таблице, помимо прочих, есть столбцы с названиями Discount и Amount. В ячейках этих столбцов записаны только числа (то есть ни букв, ни спец. знаков там нет). Такова задача: Построчно анализируя информацию в ячейках этих двух, исходя из числа, находящегося в ячейке Amount, менять значение в ячейке Discount по принципу Если Amount больше или равно 1 - Установить Discount = 5, но Если Amount больше или равно 10 - Установить Discount = 10, но Если Amount больше или равно 15 - Установить Discount = 15, и Если Amount больше 20 - Установить Discount = 20 Такие вот дела... |
В чём вопрос-то?
|
В построении цикла с проверкой числа в ячейке амоунт и, на основании информации из нее, изменением числа в ячейке дискоунт. В контроле ацесса я, мягко говоря, еще не силен. В текстовых файлах это WriteLine, а здесь то что? Мне достаточно один раз увидеть - и я запомню =)
|
iccup.platoon@vk, здесь работа с множествами. Сложение пересечение и т.д.
Выбор записей из таблиц по условию - SELECT Запись - INPUT и как то так. Если не затруднительно - приложите образец. С нуля пример дико лень писать. |
Вложений: 1
Пример таблицы? Прикреплю. Пример кода? Да я даже с чего начать не знаю =( Вот код того, что постиг:
Большой код
Код:
Imports System.Data.OleDb Тут видно как я костылил с некоторыми вещами... Повесить нужно это всё на Button4. |
Цитата:
|
Ой =) dead12345
|
Up =(
|
iccup.platoon@vk, извини, не добрался. Завтра на большом компьютере постараюсь посмотреть
|
UUuup =((((
|
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); |
Вложений: 1
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; Я на всякий случай делал копию таблицы, но она не пригодилась. Важных данных мы не потеряем. Теперь как получить нормальную строчку. Наступили слева в списке на Query. View (на картинке) - SQL View И там мы уже видим более привычную строчку SQL запросов. Вот там можно попробовать способ, предложенный Iska, т.к. CASE он более правильный что ли, при множественном выборе. Expression Builder мне его повторить не позволил. Код:
UPDATE NumberDisc Общая конструкция «Expr» IIf(«expression»; «truepart»; «falsepart») |
lxa85, в самом Access можно использовать «Switch()», о чём я писал выше.
А вот что из предложенного будет работать извне, из-под Visual Studio в том же VB.Net, например, надо смотреть, пробовать. |
Iska, проглядел
|
Иска - бог. Снова.
|
iccup.platoon@vk, так что именно у Вас заработало из-под VB.Net?
Цитата:
|
Время: 18:20. |
Время: 18:20.
© OSzone.net 2001-