2015-02-11 2 views
0

У меня есть код, который подключается из MS Excel к базе данных Oracle, запрашивает DB и возвращает результаты.VBA to Oracle Несколько переменных в одной колонке

Все, что касается этой проблемы, работает правильно. Существует один столбец: Service_ID. Для этого есть три выпадающих списка, поскольку вы можете запросить несколько сервисов. Например. Сервис1 И Сервис2 И Сервис3.

Я определил service_id, как

C.SERVICE_ID || '-' || G.TYPE_ID AS SERVICE_ID 

И когда я запрашиваю

C.SERVICE_ID LIKE :cmbSelectServiceType 

Он находит службу и работает, как ожидалось. Однако, пытаясь найти Service2 и 3, у меня возникла проблема.

Я попытался:

C.SERVICE_ID || '-' || G.TYPE_ID AS SERVICE_ID2 
C.SERVICE_ID || '-' || G.TYPE_ID AS SERVICE_ID3 

Который не работает.

Я попытался также в WHERE (с и без вышеуказанных линий) cmbSelectService этого имя выпадающего списка в графическом интерфейсе Excel:

C.SERVICE_ID LIKE :cmbSelectServiceType 
AND C.SERVICE_ID LIKE :cmbSelectServiceType2 
AND C.SERVICE_ID LIKE :cmbSelectServiceType3 

Очевидно, что я обычно не работаю в этой области, Я просто помогаю и могу сделать что-то.

ответ

1

Попробуйте

C.SERVICE_ID LIKE :cmbSelectServiceType 
OR C.SERVICE_ID LIKE :cmbSelectServiceType2 
OR C.SERVICE_ID LIKE :cmbSelectServiceType3 

с вашим AND вы где запрашивая строки, где C.SERVICE_ID = :cmbSelectServiceType = :cmbSelectServiceType2 = :cmbSelectServiceType3 и я подозреваю, что в вашем три выпадающего списка выбрать три различных значения.

+0

Привет, большое спасибо. Все три выпадающих меню всегда будут иметь разные значения. Я хочу найти человека, у которого есть один, два или все три. Не 1 или 2 или 3, но 1 и 2, или 1 и 2 и 3, поэтому я не уверен в заявлении «OR» здесь. Я получаю сообщение об ошибке «SQL Command неправильно сформировано» в excel, но программа SQL (Golden) показывает ее как прекрасную. Между прочим, есть только один столбец для Service_ID, но несколько строк для каждого человека в нем и их службы. Если я удалю две строки для обслуживания 2 и 3, он отлично работает ... – RossC

+0

как вы решаете, хотите ли вы проверить только 1 и 2 или все три значения выпадающего списка? – mucio

+0

Пользователь будет выбирать 1, или 1 и 2, или 1 и 2 и 3 в основном. Там не будет никаких различий. Для любого значения, которое не выбрано, я передаю символ «%» и просматриваю все это. Если выбрано только Service1, нужно вернуть что-либо с 1, если 1 и 2, то будут возвращены все 1 и 2. – RossC

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