Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Можно ли в запросе внутри выражения «In(“Item1”, “Item2”, …, “ItemN”)»
 
 автор: ser60   (07.03.2012 в 18:40)   личное сообщение
 
 

Можно ли в запросе внутри выражения «In(“Item1”, “Item2”, …, “ItemN”)» включать диапазоны типа выражения «In(“Item1”, “Item2”, “Item6” TO “Item12”, “Item16*” TO “Item21*”, “ItemN”). Если нет, то подскажите, как решить указанную задачу?

  Ответить  
 
 автор: snipe   (08.03.2012 в 06:35)   личное сообщение
 
 

вызывать функцию

например такую
Public Function fff(asd As String) As String
Dim dfg As Long
dfg = Nz(Replace(asd, "Item", ""), 0)
Select Case dfg
Case 0: fff = ""
Case 1 To 10: fff = "первая часть"
Case 11 To 20: fff = "вторая часть"
Case 21, 24, 27: fff="третья часть"
Case Else: fff = "четвертая часть"
End Select
End Function

  Ответить  
 
 автор: ser60   (09.03.2012 в 11:52)   личное сообщение
 
 

спасибо!

  Ответить  
 
 автор: snipe   (10.03.2012 в 07:18)   личное сообщение
 
 

Если исходить из того что In() в принципе анаголичен оператору OR (правда говорят что работает быстрее) то можно числа оставить в In а диапазоны вытащить отдельно
например так

SELECT CDbl(Replace([столбец],"Item","")) AS Поле
FROM Таблица1
WHERE (((CDbl(Replace([столбец],"Item",""))) In (1,3,5,7) Or ((CDbl(Replace([столбец],"Item","")))>=9 And (CDbl(Replace([столбец],"Item","")))<=12)));

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList