|
|
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Progato vig: ты немного путаешь, cost=cost/mes,(эта формула отображает распределение средств на каждый месяц на задачу в течении всего проекта). или я не понял? Он имел ввиду, что функция datediff может и 0 вернуть - тогда получишь деление на 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 17:03:45 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Поясню проекты в стоительстве (я там работаю) длятся не меньше 6 месяцев -это аксиома!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 17:08:33 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
авторпроекты в стоительстве (я там работаю) Вот как раз в строительстве и поаккуратнее, пожалуйста...А то расчитывают, на ноль делят, а потом у них (у нас) крыши едут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 17:19:29 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#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 Set cnn1 = Nothing Set rstEmployees = Nothing n1: Call isprav End Sub Private Sub isprav() Dim rcd As DAO.Recordset Dim db As DAO.Database Set db = CurrentDb Set rcd = db.OpenRecordset("balance", dbOpenDynaset, dbSeeChanges) Do If rcd.EOF Then GoTo exit1 rcd.Edit rcd!price_balance = rcd!price_balance / mes rcd.Update rcd.MoveNext Loop exit1: End Sub Private Function mes() a = DMax("time_balance", "balance") b = DMin("time_balance", "balance") mes = DateDiff("m", b, a) End Function Так вот, всё работает быстро, а хотелось бы ещё быстрее, В конечном итоге вопрос заключался в следующем: А можно всё сделать также(в конце получить такой же результат), но без проги ISPRAV. Настоящие программеры разберутся,что имелось ввиду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 17:26:57 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Настоящие программеры не используют GOTO ,явно обьявляют все переменные ,ну и многое другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 17:37:09 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Если Goto ненужен, тогда зачем его придумали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 17:39:39 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. Я такого не советовал!!! Я сказал одним Update, в ты по рекордсету начал шарахаться (да еще на каждом шаге функцию mes вызываешь, а она между прочим в базу "смотрит" - причем активно) Таблица же локальная :) Пиши так: Код: plaintext 1. ? + If rcd.EOF Then GoTo exit1 - ИМХО - плохой тон использовать гото, когда можно без него Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 17:40:43 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
ProgaЕсли Goto ненужен, тогда зачем его придумали. Когда его придумали, нас еще не было А сейчас Goto только для отлова ошибок используют (On Error Goto ...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 17:41:47 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Круто!!! А что если использовать Docmd.RunSql "UPDATE balance SET price_balance = price_balance / " & mes()" это тоже самое или я ошибаюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 17:51:15 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
к тому же помимо ошибок, Goto всё таки иногда тоже полезен, когда надо проскочить часть текста программы, причём нельзя использовать конструкцию If...Else ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 17:54:43 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
ProgaКруто!!! А что если использовать Docmd.RunSql "UPDATE balance SET price_balance = price_balance / " & mes()" это тоже самое или я ошибаюсь? Кавычку в конце убери + не знаю - не пользовался таким ни когда - вроде то же самое (ИМХО) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 17:56:40 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Progaк тому же помимо ошибок, Goto всё таки иногда тоже полезен, когда надо проскочить часть текста программы, причём нельзя использовать конструкцию If...Else Это как? ЗЫ: Я например могу утверждать, что любую алгоритмическую конструкцию можно реализовать с помощью оператора While , а вот чтобы нельзя было использовать if ... then ... else - это нонсенс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 17:59:06 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
Не буду спорить, а за подсказку спасибо, как говорится "Век живи, век учись", кстати в Лестнице выложил прикольные анекдоты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 18:01:49 |
|
||
|
Увеличение скорости работы
|
|||
|---|---|---|---|
|
#18+
ProgaНе буду спорить, а за подсказку спасибо, как говорится "Век живи, век учись", кстати в Лестнице выложил прикольные анекдоты. Дык - Лестницу я тоже читаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 18:05:28 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32576113&tid=1673603]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
461ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 852ms |

| 0 / 0 |
