Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 | 2 |

 

  Вопрос: Query не понимает в запросе like Добавлено: 27.06.08 05:45  

Автор вопроса:  Metronom
Захожу в Query при построении запроса ввожу данные поля содержат например "%Ленина%", выходит сообщение про синтаксическую ошибку. В режиме редактирования запроса тоже такая же ошибка.

Select * from Address
where street like '%Ленина%'

Видимо Query не нравится служебное выражение "like".
Точное соответствие = катит.
Как сделать так, чтобы Query понимало "like" ?

Ответить

  Ответы Всего ответов: 16  

Номер ответа: 1
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #1 Добавлено: 27.06.08 06:46
А так ?
Select * from Address
where street like '*Ленина*'

Ответить

Номер ответа: 2
Автор ответа:
 Metronom



Вопросов: 3
Ответов: 9
 Профиль | | #2 Добавлено: 27.06.08 08:29
Не получается. Любые символы в кавычках не понимает.
При построении условий прямо в Query все равно не понимает условие "содержит" / "похоже на"
Office 2003

Ответить

Номер ответа: 3
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #3 Добавлено: 27.06.08 08:48
Попробуй заменить * на названия полей. И ; в конце запроса поставить.

Ответить

Номер ответа: 4
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #4 Добавлено: 27.06.08 08:58
Когда =, выдает какие-то рез-ты или нет ? В таблице есть такая строка ? И такого типа (строкового) ?

Ответить

Номер ответа: 5
Автор ответа:
 Metronom



Вопросов: 3
Ответов: 9
 Профиль | | #5 Добавлено: 27.06.08 09:40
когда = все ищет. Поле есть и строкового вида. Придется через справочники строить запрос чтоли.

Ответить

Номер ответа: 6
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #6 Добавлено: 27.06.08 10:11
А что пишет ? Ругается на что-либо ?

Ответить

Номер ответа: 7
Автор ответа:
 Metronom



Вопросов: 3
Ответов: 9
 Профиль | | #7 Добавлено: 27.06.08 10:21
Когда через созданное ODBC соединение делаю запрос, отбираю таблицу, конструирую запрос мастером с условием street содержит Ленин, выходит сообщение без номера "Синтаксическая ошибка" и далее в "Просмотр и изменение данных в Microsoft Query" не допускает.
Потом делаю так, создаю просто запрос иду в "Просмотр и изменение данных в Microsoft Query", вхожу в конструктор вписываю в sql запрос where street like '%Ленин%' опять выходит то же окно без номера. ЗКБ

Ответить

Номер ответа: 8
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #8 Добавлено: 27.06.08 10:29
В Access-Tools-References нет пропущенных (Missing) библиотек ? У меня похожее было. В запросе ругался на Mid и Left.

Ответить

Номер ответа: 9
Автор ответа:
 Metronom



Вопросов: 3
Ответов: 9
 Профиль | | #9 Добавлено: 27.06.08 10:48
Какая библиотека может быть упущена? У меня на данный момент подключены:
Visual Basic For Applications
Microsoft Excel 11.0 Object Library
OLE Automation
Microsoft Office 11.0 Object Library
Microsoft DAO 3.6 Object Library
Microsoft ActiveX Data Object 2.8 Library

Последние 2 подключены от отчаяния. В ADO получается запрос. Отрабатываю. Но хотелось бы все таки узнать по Query, постоянно нужно

Ответить

Номер ответа: 10
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #10 Добавлено: 27.06.08 11:32
У меня прямо под списком подключенных библиотек писала "MISSING имя библиотеки". И кажется было выделено галочкой. Когда снимала отметку, все чудесным образом находилось и исполнялось.

Я вот так делаю. Вроде до этого работало всегда.
    Set dbsKRSPRS = OpenDatabase("Диск:\Каталог\ИмяБазы.mdb";)
  s = "SELECT Поле1, Поле2, Поле3 " & _
      "FROM MyTable " & _
      "WHERE (Поле1 Like 'Строка') " & _
      "ORDER BY MyDate;"
    Debug.Print s
    Set qSQL = dbsKRSPRS.CreateQueryDef("", s)
    Set rst_Well_KRS = qSQL.OpenRecordset()
    qSQL.Close

Естественно, с описание переменных. Если и были какие-то баги, то это уже я неправильно таблицу указывали или название поля и т.д.
Из дополнительных подключена только DAO библиотека.

Ответить

Номер ответа: 11
Автор ответа:
 Metronom



Вопросов: 3
Ответов: 9
 Профиль | | #11 Добавлено: 27.06.08 11:48
Мне кажется что в Excel 2003 идет нестыковка с языками. В References библиотека Visual Basic For Applications язык стоит English\Standart. Возможно мастер Query не правильно транслирует команды на сам VBA. Делаю поиск по включению английских букв - не работает. Т.е. проблема не в запрашиваемых данных, а в самом переводе сл.слова "содержит" на Like.
Либо Query не понимает Like

Ответить

Номер ответа: 12
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #12 Добавлено: 27.06.08 12:17
Переключила Office на русский. В конструкторе пишется все тот же Like. Что подразумевается под "в самом переводе сл.слова "содержит" на Like" ?
А библиотека Microsoft * 11.0 Object Library ? И DAO 3.6 ?

Ответить

Номер ответа: 13
Автор ответа:
 Metronom



Вопросов: 3
Ответов: 9
 Профиль | | #13 Добавлено: 27.06.08 12:35
Захожу в таблице Excel Данные\Импорт данных\Создать запрос... далее выбираю ODBC доступ к базе, вхожу выбираю таблицу начинаю выбирать столбцы для отбора, беру street. Справа составляю условие "содержит" в значении указываю Ленин, жму Далее, след.окно "Сортировка" жму далее, "Вернуть данные в Microsoft Office Ecxel" вот тут выходит сообщение "Синтаксическая ошибка". Выбираю нижнее "Просмотр или изменение данных в Microsoft Query" опять выходит сообщение об ошибке. Что то тут с языками не то видать.

Ответить

Номер ответа: 14
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #14 Добавлено: 27.06.08 13:08
Попробовала и с Like и с "содержит". Со * и с %. Работает.
:-( Извини, не знаю, чем еще помочь.

Ответить

Номер ответа: 15
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #15 Добавлено: 27.06.08 13:10
Последняя надежда. :-) А на английской версии Excel работает ?

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам