|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
Вижу три варианта, первый не нравится, второй не пробовал, третий не работает, хотя должен. Кто из умных подскажет? 1. set rst=Me.RecordsetClone rst.MoveFirst rst.Find ... Me.Recordset.Bookmark=rst.Bookmark не нравится необходимость использования нового объекта Recordset, и сканирования его Find'ом 2. Me.Filter="..." Me.FilterOn=true Не совсем то, хотя и похоже. 3. Использование seek и index. Круто на MDB, но на подсоединённом к SQL-таблице Recordsete не катит. Хотя где-то было написано, что может катить. Побросайте плиз гнилых помидорчиков, кому не лень, т.к. тема избитая наверное :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2002, 11:48 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
Забыл сказать: дано ID записи (значение ключа). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2002, 11:49 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
упрощая первый вариант: Me.Recordset.Find "ID = strID", где strID переменная со значением искомого ИД. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2002, 12:26 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
Упрощение не катит, т.к. при этом на форме промаргиваются все записи, которые проходит Find. Т.е. использование Me.Recordset - это всё равно, что Tab'ом скакать по полям. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2002, 12:41 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
Но можно же использовать Application.Echo True/False. а вообще Сергей Вакшуль в похожей теме дал отличный ответ(ссылку) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2002, 13:40 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
усложняя упрощеный вариант: Me.Painting = False Me.Recordset.Find "ID = strID" Me.Painting = True ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2002, 13:46 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
Application.Echo и Me.Painting - это априори или из опыта? >>вообще Сергей Вакшуль в похожей теме дал отличный ответ(ссылку) искал полдня прежде чем задать вопрос, мало что нашел. А не могли бы указать этот топик (хоть примерно :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2002, 14:12 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
Это конечно не совсем то, но тема близкая\r /topic/11135 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 10:20 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
Спасибо за участие, но проблема вот какая вырисовалась окончательно (прежние вопросы были по ходу дела, сорри). A2000 (ADO), MSSQL7 Форме даю ID - значение ключевого поля, и говорю - встань на него. Варианты: Код: 1. 2. 3. 4. 5.
Код: 1. 2. 3. 4.
Проблемы начинаются тогда, когда из другой формы происходит добавление данных, а этой форме говорю - перечитай данные, либо так: Me.Requery, либо так: RunCommand acCmdRefresh, либо даже так: Me.Recordset.Close: Me.Recordset.Open После этого проблемы при позиционировании такие: на первом листинге на строчке set rst=Me.RecordsetClone Access вылетает с недопустимой операцией, на втором листинге форма становится не на ту запись, которую даю в ID - вообще непонятно почему. Не подскажете кто умный, где грабли искать? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 12:42 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
загляни ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 13:39 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
а попробуйте Me.recordsource=Me.recordsource для обновления. А вот и ссылку по Вашей теме нашел от того же Сергея Вакшуля :) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 13:54 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
Где ссылка-то? Если та, что дал klmnop, то я её уж смотрел, утром ещё. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 14:24 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
Всё получилось вроде. Что закомментировано, то не работает, что откомментировано, то и работает. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
т.е. по подсказке sFx_2, уже ни во что не веря, попробовал Me.RecordSource = Me.RecordSource, и это единственное, как работает. DoCmd тоже работает, но мне RunCommand больше нравится. Через rst.Find тоже работает, но, по советам умных, решил Me.Recordset.Find использовать совместно с Me.Painting. Спасибо за совет! Кстати, нигде ранее не упоминалось про MoveFirst перед Find - это обязательно, т.к. Find ищет начиная с текущей позиции, а после RunCommand acCmdRecordsGoToLast она на последней записи. Чем всё же внутренне отличаются: Me.Requery Me.Recordset.Close/Open RunCommand acCmdRefresh Me.RecordSource = Me.RecordSource ??? Большое спасибо за помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 14:38 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
ну вот, а пишет форматирование сохраняется в листинге! короче, комментированные строки - где штрих вначале, а не только те, которые зелёные!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 14:39 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
Вот так, короче: Me.Painting = False Me.RecordSource = Me.RecordSource RunCommand acCmdRecordsGoToLast Me.Recordset.MoveFirst Me.Recordset.Find "ID=" & DBTV.CurrentID Me.Painting = True ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 14:42 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
Пардон, вот ссылка http://am.rusimport.ru/MsAccess/topic.asp?id=24 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2002, 15:16 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
Спасибо, но там не о том речь. Кстати, sFx и sFx_2 - это одно и то же? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2002, 07:26 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
Почему не о том? Все о том. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2002, 10:00 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
Что делать, если у меня не распознается команда Find. Т.е. me.recordset. и ничего не выпадает. При запуске, говорит, что не распознается свойство или метод. Подскажите, плиз, что делать, может рекордсет как-то определить надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2002, 11:00 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
Вот что там: .... 'Обновим форму frm.Requery 'Выберем все записи, перейдя на последнюю DoCmd.GoToRecord acActiveDataObject, , acLast 'Нужно в adp DoCmd.GoToRecord acActiveDataObject, , acFirst 'Выйдем на нужную запись DoCmd.FindRecord strКлюч, acEntire, False, acSearchAll, False, acCurrent, True 'Прокрутим экран так, чтобы он занял тоже положение, что имел до обновления .... Я frm.Requery пробовал, у меня не пошло даже вкупе с DoCmd.GoToRecord acActiveDataObject, , acLast (см. листинги выше) А цимес там именно в: "...ДОБИТЬСЯ ТОГО, ЧТОБ ЭТА СТРОКА ЗАНЯЛА В ЭКРАНЕ ТОЖЕ ПОЛОЖЕНИЕ, ЧТО И ЗАНИМАЛА ДО ОБНОВЛЕНИЯ" ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2002, 11:22 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
to Hora: видимо, ты используешь DAO Recordset, у него метод поиска - FindFirst. Если твои таблицы в MDB (или прилинкованные) - используй FindFirst. Напомню, что всё вышесказанное относится к связке Access2000+ADO+SQL Server. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2002, 11:44 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
Да, в данный момент я использую DAO. Но, ведь FindFirst найдет первую запись, или я не прав. Что делать если мне нужно отобразить какую-то определнную запись - например, ту которая была выбрана в предыдущей форме (обе формы построены на одной таблице). При этом нужен не фильтр, а именно пизиционирование с возможностью дальнейшего перехода по записям в этой второй форме. Может нужно доустановить то, о чем вы говорите? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2002, 12:02 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
Получилось. Могу поделиться. Dim rst As Recordset Dim strCriteria As String strCriteria = "[Candidate_ID] Like '*" & Forms![Review]![Candidate_Id] & "*'" Set rst = Me.RecordsetClone rst.FindFirst strCriteria Me.Bookmark = rst.Bookmark Где "review" предыдущая форма. Отбор идет по полю "Candidate_ID" ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2002, 16:29 |
|
Позиционирование формы на записи (A2000+MSSQL7)
|
|||
---|---|---|---|
#18+
Вы правы, FindFirst находит первую запись, соответствующую критерию запроса. Но если в критерии запроса используется ключ, то найденная запись будет и единственной. Работайте со встроенной справкой - и у вас всё будет гораздо лучше и быстрее! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2002, 10:42 |
|
|
start [/forum/topic.php?fid=45&msg=32064846&tid=1683005]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
138ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 239ms |
0 / 0 |