|
|
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Суть проблемы такая: есть переменная, которой надо присвоить значение поля, например, в момент открытия формы. Какого именно поля - это зависит от ситуации. Стринг с именем поля я имею. Какой должен быть синтаксис в этом случае? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 17:15 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 17:17 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Я конечно дико извиняюсь, может просто уже к концу дня ничего не соображаю? Мне нужно обратиться к объекту формы, но в коллекции элементов Fields у него нет. Но мне надо написать что-то типа: Me.имя файла(стринг). Ругается постоянно на неправильный метод. :(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 17:46 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Тогда вот:\r \r /topic/43028 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 17:50 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Me.Fields(strControlName) где Me - это ссылка на форму, strControlName - строковая переменная где лежит имя контрола. З.Ы. Факописатели! Может мы плохо фак написали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 17:52 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Наверно, Me.Recordset.Fields? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 17:57 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Me.Fields(strControlName) не сыпь мне соль на рану... так я сразу написала, а он..., а я.... Ну не нравиться ему метод, выделяет Fields и усё... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 17:58 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Ну не нравиться ему метод, выделяет Fields и усё... Дык оно (Me.Fields(strControlName)) должно быть в модуле формы чтобы так писать. В обработчике какого-нибудь события типа нажатия на кнопку например. Если надо снаружи обращаться - Forms![ИмяФормы].Fields(strControlName) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 18:02 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Ну, дык, у меня где ж? В обработчике открытия формы. Я сразу написала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 18:03 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Люди, посмотрите, чего я красненьким написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 18:09 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Me.Controls(cName) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 18:11 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Смотрела я на то, что красненьким написано!!!! Но постеснялась сразу сказать... ;) В этом случае ругается, что нет такого итема в коллекции... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 18:11 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Me.Controls(cName) Уже не ругается, но считает кол-во полей, а не их значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 18:14 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Me.Controls(cName).Value :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 18:32 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Хммм... Мдя... Вырвал себе кучу волос... в том числе и на голове... Мдя... Хммм... Перепутать Fields и Controls.... Ну да и хрен бы с ним... Меня ник обязывает иногда херню писать... Вставил кучу волос обратно... Хммм... Мдя... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 20:12 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
> Вставил кучу волос обратно... Все-таки обитание на этом форуме вырабатывает телепатические способности. После твоей 3-й строки я хотел ответить: "Те, которые на голове, вставляй обратно". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 20:16 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Те, которые на голове, вставляй обратно Главное чтоб я еще раз не перепутал... как с Fields и Controls... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 20:21 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
А в форуме все равно не видно. Вон у меня на фото борода, ну так разве можно отличить, из головы там волосы или не из головы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 20:28 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Саныч: Те, которые на голове, вставляй обратно Долго думал, какие волосы - Fields, а какие - Controls. Наверно так: если дыбом вставать умеют - эти Controls, остальные - Fields ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2003, 22:09 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Да-а-а, весело с вами, ребята. Если бы не ваше доброжелательное и легкое отношение, я бы еще вчера повесилась из-за этой фиговинки :)) А так еще поживу может... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 10:29 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Тебе весело. А на меня народ с самого утра как-то странно смотрит. Кажется все-таки перепутал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 10:36 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Говорите, что это новомодная химическая завивка ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 10:43 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Говорите, что это новомодная химическая завивка ;) После чего мне подарят косметичку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 10:47 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Этот топик надо будет приводить всем как аргумент в поддержку разговоров не по теме. (Если кто не знает: мы с Лохом - модераторы...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 11:44 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
В поддержку разговоров по теме: Теперь надо это вычисляемое название поля вставить в функцию, а функцию в запрос. Функция и запрос готовы. А вот на синтаксис для поля фантазии не хватает. Одним словом "Object required" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 12:49 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Синтаксис для поля такой: MyFun() As MyField где MyFun - название функции, которая уже написана MyField - название поля, как оно должно получиться А насчет Object required не понял. :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 12:56 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Как вставить функцию в запрос - с эти не проблема. Проблема с вычисляемым именем поля этого же запроса, которое используется в этой функции. А "Object required" - это то ругательство, что мне аксесс выдает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 12:59 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Теперь надо это вычисляемое название поля вставить в функцию, а функцию в запрос. Функция и запрос готовы Название поля? Или все таки его значение? Если название - бери и вставляй. Если значение - тоже бери и вставляй. Я уже писал как. Forms![ИмяФормы].Controls(strControlName).Value ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 13:02 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Я наверно плохо объяснила суть проблемы. Сейчас попробую подробно: Есть запрос, в котором одно из полей есть результат суммы некоторых полей этого же запроса. Какие поля участвуют в расчете, я определяю в функции, которая записана в модуле (не в форме). Вот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 13:11 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
На что именно и в какой момент он выдает это ругательство? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 13:17 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Есть запрос, в котором одно из полей есть результат суммы некоторых полей этого же запроса. Какие поля участвуют в расчете, я определяю в функции, которая записана в модуле Может проще в эту функцию передать значения всех полей, которые могут понадобится, и эта функция сразу вернет результат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 13:21 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Если я просто напишу в процедуре Sum_1=Sum_1+Fld, где Fld - это строка с именем поля, то пишет "Type mismatch" на эту строку (это понятно суммировать чило со стрингом:)), а если напишу Sum_1=Sum_1+Controls(Fld).Value, то "Sub or Function not defined". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 13:29 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Sum_1=Sum_1+Forms!MyForm.Controls(Fld).Value ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 13:32 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Может проще в эту функцию передать значения всех полей, которые могут понадобится, и эта функция сразу вернет результат? Мне этот запрос потом нужно представить в табличной форме. И запрос у немя не простой, с юнитом. Боюсь, потом начнутся проблемы с выводом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 13:33 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
К тому же этот запрос еще используется в другой форме и репорте... Динамически я его не могу создавать, длинный очень. Поэтому он существует в Queries. Forms!MyForm. - а если без формы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 13:40 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
А если без формы, то откуда должны браться значения ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 13:51 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Тем более, что если я вставляю Forms!MyForm.Controls(Fld).Value и запускаю запрос из формы, то ругается "You entered an expression that has no value" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 13:52 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
значения берутся из самого запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 13:53 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Увы, увы. Моих телепатических способностей хватает только на то, чтобы угадывать желания Лоха. Чтобы угадать, почему не работает программа, мне надо видеть программу. Уж пардон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 13:54 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Если значения берутся из запроса, то надо сделать так, как сказал Лох: передавать через параметры в функцию значения всех полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 13:55 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Может проще в эту функцию передать значения всех полей, которые могут понадобится, и эта функция сразу вернет результат? Мне этот запрос потом нужно представить в табличной форме. И запрос у немя не простой, с юнитом. Боюсь, потом начнутся проблемы с выводом... Ну и что с того, что нужно представить? Ну и что с того что юнион? Тебе в каком-то поле нужно вывести странную сумму каких-то полей. Ну и передавай эти значения полей в какую-то функцию и считай странную сумму в этой функции. Результат работы функции выводи в запросе. В чем сложность-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 14:05 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Есть запрос, в котором одно из полей есть результат суммы некоторых полей этого же запроса. Какие поля участвуют в расчете, я определяю в функции, которая записана в модуле (не в форме). Вариант : "одно из полей" - сделать функцией от всех прочих полей в запросе, каковые могут там побывать. А уж _в функции_ определив, что там у вас учавствует в суммировании, то и употребить через нормальное ветвление (если то-то - добавить ту-то, если иначе - другую переменную). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 14:06 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Во. Уже три голоса за то, чтобы передавать все поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 14:09 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Мда-а, проблемка-с... Дело в том, что и количество полей будет меняться. Это ж как же ж надо все закрутить!!!!! А так хорошо день начинался.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 15:06 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
И как это у тебя в запросе количество полей будет меняться? Сдается мне что что-то ты не то делаешь.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 15:12 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
>К тому же этот запрос еще используется в другой форме и репорте... >а если без формы? >значения берутся из самого запроса. >Мда-а, проблемка-с... Дело в том, что и количество полей будет меняться. Ну ни хрена себе закручено... из неопределённого места взять неопределённое кол-во полей и получить результат - мдааа.... это вам не вилкой в носу поковыряться... Может попробуешь запрос показать... Вдруг лучше его понять удасться... Сделать можно всё!!! Только бы знать как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2003, 15:59 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Будет меняться количество полей, которые надо просуммировать. Сам запрос могу привести (в сокращенном виде) SELECT Budget.CostCode AS CostCode, "1" AS pr, Sum(Budget.Sum_planned_06_03) AS Sum_planned_06_03, Sum(Budget.Sum_planned_07_03) AS Sum_planned_07_03, Sum(Budget.Sum_planned_08_03) AS Sum_planned_08_03, Sum(Budget.Sum_planned_09_03) AS Sum_planned_09_03, Sum(Budget.Sum_planned_10_03) AS Sum_planned_10_03, Sum(Budget.Sum_planned_11_03) AS Sum_planned_11_03, Sum(Budget.Sum_planned_12_03) AS Sum_planned_12_03, Sum_Planned() AS Estimated FROM Budget Group By CostCode UNION SELECT Budget.CostCode AS CostCode, "2" AS pr, Sum(Budget.Sum_actual_06_03) AS Sum_actual_06_03, Sum(Budget.Sum_actual_07_03) AS Sum_actual_07_03, Sum(Budget.Sum_actual_08_03) AS Sum_actual_08_03, Sum(Budget.Sum_actual_09_03) AS Sum_actual_09_03, Sum(Budget.Sum_actual_10_03) AS Sum_actual_10_03, Sum(Budget.Sum_actual_11_03) AS Sum_actual_11_03, Sum(Budget.Sum_actual_12_03) AS Sum_actual_12_03, Sum_Actual() AS Estimated FROM Budget Group By CostCode; Плюс к этому две функции: Код: 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. 33. 34. Вполне возможно, что написано где-то не правильно или не красиво. Критикуйте, как считаете нужным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 09:55 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
У меня много замечаний, из них часть по делу и часть не по делу. Не по делу: 1. Эти две функции вполне можно заменить на одну с параметрами. 2. Вместо цикла Do будет лучше выглядеть с циклом For. 3. Имя функции в правой части оператора присваивания работать не будет. По делу: 1. Где в запросе обращения к этим функциям? 2. Где в функциях обращения к полям? (Вижу переменную Fld, но не вижу, где она используется.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 15:38 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Прошу прощения за задержку, пришлось переключиться на другую задачу. По поводу возникших вопросов-замечаний. 1. В запросе обращение к функциям - это строчки перед "FROM..." 2. В самой функции я написала уже конкретное поле Sum_planned_10_03 (моя опечатка, копировала через клипборд и остался "тренировочный" вариант. Функция должна выглядеть так (я одну приведу): Public Function Sum_Planned() As Integer Dim Mes, Fld As String Mes = Month(Date) Sum_Planned = 0 I = Mes + 1 Do While I <= 12 I = I + 1 If Month(Date) > 9 Then Fld = "Sum_planned_" & Month(Date) & "_" & Mid(Year(Date), 3, 2) _ Else Fld = "Sum_planned_0" & Month(Date) & "_" & Mid(Year(Date), 3, 2) Sum_Planned = Sum_Planned + Fld ' вот здесь и надо праавильно написать обращение к полю Loop End Function ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2003, 11:34 |
|
||
|
Макроподстановка (так сказать...)
|
|||
|---|---|---|---|
|
#18+
Например можно так: Код: plaintext 1. 2. 3. 4. 5. Ну и в запросе передаешь ей все поля, т.е. Select ......., Sum_Planned(а здесь перечисляешь все нужные поля через запятую) From ... Where .... Не красиво ни фига, но работать будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2003, 11:51 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1678247]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
25ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 320ms |

| 0 / 0 |
