Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как обратится к свойству контрола зная его имя ?
|
|||
|---|---|---|---|
|
#18+
ППЦ засыпался на такой ерунде. Перешел с Access на VB 6 MSDN - нету. Как правильно написать следующую структуру: Forms(FrmName).Controls(GridDSource).Recordset.Filter = "[" & GridColDFild & "]=" & "'" & GridValue & "'" - в Access работает FrmName, GridDSource, GridColDFild , GridValue - переменные типа String FrmName=”Form1” GridDSource=”ADODC1” GridColDFild =”Имя” GridValue=”Вася” Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2010, 17:43 |
|
||
|
Как обратится к свойству контрола зная его имя ?
|
|||
|---|---|---|---|
|
#18+
Forms не принимает текст в качестве индекса. Тут архитектуру надо подправить. Вам приниципиально надо обращаться к форме по имени в переменной? Если да, тут либо перебирать коллекцию Forms по индексам и смотреть свойство Name (и не забывать, что форм с одинаковым именем может быть запущено несколько), либо программировать при вызове форм переменную/массив/коллекцию... В общем, для начала опишите контекст, который требует обращения к форме через переменную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2010, 22:03 |
|
||
|
Как обратится к свойству контрола зная его имя ?
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro В общем, для начала опишите контекст, который требует обращения к форме через переменную. Мда как все сложно в VB по сравнению с VBA Ситуация следующая: Создал форму которая является типа универсальным контекстным меню для гридов (пункты меню: сортировка, фильтр по выделенному, фильтр для и т.д). Когда её вызывают (меню) в свойство этой формы таг передаются следующие значения: имя формы откуда вызвали, имя источника данных грида, имя источника данных ячейки, значения самой ячейки грида откуда вызвали а дальше хотел одной строчкой записывать действия для выбранного пункта меню: Если юзер выбрал допустим фильтр по выделенному то думал что такая структура прокатит: Forms(FrmName).Controls(GridDSource).Recordset.Filter = "[" & GridColDFild & "]=" & "'" & GridValue & "'" Ну если писать корректно то код выглядит так: Private Sub Label3_Click() Call SelectParam ‘с помощью Split разбирает Tag и сохраняет параметры в переменные уровня формы. If Form1.Adodc1.Recordset.Filter = 0 Then If GridValue = "" Then Form1.Adodc1.Recordset.Filter = "[" & GridColDFild & "]=Null" Else Form1.Adodc1.Recordset.Filter = "[" & GridColDFild & "]=" & "'" & GridValue & "'" End If Else If GridValue = "" Then Form1.Adodc1.Recordset.Filter = Form1.Adodc1.Recordset.Filter & " AND [" & GridColDFild & "]=Null" Else Form1.Adodc1.Recordset.Filter = Form1.Adodc1.Recordset.Filter & " AND [" & GridColDFild & "]=" & "'" & GridValue & "'" End If End If Unload Me End Sub Проблема в том что имя формы может быть любым так же как и имя Adodc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 00:16 |
|
||
|
Как обратится к свойству контрола зная его имя ?
|
|||
|---|---|---|---|
|
#18+
TpaBkaМда как все сложно в VB по сравнению с VBA .... Когда её вызывают (меню) в свойство этой формы таг передаются следующие значения: имя формы откуда вызвали, имя источника данных грида, имя источника данных ячейки Это не в VB сложно, это у вас проблема в архитектуре, как я и предполагал. У вам привычка работать с именами, а надо работать с объектами. Во-первых, форм с одинаковым именем (класса) типа Form1 может быть запущено несколько экземпляров, и передача имени проблему не решает. Во-вторых вам нет никакой необходимости передавать в форму меню имя формы и имя контрола вообще. Надо просто отдавать ссылку на ADODC1: 1) Объявляете в форме меню публичную переменную типа ADODC Public ExtADODC As Adodc 2) При вызове из основной формы отдаете ссылку в вызываемую форму (вместо программирования тага) Set MenuForm.ExtADODC = Me.ADODC1 3) В форме меню обращаетеся к АДО-контролу через переменную ExtADODC ExtADODC.Recordset.Filter = блаблабла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 01:00 |
|
||
|
Как обратится к свойству контрола зная его имя ?
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro большое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 10:41 |
|
||
|
Как обратится к свойству контрола зная его имя ?
|
|||
|---|---|---|---|
|
#18+
Если врубились - вам и параметры ячеек необязательно передавать через Tag, просто заведите соответствующие переменные и программируйте их - тогда не понадобится разбирать все Split-ом, да и типы передаваемых данных не будут ограничиваться типом String ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 12:04 |
|
||
|
Как обратится к свойству контрола зная его имя ?
|
|||
|---|---|---|---|
|
#18+
Shocker.ProЕсли врубились - вам и параметры ячеек необязательно передавать через Tag, просто заведите соответствующие переменные и программируйте их - тогда не понадобится разбирать все Split-ом, да и типы передаваемых данных не будут ограничиваться типом String Да врубился и с тагом уже сам догадался :) Беру свои слова назад в VB проще, чем в VBA еще раз спасибо, что поставили на путь истинный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 12:10 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36428591&tid=2160215]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 359ms |

| 0 / 0 |
