| 
			| 
					
						| EnergyUzh 
								Гость
 | 
								|  | « Ответ #30 : 10-06-2009 10:27 »  |  | 
 
 Нету возможности писать "пробел" в поле Поиск. После нажатия на него, предидущий поиск как бы отменяеться:) |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| HandKot 
								Молодой специалист    Offline | 
								|  | « Ответ #31 : 10-06-2009 10:33 »  |  | 
 
 поле Поиск - это текстовое поле?
 |  
						| 
								|  |  
								|  |  Записан | 
 
 I Have Nine Lives You Have One OnlyTHINK!
 |  |  | 
	| 
			| 
					
						| EnergyUzh 
								Гость
 | 
								|  | « Ответ #32 : 10-06-2009 10:41 »  |  | 
 
 Да, Текст Бокс |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| HandKot 
								Молодой специалист    Offline | 
								|  | « Ответ #33 : 10-06-2009 10:51 »  |  | 
 
 так вроде в текст бокс не запрещено писать "пробел"
 объясните подробнее никак не пойму
 |  
						| 
								|  |  
								|  |  Записан | 
 
 I Have Nine Lives You Have One OnlyTHINK!
 |  |  | 
	| 
			| 
					
						| EnergyUzh 
								Гость
 | 
								|  | « Ответ #34 : 10-06-2009 10:56 »  |  | 
 
 Спасибо уже разобрался. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| saintrough 
								Гость
 | 
								|  | « Ответ #35 : 23-07-2009 09:54 »  |  | 
 
 Подскажите пожалуйста, как решить следующую задачу:  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
тут всё работает отлично, но хотелось бы, чтобы в форме также отображались и остальные записи, соответствующие тексту в поле, причём остальные записи не только текстовые, но и числа, даты и т.д. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| HandKot 
								Молодой специалист    Offline | 
								|  | « Ответ #36 : 24-07-2009 05:02 »  |  | 
 
 если правильно понял, то на форме расположите гридисточником данных у грида сделайте рекордсет rst
 и при установке фильтра на рекордсете rst.Filter в гриде будут отображатся отфильтрованные записи
 
 ЗЫЖ за указание правильности свойств не отвечаю, но такие точно есть
 |  
						| 
								|  |  
								|  |  Записан | 
 
 I Have Nine Lives You Have One OnlyTHINK!
 |  |  | 
	| 
			| 
					
						| saintrough 
								Гость
 | 
								|  | « Ответ #37 : 24-07-2009 10:56 »  |  | 
 
 Спасибо! надо будет попробовать) |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Johann 
								Гость
 | 
								|  | « Ответ #38 : 13-12-2009 15:31 »  |  | 
 
 Если не в тот топик, извините, хотя смысл моего вопроса похож на смысл присутствующих в этой теме вопросов.
 Итак, имеется БД в access 2007.
 
 Не могу реализовать следующее:
 Чтобы при введении записи в поле на форме, проверялись совпадения этого поля с полем в таблице и если совпадений нет, то добавлять запись в таблицу. А если есть, то выводить сообщение об ошибке.
 
 Пример.
 Таблица - students (Поля: id, fio, zachetka)
 Форма - form (Поля: id, fio, zachetka)
 Если у определенного студента номер зачетки совпадает с вводимым номером, то выводить ошибку. (Такой номер зачетки уже есть у студента "такого-то". Введите другой номер зачетки.)
 
 Помогите пожалуйста. На мой взгляд объяснил доступно.
 Заранее всем спасибо.
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #39 : 13-12-2009 17:04 »  |  | 
 
 Johann, попробуй создать уникальный индекс по этому полю: если при вставке такое значение в столбце уже есть, то выдаст ошибку. |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| Johann 
								Гость
 | 
								|  | « Ответ #40 : 13-12-2009 17:41 »  |  | 
 
 Ну вот мне желательно бы без индексов. Я реализовывал такое с помощью поля: "Индексирование поля" при создании структуры таблицы, но мне нужно именно путем VBA решить проблему!   |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #41 : 13-12-2009 17:47 »  |  | 
 
 Тогда сперва сделай запрос на наличие такого значения. Только без индекса оно будет выполняться медленно (если конечно таблица не из 100 записей). |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| Johann 
								Гость
 | 
								|  | « Ответ #42 : 13-12-2009 17:55 »  |  | 
 
 А подробнее?))
 Записей в таблице действительно не много.
 
 P.s прошу прощения сразу за мою непонятливость. Работаю с акцесс всего пару месяцев вынужденно, поэтому много непонятного для меня. Мне много ближе веб-программирование.
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #43 : 13-12-2009 18:10 »  |  | 
 
 Johann, сформулируй вопрос - что не понятно? |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| Johann 
								Гость
 | 
								|  | « Ответ #44 : 13-12-2009 18:13 »  |  | 
 
 Как сделать запрос на наличие значения. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Johann 
								Гость
 | 
								|  | « Ответ #45 : 13-12-2009 18:21 »  |  | 
 
 А еще конкретнее, я хочу сделать цикл с параметром, который начиная с первого значения и кончая самым последнем проверяет есть ли запись с таким значением, если есть - ошибка, нет - вставляем запись.Просто я не знаю как реализовать это в VBA, а времени читать литературу нет, поэтому обратился к вам.
 Точнее, я читал некоторые фрагменты по циклам в VBA, но никак не смог сделать так, чтобы он из таблицы значения проверял.
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #46 : 13-12-2009 18:21 »  |  | 
 
 Как же ты веб-программированием занимаешься без баз?   SELECT id FROM tab WHERE id = $new_value; |  
						| 
								|  |  
								| « Последнее редактирование: 13-12-2009 18:22 от RXL » |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| Johann 
								Гость
 | 
								|  | « Ответ #47 : 13-12-2009 18:24 »  |  | 
 
 Брр, ну это понятно.    Прочти выше пост. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #48 : 13-12-2009 18:54 »  |  | 
 
 Johann, см. в MSDN описание объектов ADO - это не сложно. Примером сейчас помочь не могу. Можно тут статьи про ADO почитать: https://club.shelek.ru/view.php?id=17 |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| Johann 
								Гость
 | 
								|  | « Ответ #49 : 14-12-2009 14:59 »  |  | 
 
 Спасибо за советы. Сделал все. Даже больше чем нужно было! |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Spirit 
								Новенький    Offline | 
								|  | « Ответ #50 : 07-01-2011 18:16 »  |  | 
 
 подскажите пожалуйста..При работе в форме с текущей таблицей пользуюсь FindFirst - проблем никаких не возникает.
 А при открытии из той же формы другой таблицы (например, Set rstDao = CurrentDb.OpenRecordset("Склад"))
 FindFirst не работает!!!  Проверял - таблица точно прицеплена. В чем может быть причина?
 
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #51 : 07-01-2011 18:24 »  |  | 
 
 Если курсор однонаправленный, то перемотка невозможна. |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| Spirit 
								Новенький    Offline | 
								|  | « Ответ #52 :  07-01-2011 18:35 »   |  | 
 
 А есть какой либо правильный путь?Задание таково: есть две таблицы  приход и склад. При вводе данных в приход (поле товар) должно проверяться наличие  таково же товара  в  таблице складе. если есть - запрос на объединение, нет - на дополнение. Все работает но вручную. Как в VB лучше оформить
 поиск для дальнейшей обработки
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #53 : 07-01-2011 18:43 »  |  | 
 
 Алгоритм прост:
 1. открыл
 2. проверил на конец
 3. прочитал
 4. перешел к следующему (п.2)
 5. закрыл
 
 
 |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	| 
			| 
					
						| slb51 
								Новенький    Offline | 
								|  | « Ответ #54 : 27-08-2011 08:45 »  |  | 
 
 Я попробовал реализовать этот код. Работает без проблем. 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
Однако, в этой связи у меня возникло два вопросов. Во-первых, как сделать, чтобы MyTextBox был на главной форме, а поиск происходил по подчинённой форме? И, во-вторых, если это единичная форма, в смысле нет у неё подчинённой формы, а поиск ведётся прямо в ней же, можно ли сделать, чтобы форма была в режиме таблицы и на ней было бы видно MyTextBox? Добавлено через 1 час, 37 минут и 50 секунд: вроде в текст бокс не запрещено писать "пробел" Спасибо, уже разобрался А я не разобрался. Объясните, пожалуйста. |  
						| 
								|  |  
								| « Последнее редактирование: 27-08-2011 10:22 от slb51 » |  Записан | 
 |  |  | 
	| 
			| 
					
						| HandKot 
								Молодой специалист    Offline | 
								|  | « Ответ #55 : 29-08-2011 04:23 »  |  | 
 
 поиск происходил по подчинённой форме замените на нужную форму Set rst = FormПодчиненная.Recordsetформа была в режиме таблицы и на ней было бы видно MyTextBox тут я не знаю. но что мешает на форме разместить грид? |  
						| 
								|  |  
								|  |  Записан | 
 
 I Have Nine Lives You Have One OnlyTHINK!
 |  |  | 
	| 
			| 
					
						| slb51 
								Новенький    Offline | 
								|  | « Ответ #56 : 31-08-2011 13:33 »  |  | 
 
 Так не получается. Set rst = FormПодчиненная.Recordset Здесь Form - это же не имя формы.Добавлено через 8 часов, 2 минуты и 51 секунду: Разобрался: Set rst = FormПодчиненная.Recordset Почти правильно. Только надо вот так: Set rst = Подчиненная.Form.Recordset |  
						| 
								|  |  
								| « Последнее редактирование: 31-08-2011 21:35 от slb51 » |  Записан | 
 |  |  | 
	| 
			| 
					
						| ivanov2000 
								Новенький    Offline | 
								|  | « Ответ #57 : 11-09-2012 11:11 »  |  | 
 
 EnergyUzh,  Нету возможности писать "пробел" в поле Поиск. После нажатия на него, предидущий поиск как бы отменяеться:)
 , та же проблема, как решить? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| HandKot 
								Молодой специалист    Offline | 
								|  | « Ответ #58 : 12-09-2012 04:00 »  |  | 
 
 давно это было....расскажите о Вашей проблеме более конкретно, что, где, как
 |  
						| 
								|  |  
								|  |  Записан | 
 
 I Have Nine Lives You Have One OnlyTHINK!
 |  |  | 
	| 
			| 
					
						| ivanov2000 
								Новенький    Offline | 
								|  | « Ответ #59 : 13-09-2012 06:33 »  |  | 
 
 давно это было....расскажите о Вашей проблеме более конкретно, что, где, как
 
 Имеется форма: и  Код:Private Sub Поиск_Change()
 
 Dim rst As DAO.Recordset
 Set rst = Form.Recordset
 rst.FindFirst "[ЛПУ] like '*" & Поиск.Text & "*'"
 Debug.Print rst.NoMatch
 Поиск.SelStart = Len(Поиск.Text)
 
 End Sub
 
 Когда пытаюсь найти конкретную аптеку в поле Поиск, например Аптека № 4 /85, то не могу ввести пробелы. Поле Поиск - это текстовое поле! |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	|  |