powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
26 сообщений из 26, показаны все 2 страниц
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787290
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как в ленточной подчиненной форме (recordset - Ado) быстро и просто встать на первую запись с нужным значением нужного поля? На форме применен фильтр.

Geoтопик переименован
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787352
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что по этому поводу говорится в хелпе?
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787508
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что в хелпе? Хочется написать в общем виде, для любой формы и любых значений поля и названий поля. То есть написать подпрограмму, которой будет передана ссылка на форму (as Form), название поля рекордсета (as string) и значение поля (as Variant). Подпрограмма должна переместить в форме на нужную запись. При этом все поля в форме могут быть недоступны, в форме может быть фильтр, сортировка и т.д. Поэтому FindRecord не проходит (из-за возможной недоступности контрола, и в рекордсете может быть поле, а в форме - не быть для него контрола), Recordset.Find -> Bookmark тоже не катит из-за фильтра. Что делать? Кто знает - подскажите.
Заранее благодарен.
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787541
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mb docmd.gotorecord?
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787551
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я, честно говоря, не до конца понимаю проблему. Например, не ясно мне, как недоступные контролы (по всей видимости имеется ввиду enabled = false) могут влиять на работу с рекордсетом. А так же есть еще масса неясностей. Короче говоря ты бы лучше кусок кода дал, в котором загвоздка.
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787557
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как здесь применить gotorecord?? Я не прикалываюсь, я действительно не представляю. Если есть хоть какой-то намек, подскажи, пожалуйста.
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787564
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mediumИ как здесь применить gotorecord?? Я не прикалываюсь, я действительно не представляю. Если есть хоть какой-то намек, подскажи, пожалуйста.
DoCmd.GoToRecord , , acFirst
Встает на первую запись
Но видимо это не то, что тебе нужно.
Так что почитай еще раз мессаг № 1114358
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787568
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кода нет, потому, что надо написать процедуру, которая будет осуществлять позиционирование в форме. Известны параметры процедуры - собственно форма, изместно, что у формы рекордсет типа АДО. Известно название искомого поля в рекордсете, и значение этого поля. Задача - встать в форме на запись с нужным значением в нужном поле рекордсета. В общем случае получается полный туман. Если есть идея - подскажи, пожалуйста.
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787582
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у формы рекордсет типа АДО
Это как?

----
Например
Код: plaintext
1.
2.
3.
4.
5.
Dim a As DAO.RecordSet
    
    Set a = Me.RecordSet
    
    a.FindFirst "[MyField] = '13=185'"
    a.Close
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787587
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне не надо на первую, мне не надо на седьмую, двадцатую или последнюю.
А надо на запись с нужным значением нужного поля. Как из названия поля и значения рассчитать порядковый номер записи в форме при фильтре и сортировке, я не знаю. Если умеешь - научи.
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787601
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В АДО при фильтре Rs.Find работает некорректно
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787603
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Repeat:
Код: plaintext
1.
2.
3.
4.
5.
Dim a As DAO.RecordSet
    
Set a = Me.RecordSet
    
a.FindFirst "[MyField] = '13=185'"
a.Close
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787631
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так и что?
----
У меня мозг напрочь отказывается понимать, что означает фраза "у формы рекордсет типа АДО". У формы определенно задан только источник данных, тобиш таблица или запрос. А рекорсет, каким захочешь таким и будет. Можешь даже создать собственный Type и присвоить к нему рекордсет формы.
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787663
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужна вот такая процедура:
Привожу прототип и начало определения переменных.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public Sub S(TmpForm as Form, TmpFieldName as String, TmpValue as Variant)
Dim TmpRs as ADODB.Recordset
Dim TmpBookMark as Variant
Dim Criteria as String
Criteria = TmpFieldName+"="+ ...???
Set TmpRS = TmpForm.Recordset
TmpRs.Find (TmpCriteria)
TmpBookMark = TmpRs.Bookmark 
...
и все равно в общем случае ничего не получается.
Что делать??
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787680
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Repeat:
Код: plaintext
1.
2.
3.
4.
5.
Dim a As DAO.RecordSet
    
Set a = Me.RecordSet
    
a.FindFirst "[MyField] = '13=185'"
a.Close
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787692
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно даже приукрасить:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Public Function S(TmpForm As Form, TmpFieldName As String, TmpValue As Variant)
Dim R As DAO.Recordset

Set R = TmpForm.Recordset
If TmpFieldName = "" Then
    MsgBox "bla-bla-bla"
    R.Close
    Exit Function
End If
If TmpValue = "" Then
    MsgBox "bla-bla-bla"
    R.Close
    Exit Function
End If

If Not R.EOF Then
    R.FindFirst " & TmpFieldName & " = " " & TmpValue & ""
Else
    MsgBox "bla-bla-bla"
End If
R.Close
End Function
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787719
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обрати внимание, не DAO.Recordset а ADODB.Recordset.
Тут то собака и порылась.
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787731
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще одна особенность: значение поля - Variant, а не String.
Тут тоже собачка маленькая.
А нужно решение в общем виде.
Есть ли оно??
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787739
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в случае Jet корректнее было бы сначала делать movefirst и работать не по рекордсету, а по клону. С DAO вообще все просто, т.к. с фильтрами работает корректно, синтаксис фильтров форм для JET - родной.
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787751
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mediumОбрати внимание, не DAO.Recordset а ADODB.Recordset.
Тут то собака и порылась.
Ты начинаешь надоедать.
Я в ADO не работаю и не понимаю зачем именно эта технология здесь требуется. Это первое.
Второе насчет собак - меня это не веселит
Третье - Variant, так Variant. Какая разница.
Сделай так:
Код: plaintext
1.
2.
3.
4.
5.
6.
Public Function S(TmpForm As Form, TmpFieldName As String, TmpValue1 As Double, TmpValue2 as String ....)
....
If not IsNull(TmpValue1) then
...
Exit Function
End if
....
Шевелить мозгами надо. Вот, где собака порылась
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787759
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mediumА в случае Jet корректнее было бы сначала делать movefirst и работать не по рекордсету, а по клону. С DAO вообще все просто, т.к. с фильтрами работает корректно, синтаксис фильтров форм для JET - родной.
По клону, если будешь работать, то не увидишь, как встанешь на найденную запись. Я понял, что тебе нужно визуально перейти.
----
Все просто, так и делай в DAO.
----
Короче говоря, задачу четче надо ставить.
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787762
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые коллеги, работающие с ADO. Как по вашему, имеет ли задача корректное решение в общем виде?
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787767
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А с DAO лучше сначала перейти к первой записи клона, потом к нужной записи клона, сохранить закладку клона и перейти к закладке в форме. И все равно текст критерия для метода Find формируется не в одну строку, надо сначала разобраться с типом данных Variant, а потом расставить где надо кавычки и решетки (для текста или даты/времени)(через Format). Это мне кажется более корректным.
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787777
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VsevolodVТы начинаешь надоедать.
Я в ADO не работаю и не понимаю зачем именно эта технология здесь требуется. Это первое.
Второе насчет собак - меня это не веселит
???

Я сейчас все посты твои отсюда уберу.

2 Автор
Первое, что нашел.
http://www.sql.ru/forum/actualthread.aspx?tid=92653&hl=ado+find
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787781
otto kreiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To medium:
А не подойдет ли тебе RequeryPro?
http://am.rusimport.ru/MsAccess/show.asp?ID=24
...
Рейтинг: 0 / 0
Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
    #32787783
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
???

Я сейчас все посты твои отсюда уберу.
Да я просто в другом топике сказал "Тут собака порылась", а он дразниться начал :))
...
Рейтинг: 0 / 0
26 сообщений из 26, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите добрым советом (Как встать на первую запись с нужным значением поля?)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]