Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2] 3  Все   Вниз
  Печать  
Автор Тема: Поиск записи в Access  (Прочитано 123555 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
EnergyUzh
Гость
« Ответ #30 : 10-06-2009 10:27 » 

Нету возможности писать "пробел" в поле Поиск. После нажатия на него, предидущий поиск как бы отменяеться:)
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #31 : 10-06-2009 10:33 » 

поле Поиск - это текстовое поле?
Записан

I Have Nine Lives You Have One Only
THINK!
EnergyUzh
Гость
« Ответ #32 : 10-06-2009 10:41 » 

Да, Текст Бокс
Записан
HandKot
Молодой специалист

ru
Offline 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
Молодой специалист

ru
Offline 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
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #39 : 13-12-2009 17:04 » new

Johann, попробуй создать уникальный индекс по этому полю: если при вставке такое значение в столбце уже есть, то выдаст ошибку.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Johann
Гость
« Ответ #40 : 13-12-2009 17:41 » 

Ну вот мне желательно бы без индексов. Я реализовывал такое с помощью поля: "Индексирование поля" при создании структуры таблицы, но мне нужно именно путем VBA решить проблему! Ага
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #41 : 13-12-2009 17:47 » 

Тогда сперва сделай запрос на наличие такого значения. Только без индекса оно будет выполняться медленно (если конечно таблица не из 100 записей).
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Johann
Гость
« Ответ #42 : 13-12-2009 17:55 » 

А подробнее?))

Записей в таблице действительно не много.

P.s прошу прощения сразу за мою непонятливость. Работаю с акцесс всего пару месяцев вынужденно, поэтому много непонятного для меня. Мне много ближе веб-программирование.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #43 : 13-12-2009 18:10 » 

Johann, сформулируй вопрос - что не понятно?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Johann
Гость
« Ответ #44 : 13-12-2009 18:13 » 

Как сделать запрос на наличие значения.
Записан
Johann
Гость
« Ответ #45 : 13-12-2009 18:21 » 

А еще конкретнее, я хочу сделать цикл с параметром, который начиная с первого значения и кончая самым последнем проверяет есть ли запись с таким значением, если есть - ошибка, нет - вставляем запись.
Просто я не знаю как реализовать это в VBA, а времени читать литературу нет, поэтому обратился к вам.
Точнее, я читал некоторые фрагменты по циклам в VBA, но никак не смог сделать так, чтобы он из таблицы значения проверял.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #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
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #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
Новенький

ru
Offline Offline

« Ответ #50 : 07-01-2011 18:16 » 

подскажите пожалуйста..
При работе в форме с текущей таблицей пользуюсь FindFirst - проблем никаких не возникает.
А при открытии из той же формы другой таблицы (например, Set rstDao = CurrentDb.OpenRecordset("Склад"))
FindFirst не работает!!!  Проверял - таблица точно прицеплена. В чем может быть причина?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #51 : 07-01-2011 18:24 » 

Если курсор однонаправленный, то перемотка невозможна.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Spirit
Новенький

ru
Offline Offline

« Ответ #52 : 07-01-2011 18:35 » 

А есть какой либо правильный путь?
Задание таково: есть две таблицы  приход и склад. При вводе данных в приход (поле товар) должно проверяться наличие  таково же товара  в  таблице складе. если есть - запрос на объединение, нет - на дополнение. Все работает но вручную. Как в VB лучше оформить
поиск для дальнейшей обработки
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #53 : 07-01-2011 18:43 » 

Алгоритм прост:

1. открыл
2. проверил на конец
3. прочитал
4. перешел к следующему (п.2)
5. закрыл

Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
slb51
Новенький

ru
Offline 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
Молодой специалист

ru
Offline Offline

« Ответ #55 : 29-08-2011 04:23 » 

Цитата: slb51
поиск происходил по подчинённой форме
замените на нужную форму
Код:
Set rst = FormПодчиненная.Recordset

Цитата: slb51
форма была в режиме таблицы и на ней было бы видно MyTextBox
тут я не знаю.
но что мешает на форме разместить грид?
Записан

I Have Nine Lives You Have One Only
THINK!
slb51
Новенький

ru
Offline 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
Новенький

ru
Offline Offline

« Ответ #57 : 11-09-2012 11:11 » 

EnergyUzh,
Нету возможности писать "пробел" в поле Поиск. После нажатия на него, предидущий поиск как бы отменяеться:)
, та же проблема, как решить?
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #58 : 12-09-2012 04:00 » 

давно это было....
расскажите о Вашей проблеме более конкретно, что, где, как
Записан

I Have Nine Lives You Have One Only
THINK!
ivanov2000
Новенький

ru
Offline 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, то не могу ввести пробелы. Поле Поиск - это текстовое поле!
Записан
Страниц: 1 [2] 3  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines