|
|
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Проблема: есть табла, в которой необходимо заполнить 3 столбца, 1 столб-цена 2 столб-название 3 столб- время выполнения Проблема состоит в том, что 1 столб заполняется из другой таблицы, причём данные делятся на datediff("m",a,b), где а-самая ранняя дата начала работы 3столба b- самая поздняя дата.... 3столба Пришёл к выводу, что приходится пробега дважды либо по заполняемой табле, либо по внешней (откуда берутся данные). Вопрос, а можно ли сделать так, чтобы и внешн. и заполняемая табла пробегались по разу. Нужна логика, код сам напишу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 15:02:11 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
как-то мутно :( МОжет попроще объяснишь А то даже не понятно, сколько таблиц, 2 или 1 + 2 раза пробежать - это тоже линейная зависимость (ни чего страшного - ИМХО), а вот если для каждой записи полный проход, то это уже квадратичная, вот тогда надо думать (и то если скорось не устраивает) Короче, давай: - структуры обеих таблов (можно урезанные, или все-та ки одна таблица будет использоваться) - тестовые данные - что хочешь получить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 15:09:08 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
авторгде а-самая ранняя дата начала работы 3столба b- самая поздняя дата.... 3столба а теперь то же самое ,но по русски :) Трудно что ли привести тестовые даные и желаемый результат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 15:12:07 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Апаздал!((c)Л.П.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 15:13:54 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Вообще так, есть внешняя табла(всё тот же .mpp, меня им трахают уже 2-ю неделю, чем-то Project начальству приглянулся, будь он не ладен), так вот, надо из этой таблы в Аксе сформировать свою, на основе которой будет делаться отчёт о бюджете проекта. В таблу Акса необходимо поместить 1)название задачи 2)стоимость задачи, поделённую на срок действия проекта. 3)время начала задач. Нужна логика, своя есть но мне кажется как-то долго, может, что порезче предложешь, если надо выкину код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 15:20:39 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Блин! А тестовые данные где? Не надо уповать на наши скромные телепатические способности :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 15:25:24 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Это я про то, что один фиг не понятно Ясности, твой пост так и не дал :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 15:25:57 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Хорошо выкидываю код (с комментами, что надо сделать): Private Sub Кнопка0_Click() Dim rcd As DAO.Recordset Dim db As DAO.Database Dim cnn1 As ADODB.Connection Dim rstEmployees As ADODB.Recordset Dim strCnn As String Dim varDate As Variant Dim sSQL As String Dim p As String Dim result As Integer Dim fileName As String DoCmd.RunSQL "delete * from balance" ' Open connection. Dim a As Integer With Application.FileDialog(msoFileDialogFilePicker) .Title = "Выбор проекта" .Filters.Add "Все файлы", "*.*" .Filters.Add "Проекты", "*.mpp" .FilterIndex = 1 .AllowMultiSelect = False .InitialFileName = CurrentProject.Path result = .Show If result <> 0 Then p = Trim(.SelectedItems.Item(1)) End If End With If p = "" Then GoTo n1 Set db = CurrentDb strCnn = "Provider=Microsoft.Project.OLEDB.10.0;Project Name=" & p sSQL = "SELECT Taskcost,TaskName,Taskfinish FROM Tasks" Set cnn1 = New ADODB.Connection cnn1.Open strCnn ' Open employee table. Set rstEmployees = New ADODB.Recordset rstEmployees.CursorType = adOpenKeyset rstEmployees.LockType = adLockOptimistic rstEmployees.Open sSQL, cnn1, , , adCmdText Set rcd = db.OpenRecordset("balance", dbOpenDynaset, dbSeeChanges) Do While Not rstEmployees.EOF msg = rstEmployees.Fields.Item("taskcost") msg1 = rstEmployees.Fields.Item("taskname") msg2 = rstEmployees.Fields.Item("taskfinish") rcd.AddNew rcd!name_balance = msg1 rcd!price_balance = msg rcd!time_balance = msg2 rcd.Update rstEmployees.MoveNext Loop cnn1.Close rcd.Close rcd.Close Set cnn1 = Nothing Set rstEmployees = Nothing n1: End Sub Программа необходима, чтобы высчитать сроки Private Function mes() Dim rcd As DAO.Recordset Dim db As DAO.Database Set db = CurrentDb Dim h Dim k As Date Dim l As Date Set rcd = db.OpenRecordset("balance", dbOpenDynaset, dbSeeChanges) Do If rcd.EOF Then GoTo exit1 rcd.Move 3 k = rcd!time_balance rcd.MoveLast l = rcd!time_balance h = DateDiff("m", k, l) rcd.MoveNext Loop exit1: mes = h End Function После получения mes прогоняется программа заменяющая price_balance на price_balance/mes но хотелось бы сделать, так чтобы с помощью двух первых была решена задача, получения в поле price_balance сразу нужного значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 15:35:36 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Смотрю код понравился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 15:42:24 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Просили авторКороче, давай: - структуры обеих таблов (можно урезанные, или все-та ки одна таблица будет использоваться) - тестовые данные - что хочешь получить И где тут про код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 15:49:35 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
авторООООООООООООО как всё запущено!!! В зеркало посмотри Для особо одареных повторяю ещё раз paparomeКороче, давай: - структуры обеих таблов (можно урезанные, или все-та ки одна таблица будет использоваться) - тестовые данные - что хочешь получить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 15:57:52 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Я одного не понял :( У вас сейчас все правильно работает. Но не устраивает скорость или то что приходится много раз функцию mes вызывать? Если со скростью все ОК (в разымных рамках, так сказать), то какой смысл переделывать работающий код? Чтобы ошибок понаплодить и тра%ся с их отловом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 16:01:47 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Хорошо, вопрос сформулирую подругому, можно ли в процессе заполнения таблицы в первый столбец (стоимость) заносить данные, пусть это будет 100 руб, делённое на количество месяцев равное datediff("m",a,b) где а - самая ранняя дата в столбце 3 (даты) b - самая поздняя дата в столбце 3 (даты), причём даты заполняются вместе со стоимостью. Все данные берутся из внешней таблицы. Поясню ещё раз код не нужен, нужна логика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 16:10:37 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
1) Proga: выложи -структуры обеих таблов (можно урезанные, или все-та ки одна таблица будет использоваться) - тестовые данные - что хочешь получить 2) Лишнее я потер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 16:13:12 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
На всякий случай повторю еще раз. ВНИМАНИЕ! Proga, выложи: - структуры обеих таблов (можно урезанные, или все-та ки одна таблица будет использоваться) - тестовые данные - что хочешь получить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 16:14:01 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
ProgaХорошо, вопрос сформулирую подругому, можно ли в процессе заполнения таблицы в первый столбец (стоимость) заносить данные, пусть это будет 100 руб, делённое на количество месяцев равное datediff("m",a,b) где а - самая ранняя дата в столбце 3 (даты) b - самая поздняя дата в столбце 3 (даты), причём даты заполняются вместе со стоимостью. Все данные берутся из внешней таблицы. Поясню ещё раз код не нужен, нужна логика. Значит будет одна стоимость для всех записей одного проекта? После заполнения своей таблицы, делаешь Dmax и Dmin по датам (находишь что надо) Потом одним Update по всей табле Так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 16:16:34 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Во человек, с полуслова понимает P.S. I love you!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 16:20:55 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
ProgaВо человек, с полуслова понимает P.S. I love you!!! Только ты эти пол слова на станицу растянул :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 16:22:31 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
АХТУНГ!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 16:24:19 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
И ИМХО: Если я оказался прав, то стоимость в каждой строке - это дублирование информации - следовательно какие-то проблемы с нормализацией :( Может корректнее будет хранить сойства проекта отдельно, "шаги" его отдельно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 16:24:24 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Я не умею писать ТЗ, я всего лишь маленький глупенький программер, обчитавшийся книжек по VB 5,6, Project 2000,2002,2003, с сертификатом Optima-Workflow, знанием Delfi, C++ for САПР(AutoCad),с сертификатом Optima-Workflow, опытом работы с А2000 и кучей мусора в голове, который иногда приходится применять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 16:27:36 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
сертификат Optima-Workflow видать очень важная штука:) Сорри за офтоп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 16:44:59 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Так мысли вслух Если начало проекта -01/06/2004 , а окончание- 30/06/2004 что даст mes = cost/datediff("m",a,b) ???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 16:47:13 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
to vig: ты немного путаешь, cost=cost/mes,(эта формула отображает распределение средств на каждый месяц на задачу в течении всего проекта). или я не понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 16:55:14 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32575789&tid=1673603]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
173ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 199ms |
| total: | 468ms |

| 0 / 0 |
