EnergyUzh
Гость
|
|
« Ответ #30 : 10-06-2009 10:27 » |
|
Нету возможности писать "пробел" в поле Поиск. После нажатия на него, предидущий поиск как бы отменяеться:)
|
|
|
Записан
|
|
|
|
HandKot
Молодой специалист
Offline
|
|
« Ответ #31 : 10-06-2009 10:33 » |
|
поле Поиск - это текстовое поле?
|
|
|
Записан
|
I Have Nine Lives You Have One Only THINK!
|
|
|
EnergyUzh
Гость
|
|
« Ответ #32 : 10-06-2009 10:41 » |
|
Да, Текст Бокс
|
|
|
Записан
|
|
|
|
HandKot
Молодой специалист
Offline
|
|
« Ответ #33 : 10-06-2009 10:51 » |
|
так вроде в текст бокс не запрещено писать "пробел"
объясните подробнее никак не пойму
|
|
|
Записан
|
I Have Nine Lives You Have One Only THINK!
|
|
|
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 Only THINK!
|
|
|
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
Технический
Администратор
Offline
Пол:
|
|
« Ответ #39 : 13-12-2009 17:04 » |
|
Johann, попробуй создать уникальный индекс по этому полю: если при вставке такое значение в столбце уже есть, то выдаст ошибку.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Johann
Гость
|
|
« Ответ #40 : 13-12-2009 17:41 » |
|
Ну вот мне желательно бы без индексов. Я реализовывал такое с помощью поля: "Индексирование поля" при создании структуры таблицы, но мне нужно именно путем VBA решить проблему!
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #41 : 13-12-2009 17:47 » |
|
Тогда сперва сделай запрос на наличие такого значения. Только без индекса оно будет выполняться медленно (если конечно таблица не из 100 записей).
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Johann
Гость
|
|
« Ответ #42 : 13-12-2009 17:55 » |
|
А подробнее?))
Записей в таблице действительно не много.
P.s прошу прощения сразу за мою непонятливость. Работаю с акцесс всего пару месяцев вынужденно, поэтому много непонятного для меня. Мне много ближе веб-программирование.
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #43 : 13-12-2009 18:10 » |
|
Johann, сформулируй вопрос - что не понятно?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Johann
Гость
|
|
« Ответ #44 : 13-12-2009 18:13 » |
|
Как сделать запрос на наличие значения.
|
|
|
Записан
|
|
|
|
Johann
Гость
|
|
« Ответ #45 : 13-12-2009 18:21 » |
|
А еще конкретнее, я хочу сделать цикл с параметром, который начиная с первого значения и кончая самым последнем проверяет есть ли запись с таким значением, если есть - ошибка, нет - вставляем запись. Просто я не знаю как реализовать это в VBA, а времени читать литературу нет, поэтому обратился к вам. Точнее, я читал некоторые фрагменты по циклам в VBA, но никак не смог сделать так, чтобы он из таблицы значения проверял.
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #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
Технический
Администратор
Offline
Пол:
|
|
« Ответ #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
Технический
Администратор
Offline
Пол:
|
|
« Ответ #51 : 07-01-2011 18:24 » |
|
Если курсор однонаправленный, то перемотка невозможна.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Spirit
Новенький
Offline
|
|
« Ответ #52 : 07-01-2011 18:35 » |
|
А есть какой либо правильный путь? Задание таково: есть две таблицы приход и склад. При вводе данных в приход (поле товар) должно проверяться наличие таково же товара в таблице складе. если есть - запрос на объединение, нет - на дополнение. Все работает но вручную. Как в VB лучше оформить поиск для дальнейшей обработки
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #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 Only THINK!
|
|
|
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 Only THINK!
|
|
|
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, то не могу ввести пробелы. Поле Поиск - это текстовое поле!
|
|
|
Записан
|
|
|
|
|