| 
			| 
					
						| monrus 
								Опытный    Offline | 
								|  | «  : 10-02-2007 08:16 »  |  | 
 
 Как сделать, чтобы при вводе данных в поле на форме - находилась похожая строка в базе и выводилась на форму КАК В СТРОКЕ СОСТОЯНИЯ ФОРМЫ В ACCESS 2007? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #1 : 10-02-2007 14:24 »  |  | 
 
 monrus, после каждого введенного символа выполняй поиск с LIKE. Только какая от этого польза? |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| monrus 
								Опытный    Offline | 
								|  | « Ответ #2 : 10-02-2007 17:19 »  |  | 
 
 Просто у меня на форме в Акцессе 2007 есть поле "поиск" (см. рисунок - №1), где по первым введенным буквам отображается на форме нужная запись. А в Акцессе 2003, который на работе - такого поля нет. Хотелось бы такое же реализовать с обычным полем (см. рис.- №2). Чтобы не нажимать постоянно для поиска Ctrl+F |  
						| 
								| 
 |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| HandKot 
								Молодой специалист    Offline | 
								|  | « Ответ #3 : 12-02-2007 06:28 »  |  | 
 
 что-то типа этого Private Sub MyTextBox_Change()Dim rst As DAO.Recordset, intI As Integer
 
 Set rst = Form.Recordset
 rst.FindFirst "[MyField] like '" & MyTextBox.Text & "*'"
 Debug.Print rst.NoMatch
 MyTextBox.SelStart = Len(MyTextBox.Text)
 
 End Sub
 |  
						| 
								|  |  
								| « Последнее редактирование: 15-12-2007 16:23 от Алексей1153++ » |  Записан | 
 
 I Have Nine Lives You Have One OnlyTHINK!
 |  |  | 
	| 
			| 
					
						| monrus 
								Опытный    Offline | 
								|  | « Ответ #4 : 12-02-2007 15:28 »  |  | 
 
 HandKot, большое спасибо!!! |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| monrus 
								Опытный    Offline | 
								|  | « Ответ #5 : 13-02-2007 15:48 »  |  | 
 
 А как сделать чтобы он во всех полях искал? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| HandKot 
								Молодой специалист    Offline | 
								|  | « Ответ #6 : 14-02-2007 06:07 »  |  | 
 
 А как сделать чтобы он во всех полях искал?
 попробуйте так rst.FindFirst "[MyField] like '" & MyTextBox.Text & "*' OR [MyField2] like '" & MyTextBox.Text & "*'" |  
						| 
								|  |  
								| « Последнее редактирование: 15-12-2007 16:25 от Алексей1153++ » |  Записан | 
 
 I Have Nine Lives You Have One OnlyTHINK!
 |  |  | 
	| 
			| 
					
						| monrus 
								Опытный    Offline | 
								|  | « Ответ #7 : 14-02-2007 13:58 »  |  | 
 
 спасибо. это получается надо все поля прописывать? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| HandKot 
								Молодой специалист    Offline | 
								|  | « Ответ #8 : 15-02-2007 06:12 »  |  | 
 
 спасибо. это получается надо все поля прописывать?
 а вы как думали Если взять, к примеру вас, тоже ведь глазами будете пробегать все поля а комп ничем не лучше, по крайней мере, телепатией и предсказаниями не владеет   |  
						| 
								|  |  
								|  |  Записан | 
 
 I Have Nine Lives You Have One OnlyTHINK!
 |  |  | 
	|  | 
	| 
			| 
					
						| monrus 
								Опытный    Offline | 
								|  | « Ответ #10 : 22-02-2007 15:30 »  |  | 
 
 Еще один вопрос - этот метод ищет в строке с первого символа. а как слелать чтобы с любогоместа в строке искал. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| HandKot 
								Молодой специалист    Offline | 
								|  | « Ответ #11 : 26-02-2007 05:55 »  |  | 
 
 Еще один вопрос - этот метод ищет в строке с первого символа. а как слелать чтобы с любогоместа в строке искал.
 поставить символ "звездочка" в начале rst.FindFirst "[MyField] like '*" & MyTextBox.Text & "*' OR [MyField2] like '*" & MyTextBox.Text & "*'" |  
						| 
								|  |  
								| « Последнее редактирование: 15-12-2007 16:26 от Алексей1153++ » |  Записан | 
 
 I Have Nine Lives You Have One OnlyTHINK!
 |  |  | 
	| 
			| 
					
						| monrus 
								Опытный    Offline | 
								|  | « Ответ #12 : 27-02-2007 13:40 »  |  | 
 
 Огромное спасибо! |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| corvin-nik 
								Гость
 | 
								|  | « Ответ #13 : 03-05-2007 08:20 »  |  | 
 
 monrus, HandKot,  Везет же людям, все у них заработало. А я уже второй день бьюсь и ничего кроме ошибки 3077 (пропущен оператов в выражении) ничего не получается, если же поставить одиночные кавычки, вроде как по правилам, то вообще ничего не ищется.Помогите пожалуста понять, что может быть не так? Изначальный пример кода не работает.
 |  
						| 
								|  |  
								| « Последнее редактирование: 03-05-2007 08:22 от corvin-nik » |  Записан | 
 |  |  | 
	| 
			| 
					
						| Алексей++ 
								глобальный и пушистыйГлобальный модератор    Offline 
								Сообщений: 13
								
								
								
								
								
							 | 
								|  | « Ответ #14 : 03-05-2007 13:45 »  |  | 
 
 corvin-nik, rst.FindFirst "[MyField] like '*" & MyTextBox.Text & "*' OR [MyField2] like '*" & MyTextBox.Text & "*'"
 
 corvin-nik, тоже в ИЕ сидишь ? )
 
 |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| corvin-nik 
								Гость
 | 
								|  | « Ответ #15 :  03-05-2007 14:49 »   |  | 
 
 corvin-nik, rst.FindFirst "[MyField] like '*" & MyTextBox.Text & "*' OR [MyField2] like '*" & MyTextBox.Text & "*'"
 
 corvin-nik, тоже в ИЕ сидишь ? )
 
 
 Спасибо! Сижу, блином Билли эдак и так р-р-р-р   |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| corvin-nik 
								Гость
 | 
								|  | « Ответ #16 : 03-05-2007 14:51 »  |  | 
 
 Еще один вопрос: как можно выделять найденные символы, чтоб не шарить глазами по строкам? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| daikmax 
								Гость
 | 
								|  | « Ответ #17 : 30-07-2008 22:35 »  |  | 
 
 Может уже не актуально, но всетаки интересно, как сделать такойже поиск, но по двум полям, дапустим имя и фамилия??? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| daikmax 
								Гость
 | 
								|  | « Ответ #18 : 30-07-2008 22:38 »  |  | 
 
 Может уже не актуально, но всетаки интересно, как сделать такойже поиск, но по двум полям, дапустим имя и фамилия???
 задача такова: два поля даля ввода текста на поиск, сам поиск по одной колонке, только так как в примере сверху... Так сказатй поиск в реалйном времени   ) |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #19 : 31-07-2008 03:53 »  |  | 
 
 daikmax, поиск по N поляд делается почти точно также, как и поиск по одному полю: ищем по первому, совпадения проверяем по остальным полям. |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| daikmax 
								Гость
 | 
								|  | « Ответ #20 : 01-08-2008 20:16 »  |  | 
 
 Private Sub MyTextBox_Change()Dim rst As DAO.Recordset, intI As Integer
 
 Set rst = Form.Recordset
 rst.FindFirst "[MyField] like '*" & MyTextBox.Text & "*' OR [MyField2] like '*" & MyTextBox.Text & "*'"
 Debug.Print rst.NoMatch
 MyTextBox.SelStart = Len(MyTextBox.Text)
 
 End Sub
 
 этот код выполняет поиск по двум разным полям базы, каждый раз когда я набераю символ в  один текстбокс?! Верно?
 У меня немного другая задача, таблица дапустим в две колонки, 1-я имя, 2-а фамилия! Надо
 идентичный поиск, если я ввел фамилию, и в базе фамилии одинаковые, то я ввожу есчо и имя!
 Как сделать правелйый провеку, и возможена ли реализацыя такова поиска?!
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| HandKot 
								Молодой специалист    Offline | 
								|  | « Ответ #21 : 04-08-2008 04:26 »  |  | 
 
 попробуйте так 'где вводим фамилиюPrivate Sub MyTextBoxFamily_Change()
 Dim rst As DAO.Recordset, intI As Integer
 
 Set rst = Form.Recordset
 rst.FindFirst "[MyField_Family] like '*" & MyTextBoxFamily.Text & "*' AND [MyField_Name] like '*" & MyTextBoxName.Text & "*'"
 Debug.Print rst.NoMatch
 MyTextBoxFamyly.SelStart = Len(MyTextBoxFamily.Text)
 End Sub
 
 'где вводим имя
 Private Sub MyTextBoxName_Change()
 Dim rst As DAO.Recordset, intI As Integer
 
 Set rst = Form.Recordset
 rst.FindFirst "[MyField_Family] like '*" & MyTextBoxFamily.Text & "*' AND [MyField_Name] like '*" & MyTextBoxName.Text & "*'"
 Debug.Print rst.NoMatch
 MyTextBoxName.SelStart = Len(MyTextBoxName.Text)
 End Sub
 |  
						| 
								|  |  
								|  |  Записан | 
 
 I Have Nine Lives You Have One OnlyTHINK!
 |  |  | 
	| 
			| 
					
						| LexandrIII 
								Гость
 | 
								|  | « Ответ #22 : 19-11-2008 09:02 »  |  | 
 
 А как сделать поиск, чтобы в таблице оставались толке записи, которые набираешь в отдельном поле поиска? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| HandKot 
								Молодой специалист    Offline | 
								|  | « Ответ #23 : 19-11-2008 10:50 »  |  | 
 
 не совсем понятен вопросвозможно Вы имели ввиду св-во Filtr объекта RecordSet
 |  
						| 
								|  |  
								|  |  Записан | 
 
 I Have Nine Lives You Have One OnlyTHINK!
 |  |  | 
	| 
			| 
					
						| LexandrIII 
								Гость
 | 
								|  | « Ответ #24 : 26-11-2008 11:25 »  |  | 
 
 HandKot, возможно. Есть таблица и есть поле ввода. Мне нужно, чтобы в таблице оставались только записи соответствующие тому, что набирается в поле ввода. Соответствие допустим будет по полю Name таблицы. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| HandKot 
								Молодой специалист    Offline | 
								|  | « Ответ #25 : 27-11-2008 05:09 »  |  | 
 
 на событие изменения в поле (txtFilter) ввода пишете, что-то похожее на этоsub txtFilter_Change
 myRecordset.Filtr = "Name like '" + txtFilter + "*'"
 
 end sub
 
 |  
						| 
								|  |  
								|  |  Записан | 
 
 I Have Nine Lives You Have One OnlyTHINK!
 |  |  | 
	| 
			| 
					
						| EnergyUzh 
								Гость
 | 
								|  | « Ответ #26 : 10-06-2009 07:25 »  |  | 
 
 Private Sub Поиск_Change()Dim rst As DAO.Recordset, intI As Integer
 Set rst = Form.Recordset
 rst.FindFirst "Инструкции like '*" & Поиск.Text & "*'"
 Debug.Print rst.NoMatch
 Поиск.SelStart = Len(Поиск.Text)
 End Sub
Выбивает ошибку 3070 "Инструкции" не распознается ядром базы даных Microsoft Jet |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| HandKot 
								Молодой специалист    Offline | 
								|  | « Ответ #27 : 10-06-2009 10:08 »  |  | 
 
  а такое поле вообще есть в таблице/рекордсете ? так же попробуйте обернуть "брикетами" rst.FindFirst "[Инструкции] like '*" & Поиск.Text & "*'" |  
						| 
								|  |  
								|  |  Записан | 
 
 I Have Nine Lives You Have One OnlyTHINK!
 |  |  | 
	| 
			| 
					
						| EnergyUzh 
								Гость
 | 
								|  | « Ответ #28 : 10-06-2009 10:16 »  |  | 
 
 Спасибо, не заметил ошибку в написании. И еще одно можно ли как-то переделать этот код что бы в поле можно было писать не только одно слово, и пользоваться пробелом... |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| HandKot 
								Молодой специалист    Offline | 
								|  | « Ответ #29 : 10-06-2009 10:25 »  |  | 
 
 не понял
 |  
						| 
								|  |  
								|  |  Записан | 
 
 I Have Nine Lives You Have One OnlyTHINK!
 |  |  | 
	|  |