Игде я не так понимаю ? recordset.find ??

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Shtirlits63
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 18.11.2004 (Чт) 12:36
Откуда: Тольятти

Игде я не так понимаю ? recordset.find ??

Сообщение Shtirlits63 » 23.11.2004 (Вт) 9:12

Не пинайте если я неправильно формулирую )
Есть большая таблица в которой нужно перейти на запись в которой запись в Столбце "Название" равен значению text1.text
пишу adodc.recordset.find - вижу подсказку (Criteria as string,[skip records as long],[searchdirection as searchdirectionenum=adsearchforward],[start])...
так вот я правильно все понимаю ?
Criteria - это критерий отбора ?
skip records as long - пропустить записи ? (вообщем мне не нужный параметр)
searchdirection - место где ищем ????

Короче правильный формат записи Find подскажите плиз )
уже все перелазил - есть 2 примера - но толи лыжи не едут ..... не робят у меня похожие .........

ЗЫ спасиба !

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.11.2004 (Вт) 10:15

adodc.recordset.find "Название=" & text1.txt, нет?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 23.11.2004 (Вт) 10:48

ADODC не пользую, но для простого Recordset-a правильно будет:

Код: Выделить всё
r.Find "Название LIKE '" & Replace(text1.text,"'","''") & "'",,,1
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Shtirlits63
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 18.11.2004 (Чт) 12:36
Откуда: Тольятти

Сообщение Shtirlits63 » 23.11.2004 (Вт) 11:20

ХМ )) самый большой прикол что ни один из перечисленных вариантов не работает )
2й говорит : Не удаеться найти объект в семействе соответствующий имени или порядковому номеру..........
1й говорит о несовпадении типов (
Где же грабли (

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 23.11.2004 (Вт) 11:24

самый большой прикол что ни один из перечисленных вариантов не работает )


Тут мало экстрасенсов, занющих имена полей твоей таблицы и все прочее. Тебе могут подсказать принцип, а во всем остальном ты уж должен постараться разобраться сам. У других-то работает. Да и Help у тебя должен быть - не грех посмотреть и его...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Shtirlits63
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 18.11.2004 (Чт) 12:36
Откуда: Тольятти

Сообщение Shtirlits63 » 23.11.2004 (Вт) 12:10

Да не нужны мне ясновидцы )
Расскажи лучше что в твоем примере за опострофы в кавычках ?
и зачем там нужна команда заменить в поле text1.text один апостроф 2я ?
ведь по идее все ок с ней - просто где то что то не совпадает (
А названия верны там имя столбца "Название" имя первой записи которую ищем "ООО Борец"
зыы извените пхелпа у меня тока всплывающими подсказками огранниченна ......... начинаю тихо ненавидеть пиратов (

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 23.11.2004 (Вт) 12:14

Расскажи лучше что в твоем примере за опострофы в кавычках ?


Строку-то надо в апострофы заключать.

и зачем там нужна команда заменить в поле text1.text один апостроф 2я ?


А иначе будет ошибка, если юзер введет в строке поиска апостроф.

звените пхелпа у меня тока всплывающими подсказками огранниченна ......... начинаю тихо ненавидеть пиратов (


Help частенько отдельно продают - 2 или 3 диска в зависимости от года.
У меня вот несколько версий валяются - куда деть незнаю...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Shtirlits63
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 18.11.2004 (Чт) 12:36
Откуда: Тольятти

Сообщение Shtirlits63 » 23.11.2004 (Вт) 12:24

НУ он вообще не может там ничего ввести ) эта фишка заполняеться автоматом из другой таблицы и ни кавычек ни апострофив быть просто не может ))
гм итак мы имеем окончательный вариант который должен работать , по идее, следующего вида :
r.Find "Название LIKE '" & text1.text & "'",,,1
ЗЫ ? я правильно понимаю ?

Shtirlits63
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 18.11.2004 (Чт) 12:36
Откуда: Тольятти

Сообщение Shtirlits63 » 23.11.2004 (Вт) 12:31

Хм а на пробелах оно не может спотыкаться Я идиот! Убейте меня, кто-нибудь!???
кажется где то тут зарыта ошибка (

Shtirlits63
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 18.11.2004 (Чт) 12:36
Откуда: Тольятти

Сообщение Shtirlits63 » 23.11.2004 (Вт) 12:37

Агромный сеньк Andrey Fedorov
Вроде при я вном указании без пробелов заработала )))
отседа вывод ну и фиг с ним с названием буду искать по индексу )

Princess
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 18.11.2004 (Чт) 12:41

Сообщение Princess » 23.11.2004 (Вт) 12:38

Shtirlits63 писал(а):Да не нужны мне ясновидцы )
Расскажи лучше что в твоем примере за опострофы в кавычках ?
и зачем там нужна команда заменить в поле text1.text один апостроф 2я ?
ведь по идее все ок с ней - просто где то что то не совпадает (
А названия верны там имя столбца "Название" имя первой записи которую ищем "ООО Борец"
зыы извените пхелпа у меня тока всплывающими подсказками огранниченна ......... начинаю тихо ненавидеть пиратов (


Купи себе MSDN и будет тебе щастье. Вот пример оттуда:

Public Sub FindX()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim mark As Variant
Dim count As Integer

count = 0
cnn.Open "DSN=Pubs; Provider=MSDASQL; uid=sa; pwd=;"
rst.Open "SELECT title_id FROM titles", cnn, _
adOpenStatic, adLockReadOnly, adCmdText

' The default parameters are sufficient to search forward
' through a Recordset.

rst.Find "title_id LIKE 'BU%'"

' Skip the current record to avoid finding the same row repeatedly.
' The bookmark is redundant because Find searches from the current
' position.

Do While rst.EOF <> True 'Continue if last find succeeded.
Debug.Print "Title ID: "; rst!title_id
count = count + 1 'Count the last title found.
mark = rst.Bookmark 'Note current position.
rst.Find "title_id LIKE 'BU%'", 1, adSearchForward, mark
Loop

rst.Close
cnn.Close
Debug.Print "The number of business titles is " & count

End Sub

Princess
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 18.11.2004 (Чт) 12:41

Сообщение Princess » 23.11.2004 (Вт) 12:45

А это описание. Теперь ты должен уж разобраться.


Syntax

Find (Criteria, SkipRows, SearchDirection, Start)

Parameters

Criteria A String value that contains a statement specifying the column name, comparison operator, and value to use in the search.

SkipRows Optional. A Long value, whose default value is zero, that specifies the row offset from the current row or Start bookmark to begin the search. By default, the search will start on the current row.

SearchDirection Optional. A SearchDirectionEnum value that specifies whether the search should begin on the current row or the next available row in the direction of the search. An unsuccessful search stops at the end of the Recordset if the value is adSearchForward. An unsuccessful search stops at the start of the Recordset if the value is adSearchBackward.

Start Optional. A Variant bookmark that functions as the starting position for the search.

Remarks

Only a single-column name may be specified in criteria. This method does not support multi-column searches.

The comparison operator in Criteria may be ">" (greater than), "<" (less than), "=" (equal), ">=" (greater than or equal), "<=" (less than or equal), "<>" (not equal), or "like" (pattern matching).

The value in Criteria may be a string, floating-point number, or date. String values are delimited with single quotes or "#" (number sign) marks (for example, "state = 'WA'" or "state = #WA#"). Date values are delimited with "#" (number sign) marks (for example, "start_date > #7/22/97#").

If the comparison operator is "like", the string value may contain an asterisk (*) to find one or more occurrences of any character or substring. For example, "state like 'M*'" matches Maine and Massachusetts. You can also use leading and trailing asterisks to find a substring contained within the values. For example, "state like '*as*'" matches Alaska, Arkansas, and Massachusetts.

Asterisks can be used only at the end of a criteria string, or together at both the beginning and end of a criteria string, as shown above. You cannot use the asterisk as a leading wildcard ('*str'), or embedded wildcard ('s*r'). This will cause an error.

Note An error will occur if a current row position is not set before calling Find. Any method that sets row position, such as MoveFirst, should be called before calling Find.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 51

    TopList  
cron