Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
trogvar
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 12
1

Работа со строками, помогите

24.05.2010, 12:08. Просмотров 1464. Ответов 14
Метки нет (Все метки)

Есть база, предположим есть строки
число 1, число2,число3
число 4, число5,число6
т.е n строк и n-количество столбцов
так вот как сделать так чтобы число 4 = число2
и например число6=число5-число2
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2010, 12:08
Ответы с готовыми решениями:

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

работа со строками 1:N
привет всем) вот задачка для меня... что не пробовала, не получается....

работа со строками
Здравствуйте! Помогите новичку!!!!!!! Есть запрос "ВыборПечати""на базе двух...

access,sql - работа со строками
здравствуйте. возникла такая проблема. существует 2 таблицы, необходимо...

Помогите пожалуйста!работа со строками, файлами
Разработайте программу, функция main() которой содержит вызов предложенной...

14
Lenivec
24.05.2010, 12:44 2
Вопрос неясен...
trogvar
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 12
24.05.2010, 13:11  [ТС] 3
Проще говоря как работать с аccess как с двухмерным масивом.
Как вычислять, в запросе например, разницу между значениями РАЗНЫХ строк
0
BorisL
3 / 3 / 0
Регистрация: 19.03.2009
Сообщений: 743
24.05.2010, 15:12 4
Вопрос остался не ясным. Наудачу: Преобразуйте свой ЗАПРОС в двумерный МАССИВ (см.Help по 'GetRows') и работайте с ним.
0
Lenivec
24.05.2010, 15:57 5
SELECT [1], [2], [1]-[2] AS Разница
FROM tbl;
BorisL
3 / 3 / 0
Регистрация: 19.03.2009
Сообщений: 743
24.05.2010, 16:00 6
To Lenivec. То, что предлагаете Вы - это для ОДНОЙ СТРОКИ, а автору нужны РАЗНЫЕ. Хотя, кто его знает, что ему на самом деле нужно ???
0
Lenivec
24.05.2010, 16:53 7
Что значит разные?

Вот как только научится ставить правильно вопрос, так сразу и получит правильный ответ.
trogvar
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 12
25.05.2010, 11:03  [ТС] 8
Простите господа за тупость, попробую ещё раз
у меня есть таблица со следующими полями
первое значение
второе значение
разница
соответственно это столбцы
мне нужно при запросе вычислить следующим образом
(первое значение - второе значение) - (первое значение(предыдущей записи) - второе значение(предыдущей записи))

пример

первое значение второе значение
12 8
14 9

так надо что было (14-9)-(12-8) и это значение надо посчитать для всех строк
0
trogvar
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 12
25.05.2010, 11:04  [ТС] 9
Простите господа за тупость, попробую ещё раз
у меня есть таблица со следующими полями
первое значение
второе значение
разница
соответственно это столбцы
мне нужно при запросе вычислить следующим образом
(первое значение - второе значение) - (первое значение(предыдущей записи) - второе значение(предыдущей записи))

пример

первое значение второе значение
12 8
14 9

так надо что было (14-9)-(12-8) и это значение надо посчитать для всех строк
0
Lenivec
25.05.2010, 12:07 10
Такую ахинею можно только массивом.
А вообще если есть необходимось в таком, то ответ только один - неверно спроектирована база данных, ну или конкретная таблица.
trogvar
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 12
25.05.2010, 12:11  [ТС] 11
а можно подробнее? как работать с массивом в access
и почему интересно это ахинея?
есть некий апарат у которого каждый день новые значения с которыми надо работать, и при этом нужен расчёт с участием предыдущих позиций в конкретном запросе?
0
Lenivec
25.05.2010, 13:20 12
Возникает сразу законный вопрос:
Кто гарантирует необходимую последовательность срок данных?
Реляционные базы данных такой гарантии не дают, тоесть должно быть как минимум дополнительное поле по которому можно отсортировать в необходимом порядке.
Теперь что касается массивов.
При условии использования DAO это будет выглядеть примерно так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
    Set objRst = CurrentDb.OpenRecordset()
    If objRst.RecordCount <> 0 Then
        objRst.MoveLast
        objRst.MoveFirst
        vData = objRst.GetRows(objRst.RecordCount)
        For i = 0 To UBound(vData, 2)
            If i <> 0 Then
                result = (vData(0, i) - vData(1, i)) - _
                    (vData(0, i - 1) - vData(1, i - 1))
            End If
        Next i
    End If
trogvar
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 12
25.05.2010, 20:31  [ТС] 13
Ой а поскажите плиз как это всё подключить то? Ну там может ссылочку в инете по этому материалу ?
0
BorisL
3 / 3 / 0
Регистрация: 19.03.2009
Сообщений: 743
26.05.2010, 09:48 14
Трудно определить уровень Вашей квалификации. Если посоветовать: 'повесьте этот код на событие Нажатие кнопки, указав Вашу таблицу(запрос) в строке с OpenRecordSet, это Вам поможет ?' Если нет, см. что-то типа http://www.firststeps.ru/msoffice/access/access1.html и др.литературу
0
resu+
1 / 1 / 0
Регистрация: 24.04.2010
Сообщений: 77
26.05.2010, 18:38 15
Все это решается по моему проще и намного. Эту задачу можно и нужно поручить СУБД (у него голова большая – пусть он и думает).
Я предлагаю след.:
Изменить таблицу (о чем и намекал «Lenivec») след. Образом:

tablename „t1“
-------------
Id PK (auto)
X1 Ваше число 1
X2 Ваше число 2

А потом просто запрос:
SQL
1
2
3
SELECT tt2.x1, tt2.x2, tt1.x1, tt1.x2, ((tt2.x1-tt2.x2)-(tt1.x1-tt1.x2)) AS rasniza
FROM t1 AS tt1, (SELECT *  FROM t1) AS tt2
WHERE tt1.id=tt2.id-1;
Или
SQL
1
2
SELECT tt2.x1, tt2.x2, tt1.x1, tt1.x2, ((tt2.x1-tt2.x2)-(tt1.x1-tt1.x2)) AS rasniza
FROM t1 AS tt1 LEFT JOIN  (SELECT *  FROM t1) AS tt2 ON tt1.id=tt2.id-1;
Проверьте пожалуйста, работает на ура!
0
26.05.2010, 18:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2010, 18:38

"работа со строками"помогите пожалуйста
в строке заменить все двоеточие(:) точкой с запятой(;).подсчатать колличество...

Работа со строками, заполнить компоненты строками из файла
Привет! Нужна помощь в заполнении формы В общем, есть форма отправки письма. У...

Работа со строками(операции над строками)
Пусть дана последовательность, содержащая от 2 до 50 слов, в каждом из которых...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru