Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как разложить по ячейкам??? / 20 сообщений из 20, страница 1 из 1
11.02.2004, 16:14
    #32405962
Q2
Q2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
Мастера! подбросьте идею. В упрощенном виде задача такая
есть таблица
X Y
3
5
7
4

Дается некое число 10 , которое нужно распределить в полях Y. как получить результат

X Y
3 3
5 5
7 2
4 0

т.е как бы заполнить ячейки Y по размеру X
У меня получаются уж очень дикие варианты. ПОМОГИТЕ!
С-пасибо
...
Рейтинг: 0 / 0
11.02.2004, 16:19
    #32405979
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
Типа, олимпиада по программированию? Пожалуй, перенесу-ка я этот топик... Только куда?
...
Рейтинг: 0 / 0
11.02.2004, 16:52
    #32406054
Q2
Q2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
Гусары! МОЛЧАТЬ!!!
...
Рейтинг: 0 / 0
11.02.2004, 16:55
    #32406061
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
авторМастера! подбросьте идею.
авторГусары! МОЛЧАТЬ!!!


И в какой среде это сделать-то надо? А может, ручками? Или запросом?
...
Рейтинг: 0 / 0
11.02.2004, 17:03
    #32406079
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
Знакомая постановка задачи...помню было такое в институте лет эдак 10 назад.

Ностальгические воспоминания.
Называется это "Транспортная задача" из раздела системного анализа и математического моделирования.
Решается методом весовых коэффицентов.


По теме:
Для таких задач существуют алгортимы решения - все они описываются в соответствующих учебниках.
У меня где-то валяется программка, которую как курсовой проект делал.

Модераторам
Это и вправду не относится к аксесу - но вот куда понятия не имею .
...
Рейтинг: 0 / 0
11.02.2004, 17:08
    #32406087
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
n= 10 
rs.movefirst
do until rs.eof
    rs.edit
    if rs!x<=n then
        rs!y=rs!x
    else
        rs!y=n
    endif
    n=n-rs!y
    rs.update
    if n= 0  then
        rs.close
        exit sub
    endif
    rs.movenext
loop
rs.close
msgbox n
...
Рейтинг: 0 / 0
11.02.2004, 17:09
    #32406090
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
Мой ответ написан на Аксессе. Это больше не оффтопик.
...
Рейтинг: 0 / 0
11.02.2004, 17:17
    #32406099
Q2
Q2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
Гусары Молчать! относилось к вопросу Только куда?

А реализовать это безобразие надо в .mdb.
...
Рейтинг: 0 / 0
11.02.2004, 17:21
    #32406104
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
А ответ-то мой подошел, али как?
...
Рейтинг: 0 / 0
11.02.2004, 17:35
    #32406127
Q2
Q2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
Владимир Саныч спасибо. Идея ясна и понятна.
Это у меня проблема. Еще не работал с recordset, а это, кажется туда (или оттуда).
Может есть ссылочка, где почитать для начинающих с recordset?
...
Рейтинг: 0 / 0
11.02.2004, 17:43
    #32406141
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
Перед моим кодом надо добавить:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
dim n as integer, rs as dao.recordset
set rs=currentdb.openrecordset( "select * from ... order by ..." )
if rs.bof then
    rs.close
    msgbox n
    exit sub
endif

Больше ничего не надо.
...
Рейтинг: 0 / 0
11.02.2004, 18:07
    #32406181
Q2
Q2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
Чегой-то не хватает (то ли у меня, то ли у моего компьютера)
ругается уже на rs as dao.recordset
пишет User-defined type not defined

Стоит Offise XP на W98
...
Рейтинг: 0 / 0
11.02.2004, 18:09
    #32406187
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
Из окна модуля в меню Tools -> References есть ли птичка против DAO?
...
Рейтинг: 0 / 0
11.02.2004, 18:10
    #32406188
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
подключи библиотеку дао
...
Рейтинг: 0 / 0
11.02.2004, 18:36
    #32406232
Q2
Q2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
Спасибо! Процесс пошел!
Надеюсь, что дойдет куда надо.
...
Рейтинг: 0 / 0
11.02.2004, 19:41
    #32406285
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
Подразумевается, что ячейки отсортированы по возрастанию (id от 1 до N)
Таблица XY(id,X,Y)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
UPDATE Calculate INNER JOIN XY ON Calculate.id = XY.id SET XY.Y = [Calculate]![rez]
WITH OWNERACCESS OPTION;
хранимый запрос Calculate:
SELECT XY.X, XY.Y, XY.id, sumF([id], "X" ) AS Narost, NachChislo()-[narost] AS delta, fchoose([x],[delta]) AS Rez
FROM XY
ORDER BY XY.id
WITH OWNERACCESS OPTION;
 функции:
Function sumF(ID As Long, strFieldName As String)
Dim Sum As DAO.Recordset
Dim strSumF As String
Dim rstFielad As String
rstField =  "Sum_"  & strFieldName
strSumF =  "SELECT Sum(XY."  & strFieldName &  ") AS ["  & rstField & _
 "] FROM XY WHERE (((XY.id) Between 1  And " & ID &  ")) WITH OWNERACCESS OPTION;" 
Set Sum = CurrentDb.OpenRecordset(strSumF, dbopendynaset)
sumF = Sum(rstField)
End Function
Function fChoose(arg As Double, d As Double) As Double
 If d >=  0  Then
   fChoose = arg
   Else
    If d + arg >=  0  Then
    fChoose = (d + arg)
     Else
      fChoose =  0 
    End If
 End If
End Function
Function NachChislo() As Double
  NachChislo =  10 
End Function
...
Рейтинг: 0 / 0
11.02.2004, 19:46
    #32406287
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
Да, у тебя длиннее. :^)
...
Рейтинг: 0 / 0
11.02.2004, 19:49
    #32406289
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
Владимир Саныч
Зато никто не заподозрит меня в offTopic, так как в Access SQL :-)
...
Рейтинг: 0 / 0
12.02.2004, 12:19
    #32406899
Varan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
Слабо короче Саныча написать?
...
Рейтинг: 0 / 0
12.02.2004, 14:10
    #32407163
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разложить по ячейкам???
2 Varan: да запросто!
Вот рецепты:

1. Все, что внутри IF'а, засунь в одну строчку
2. Убери rs.movefirst
3. Ну еще чуток напильником пригладить, бо писАлось явно на коленке
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как разложить по ячейкам??? / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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