2016-09-10 1 views
0

Попытка настроить запрос, когда одно из полей выбрано значением в поле со списком. Невозможно определить правильный синтаксис. Я в представлении SQL из конструктора запросов, используя следующие:MS Access Использование значения ComboBox в поле SQL

SELECT Deviations.Deviation, Deviations.Rev, Deviations.Title, Deviations.Issued, Deviations.ExpiryDate, Deviations.ExpiryHours, Deviations.ExpOther, Deviations.Active, Deviations.[Forms]![DeviationSelectionForm]![cmbAircraft] 
FROM Deviations 
WHERE Deviations.[Forms]![DeviationSelectionForm]![cmbAircraft]=True 
ORDER BY Deviations.Deviation DESC 

Поле со списком выбирает бортовой номер самолета, который является флажок в таблице. В поле флажков есть несколько номеров хвостов самолета. Так что, если бы не были выпадающей и я хотел запрос для использования в качестве примера самолета 416, запрос будет:

SELECT Deviations.Deviation, Deviations.Rev, Deviations.Title, Deviations.Issued, Deviations.ExpiryDate, Deviations.ExpiryHours, Deviations.ExpOther, Deviations.Active, Deviations.[416] 
FROM Deviations 
WHERE Deviations.[416]=True 
ORDER BY Deviations.Deviation DESC 

Когда я проверить этот запрос работает, как мне нужно, чтобы это.

Итак, вопрос в том, как создать запрос с помощью поля со списком в форме, идентифицирующей имя поля таблицы?

ответ

1

Создайте Query SQL viacode в событии combobox afterUpdate.

Dim strSql as String 
strSql = "SELECT Deviations.Deviation, Deviations.Rev, Deviations.Title, Deviations.Issued, " _ 
& "Deviations.ExpiryDate, Deviations.ExpiryHours, Deviations.ExpOther, " _ 
& "Deviations.Active, Deviations." & Me!cmbAircraft _ 
& " FROM Deviations " _ 
& "WHERE Deviations." & Me!cmbAircraft & " =True " _ 
& "ORDER BY Deviations.Deviation DESC" 
CurrentDb.QueryDefs(<yourqueryname>).SQL = strSql 

Таким образом, похоже, что вы создали таблицу вместо базы данных. Ваши таблицы не нормализованы. Самолеты должны быть записями, а не колоннами. Я предлагаю вам ознакомиться с разработкой и нормализацией базы данных.

+0

Спасибо за помощь, я считаю, что это может сработать. Что касается дизайна базы данных, я слышал, что вы говорите, но должен был структурировать ее таким образом. У меня есть таблица с номерами самолетов, которые в этом случае не используются. Таблица, с которой я столкнулся, основана на отклонении от обслуживания воздушных судов, которое может относиться к одному или нескольким различным самолетам, поэтому у меня есть столбцы с флажками для каждого из самолетов в таблице отклонений. Поэтому, когда отклонение публикуется против нескольких самолетов, я ввожу информацию об отклонениях и выбираю, к какому самолету он применяется. Открыто для предложений. – tllewellyn

+1

Три стола: 1. Самолет (AircraftID, <все необходимые поля, относящиеся к летательному аппарату>) 2. Отклонения (DeviationID, <все необходимые поля для отклонения>) 3. AircraftDeviations (AircraftID, DeviationID) – AVG

+0

Спасибо! Теперь прочитайте об этом. Не совсем уверен, как реализовать это в этом сценарии, но я надеюсь, что ваш совет привел меня в правильном направлении. Мои инстинкты кишки говорили мне, что мой дизайн db может быть испорчен. С этой целью вы можете предположить, как может выглядеть моя форма отклонения? Сейчас у меня каждый самолет представлен как флажок в форме отклонения, причем каждый флажок заполняет базовую таблицу. Является ли это по-прежнему уместным или должно быть списком combobox/listbox, созданным из таблицы самолетов? В каком случае, как будет заполняться таблица AircraftDeviations? – tllewellyn

Смежные вопросы