|
|
|
Изменение порядкового номера контрола или что-то там еще
|
|||
|---|---|---|---|
|
#18+
Есть форма для заполнения адреса (Страна, Город ....). После заполнения формы мне нужно отобразить всю информацию в одном поле. Я сделал так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Этот код работает, но он составляет строку не в нужной мне последовательности, т.к. у контролов порядковые номера заданы не в нужной мне последовательности. Отсюда и вопрос: как это поменять? Или может есть более удачные способы решения проблемы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2003, 18:24 |
|
||
|
Изменение порядкового номера контрола или что-то там еще
|
|||
|---|---|---|---|
|
#18+
Сорри, я немножко отмодерировал текст программы - подвигал строчки вправо-влево, чтобы было понятно, что к чему относится. После этого понял, что там отсутствует закрывающий End If. Но икс с ним, надеюсь, что в самой программе он все-таки есть, иначе бы она не запустилась. Теперь по делу. Обращаться к контролам по номерам - это последнее дело. Такая программа перестанет работать в самый непредсказуемый момент. Начиная с Me.Controls(0) = Me!ADRESS, который вдруг начнет ссылаться на другой контрол. Почему обязательно 0, ты что, не знаешь, как он у тебя называется??? Теперь отвечаю на вопрос. Вариант такой: Dim v As Variant, ctl As Control For Each v In Array("txtCity", "cmbZipCode", "txtStreet", "txtHouseNo") Set ctl = Me(v) ... Next Таким образом можно перечислить контролы в том порядке, как это нужно в данном месте программы, а не как случайно сложилось в ходе создания формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2003, 18:35 |
|
||
|
Изменение порядкового номера контрола или что-то там еще
|
|||
|---|---|---|---|
|
#18+
Кстати, категорически рекомендуется добавить в конце: r.Close Set r = Nothing ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2003, 18:37 |
|
||
|
Изменение порядкового номера контрола или что-то там еще
|
|||
|---|---|---|---|
|
#18+
Me.Controls(0) = Me!ADRESS За это сорри :) Этого там быть не должно было :) Куда End If делся сам не знаю :) У меня он на месте r.Close тоже есть ================== Спасибо, Саныч Я на счет Array тоже думал, но почему то зыбил на него :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2003, 18:56 |
|
||
|
Изменение порядкового номера контрола или что-то там еще
|
|||
|---|---|---|---|
|
#18+
Вопрос, что называется "туда же" Адресов может быть несколько (дом, работа и пр.). Возможноли сделать в текстбоксе, который заполняется вышеупомянутой строкой, сделать разделители. Типа: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2003, 19:15 |
|
||
|
Изменение порядкового номера контрола или что-то там еще
|
|||
|---|---|---|---|
|
#18+
2 В.С For Each v In Array("txtCity", "cmbZipCode", "txtStreet", "txtHouseNo") А не проще ли сразу написать myControl=txtCity & "," & cmbZipCode & .... 2 VcsevolodV Перед r.MoveNext вставляешь строку a=a & vbCRLF & string(len(a),"-") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2003, 19:41 |
|
||
|
Изменение порядкового номера контрола или что-то там еще
|
|||
|---|---|---|---|
|
#18+
2 VIG: Да, я об этом думал, но мой вариант позволяет проделать какую-нибудь операцию в цикле, написав ее один раз, а не повторять столько раз, сколько контролов. Да и приспособить к другому экрану с другими контролами так тоже проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2003, 19:51 |
|
||
|
Изменение порядкового номера контрола или что-то там еще
|
|||
|---|---|---|---|
|
#18+
А не проще ли сразу написать myControl=txtCity & "," & cmbZipCode & .... Дак а если cmbZipCode = NULL, то в строке будет ", ," ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2003, 19:54 |
|
||
|
Изменение порядкового номера контрола или что-то там еще
|
|||
|---|---|---|---|
|
#18+
2 В.С Все должно определяться целесообразностью.Вряд ли стоит организовывать цикл, чтобы просуммировать 3-4 значения.Кроме того если уже что-то делать,так делать правильно. Вместо select * from... я ба написал select список_нужных_полей_в_нужном порядке from... ,а потом прошелся бы циклом по коллекции fields 2 Vsevolod А ты подумай сам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2003, 20:21 |
|
||
|
Изменение порядкового номера контрола или что-то там еще
|
|||
|---|---|---|---|
|
#18+
2 VIG: А я ведь идиот. Там же громадный БАГ в программе, а я его не углядел. Открывается рекордсет, идет проход по записям, а с самим рекордсетом ничего не делается! Берутся значения из контролов формы, которые от рекордсета никак не зависят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2003, 22:15 |
|
||
|
Изменение порядкового номера контрола или что-то там еще
|
|||
|---|---|---|---|
|
#18+
А я ведь идиот Я думаю,что все-таки не ты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2003, 22:37 |
|
||
|
Изменение порядкового номера контрола или что-то там еще
|
|||
|---|---|---|---|
|
#18+
Отвечать-то взялся я. Автор бага не обязан его видеть по определению, потому что его задача здесь - спрашивать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2003, 22:39 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32305170&tid=1678654]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
54ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 367ms |

| 0 / 0 |
