Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 33
1

Подбор по интервалу

25.11.2011, 08:49. Показов 1422. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! Помогите, пожалуйста, решить такую задачу:
В форме имеется поле параметра электроприемника (рабочий ток), как сделать, чтобы при вводе значения в это поле в другом поле (регулируемый автомат) выдавалась модель автомата, имеющего диапазон регулировки, в котором (диапазоне) находиться введенное значение.
Файл базы прилагаю. Заранее благодарю!
Вложения
Тип файла: rar ппп.rar (9.6 Кб, 23 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2011, 08:49
Ответы с готовыми решениями:

Выборка по интервалу времени
Я уже это делал и вот работающий пример WHERE `date` >= subdate('$date',INTERVAL 30 MINUTE) А...

Принадлежит ли число интервалу
Есть несколько границ интервалов(u1...u6) и есть данные из excel столбец значений,хотела чтобы...

Задача на принадлежность интервалу
Задание:Пусть x0 = a ; xk = qx(k–1) + b , ( k = 1, 2, ...). Даны неотрицательное целое n ,...

Matlab принадлежность интервалу
создал функцию function y = randU(x, a, b) if (a<x<b) y = 1 / (a-b) else y = 0 end ...

15
Эксперт MS Access
7397 / 4534 / 295
Регистрация: 12.08.2011
Сообщений: 14,021
25.11.2011, 09:29 2
0.Интервалы не должны пересекаться, это подразумевается.
На "после обновления" вашего поля поставьте:

Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub plРабочийТок_AfterUpdate()
Dim sql As String
Dim r1 As Recordset
Dim db As Database
Set db = CurrentDb
sql = "select модель from tblрегАвтоматы where " & Me.plРабочийТок & " >= start and " & Me.plРабочийТок & " <= end "
Set r1 = db.OpenRecordset(sql)
Me.plРегАвтомат = r1(0).Value
End Sub
Но сначала измениете таблицу так:
Изображения
 
1
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 33
25.11.2011, 09:37  [ТС] 3
Спасибо! А SQL-ом это осуществить нельзя, т.е. без VBA?
0
Эксперт MS Access
7397 / 4534 / 295
Регистрация: 12.08.2011
Сообщений: 14,021
25.11.2011, 09:52 4
Это как? Ввели число и... без события просто откуда-то вылетела строка и залетела во второе поле??
1
2092 / 1168 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
25.11.2011, 10:24 5
Как вариант:
- Диапазон заменяем на два числовых поля ОТ и ДО (при чем в свойствах задаем Действительное, число дес знаков 1, шкала 1)
- На форме для поля Рабочий ток задаем формат - фиксированный, число знаков 1, значение по умолчанию 0
- Поле Регулируемый автомат превращаем в поле со списком, источник подстановки - запрос на основе таблицы tblрегАвтоматы; число столбцов подстановки 4, ширина столбцов 0см;4см;1см;1см (т.е. id на экран не выводим, выводим название модели, и диапазон ОТ и ДО)
- Задаем условия отбора для полей ОТ и ДО в подстановочном запросе, для поля Диапазон регулировки ОТ:
<=[Forms]![Form1]![plРабочийТок]
для поля Диапазон регулировки ДО:
>=[Forms]![Form1]![plРабочийТок]
При чем эти условия должны выполняться одновременно (записаны в одной строке условия запроса).
- Теперь осталось обновить это поле со списком при изменении рабочего тока на форме: на событие После обновления поля Раб ток
Visual Basic
1
Me![plРегАвтомат].Requery
Вложения
Тип файла: rar ппп.rar (11.6 Кб, 24 просмотров)
1
Эксперт MS Access
7397 / 4534 / 295
Регистрация: 12.08.2011
Сообщений: 14,021
25.11.2011, 10:29 6
Цитата Сообщение от Ameli Посмотреть сообщение
Теперь осталось обновить это поле со списком
А это уже нельзя

--->

Цитата Сообщение от Klocker Посмотреть сообщение
А SQL-ом это осуществить нельзя, т.е. без VBA?
1
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 33
25.11.2011, 14:16  [ТС] 7
Ameli, Спасибо за помощь, а нельзя сделать так, чтобы поле со списком обновлялось автоматически?

Добавлено через 2 минуты
Цитата Сообщение от alvk Посмотреть сообщение
Это как? Ввели число и... без события просто откуда-то вылетела строка и залетела во второе поле??
Ну я себя и не позиционировал, как программиста)))
Спасибо!

Добавлено через 2 минуты
alvk, Сделал как Вы советовали, выдает ошибку по этой строке:
Set r1 = db.OpenRecordset(sql)
0
Эксперт MS Access
7397 / 4534 / 295
Регистрация: 12.08.2011
Сообщений: 14,021
25.11.2011, 14:29 8
в референсах так? --->
Миниатюры
Подбор по интервалу  
0
Эксперт MS Access
7397 / 4534 / 295
Регистрация: 12.08.2011
Сообщений: 14,021
25.11.2011, 14:35 9
на всякий сам файл:
Вложения
Тип файла: rar ппп.rar (11.6 Кб, 23 просмотров)
0
2092 / 1168 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
25.11.2011, 14:41 10
Цитата Сообщение от Klocker Посмотреть сообщение
а нельзя сделать так, чтобы поле со списком обновлялось автоматически?
Что значит в вашем понимании "автоматически"? Чтобы что-то произошло в программе, надо это запрограммировать, при чем по какому-то конкретному событию. В данном случае у нас это событие - После обновления поля Рабочий ток.
Если вы хотите совсем без программного кода, то воспользуйтесь макросом (команда Обновление), установите этот макрос на событие После обновления поля Раб ток.
Хотя я не вижу ничего страшного в одной строчке кода, тем более такой простой
1
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 33
25.11.2011, 14:48  [ТС] 11
alvk, да, так. А вы не могли бы расписать поэтапно что делать?
0
Эксперт MS Access
7397 / 4534 / 295
Регистрация: 12.08.2011
Сообщений: 14,021
25.11.2011, 15:45 12
Klocker, если про код, то:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Dim sql As String
Dim r1 As Recordset
Dim db As Database
'Все действия производим с рекордсетом DAO, библиотека в референсах подключена
' и находится выше, чем ADO, поэтому явно можно не прописывать dao.recordset
Set db = CurrentDb ' устанавливаем db как текущую базу данных
sql = "select модель from tblрегАвтоматы where " & Me.plРабочийТок & " >= start and " & Me.plРабочийТок & " <= end "
'присваиваем строковой переменной sql строку запроса, который выводит из таблицы запись,
' подпадающую под наши условия, т.е. рабочий ток в соответствующем интервале
Set r1 = db.OpenRecordset(sql) ' на основе запроса создаём рекордсет
Me.plРегАвтомат = r1(0).Value ' присваиваем полю на форме знаечение 
'первого поля рекордсета - R1(0)
1
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 33
25.11.2011, 17:09  [ТС] 13
alvk, а с самого начала Вас не затруднит оптсать (не только код)?
0
Эксперт MS Access
7397 / 4534 / 295
Регистрация: 12.08.2011
Сообщений: 14,021
25.11.2011, 17:26 14
что именно? кроме кода и изменений в таблице больше ничего нет, не понимаю О_о
0
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 33
25.11.2011, 19:41  [ТС] 15
alvk, никаких запросов?
0
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 33
28.11.2011, 07:00  [ТС] 16
alvk, Все получилось, большое спасибо. Извините за тупые вопросы))
0
28.11.2011, 07:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2011, 07:00
Помогаю со студенческими работами здесь

бинарный поиск по интервалу
int Search1(data *list, int count,int left,int right) /* list указатель на структуру, count...

Принадлежат ли числ a и b интервалу x;y?
Помогите пожалуйста написать! уже час долблю но не выходит: Определите подходят ли оба числа а и б...

Выборка по интервалу дат
Здравствуйте. Копаюсь по интернету уже несколько дней, не могу найти ответ. Есть таблица по...

Поиск по интервалу значений
Доброго времени суток, есть таблица, в которой есть поле &quot;Стоимость&quot;и такой запрос с условием...

Определить принадлежность числа интервалу
Написать программу, проверяющую принадлежит ли число, введенное с клавиатуры интервалу .

Функция для выборки из БД по интервалу
Здравствуйте! как можно сделать такую функцию в PHP, которая будет выбирать в теге...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru