Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
7 / 8 / 0
Регистрация: 21.10.2018
Сообщений: 50

По поводу поиска в Access

21.10.2018, 10:18. Показов 1029. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема с поиском в Access через код формы. Текст запроса написал, на сортировку не обращал внимание (Сделал сортировку по первому пункту, ради проверки). Ошибка такая, что пропустил зарезервированное слово или напутал в синтаксисе, но ошибки не вижу, т.к., указывает на ошибку при попытке запуска этого запроса, а не в самом запросе. Все должно выводиться в листбокс. Очевидно, ошибка в SQLText. Если подобная тема была, приношу извинения, но таковую не нашел.


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
Private Sub CommandSeek_Click()
' Кнопка Поиск
Dim CountBuilding As Integer
' Количество зданий, попавших в запрос
If IsNull(ComboBoxSeekStreet.Value) Then
   ' Улица не имеет значения для пользователя
   SelectSeekStreet = 0
Else
   ' Номер улицы для поиска
   SelectSeekStreet = ComboBoxSeekStreet.Value
End If
If IsNull(txtSeekHouse.Value) Then
   ' Номер дома не имеет значения для пользователя
   SelectSeekHouse = 0
Else
   ' Номер дома для поиска
   ' Номер дома преобразован из
   ' строки символов в число
   SelectSeekHouse = Val(txtSeekHouse.Value)
End If
If IsNull(ComboBoxSeekDistrict.Value) Then
   ' Район не имеет значения для пользователя
   SelectSeekDistrict = 0
Else
   ' Номер района для поиска
   SelectSeekDistrict = ComboBoxSeekDistrict.Value
End If
' Порядок сортировки
SelectSort = OptionSort.Value
 
' Формирование строки запроса
' Основная часть строки
SQLText = "SELECT Order.OrderID, " & _
   "Order.FamilyName AS ФАМИЛИЯ,Order.Phone AS ТЕЛЕФОН, Order.FirstName AS ИМЯ,Order.SecondName AS Отчество, " & _
   "FROM Order " & _
   "Where Order.OrderID > 0 "
' Дополнительная часть строки
' содержит параметры выбора
If SelectSeekStreet <> 0 Or SelectSeekHouse <> 0 Or _
   SelectSeekDistrict <> 0 Then
   If SelectSeekStreet <> 0 Then
      ' Если выбрана улица
      SQLText = SQLText & " AND Order.OrderID =" & _
                SelectSeekStreet
   End If
   If SelectSeekHouse <> 0 Then
      ' Если введен номер дома
      SQLText = SQLText & " AND Order.OrderID =" & _
                SelectSeekHouse
   End If
   If SelectSeekDistrict <> 0 Then
      ' Если выбран район
      SQLText = SQLText & " AND Order.OrderID =" & _
                SelectSeekDistrict
   End If
End If
' Продолжение основной части строки - сортировка
Select Case SelectSort
Case 1  ' По адресу здания
  SQLText = SQLText & " ORDER BY Order.OrderID"
Case 2  ' По району города
  SQLText = SQLText & " ORDER BY Order.FamilyName"
Case 3  ' По площади земельного участка
  SQLText = SQLText & " ORDER BY Order.Phone"
Case 4  ' По году постройки
  SQLText = SQLText & " ORDER BY Order.Phone"
End Select
' Устанавливаем свойства для поля со списком зданий
' Тип источника данных (Таблица или Запрос)
' Для .ACCDB
' ListBox.RowSourceType = "Table/Query"
' Для .ADP
' ListBox.RowSourceType = "Table/View/StoredProc"
 
' Источник данных поля
ListBox.RowSource = SQLText
' Подсчет количества зданий, попавших в запрос
CountBuilding = CountQuery(SQLText)
If CountBuilding = 0 Then
   ' В запросе нет записей
   MsgBox "Зданий, отвечающих условиям вашего " & _
       "запроса, в базе нет. Повторите запрос, " & _
       "изменив требования.", _
       vbOKOnly + vbExclamation, "Внимание"
   ' Возврат на первую вкладку
   ' для повторения запроса
   Exit Sub
End If
' Изменение надписи внизу второй вкладки
 CountRecords.Caption = _
    "Количество зданий, попавших в запрос: " & _
     Str(CountBuilding)
' Выделение первой записи объекта "Поле со списком"
ListBox.Selected(1) = True
' Вторая вкладка видима
Page2.Visible = True
' Переход на вторую вкладку
Page2.SetFocus
End Sub
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.10.2018, 10:18
Ответы с готовыми решениями:

Нужен вам совет по поводу будущего поиска работы
Учусь на втором курсе специальности Информационные Системы. Имею базовые знания Java и C++. Так вот хотелось бы спросить у вас, какой язык...

Access по поводу учёта
Подскажите пожалуйста как мне сделать сортировку по количеству пользователей на фильме... а точнее как мне сделать следующее: у меня есть...

По поводу Delphi и Access
Вопрос такой. Есть таблица типа: id|тип|название| 0|1|один| 1|1|два| 2|2|три| 3|1|четыре| И есть два листбокса. Как...

11
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,941
Записей в блоге: 4
21.10.2018, 10:47
ошибку в коде удобнее искать при наличии примера базы
1
7 / 8 / 0
Регистрация: 21.10.2018
Сообщений: 50
21.10.2018, 10:51  [ТС]
Ну пример то есть, но при попытке замены того кода на свой, происходит это. Но понять в чем конкретно ошибка не могу. Дело может быть даже в пробеле или лишнего синтаксического знака. Но ошибка точно в SQLText. Если требуется могу прикрепить, пример базы, или свою базу( но она не подобающем виде)
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,941
Записей в блоге: 4
21.10.2018, 10:54
без примера базы ошибку никто искать не будет(может у вас ошибка в имени поля)
базу надо зазиповать (до 10мб)
1
7 / 8 / 0
Регистрация: 21.10.2018
Сообщений: 50
21.10.2018, 10:57  [ТС]
Хорошо, тогда прилагаю 2 файла. Real Estate - пример. Нынешняя работа - мое.
Вложения
Тип файла: rar 81 Стикалович 4.rar (1.55 Мб, 9 просмотров)
0
7 / 8 / 0
Регистрация: 21.10.2018
Сообщений: 50
21.10.2018, 11:07  [ТС]
Извиняюсь, забыл про иконки
Вложения
Тип файла: rar 81 Стикалович 4.rar (4.86 Мб, 13 просмотров)
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,941
Записей в блоге: 4
21.10.2018, 11:35
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Set rsCount = New ADODB.Recordset    ' Создание набора
With rsCount
     ' Задание свойств объекта rsCount (Recordset)
     ' Источник: SQL-конструкция
     .Source = SQLText
     Debug.Print SQLText
     '''ЕСЛИ БЫ ДОБАВИЛИ СТРОКУ ОТЛАДКИ, ТО УВИДЕЛИ БЫ
     '''''ЛИШНЮЮ ЗАПЯТУЮ ПЕРЕД СЛОВОМ FROM
     ''SELECT Order.OrderID, Order.FamilyName AS ФАМИЛИЯ,
     ''Order.Phone AS ТЕЛЕФОН, FROM Order Where Order.OrderID > 0
     ''AND Order.FamilyName =1 ORDER BY NAME, SIGN, HOUSE
Добавлено через 10 минут
также вы явно переусердствовали в использовании зарезервированных слов в личных целях
SQL
1
2
3
SELECT ORDER.OrderID, ORDER.FamilyName AS ФАМИЛИЯ, ORDER.Phone AS ТЕЛЕФОН
 FROM [ORDER] WHERE ORDER.OrderID > 0  AND ORDER.FamilyName =2
 ORDER BY [NAME], [SIGN], [HOUSE]
полей [NAME], [SIGN], [HOUSE] нет в таблице [Order]
2
7 / 8 / 0
Регистрация: 21.10.2018
Сообщений: 50
21.10.2018, 12:24  [ТС]
Вы не могли бы указать точное место ошибки?

Добавлено через 19 минут
По поводу Order By не стоит волноваться. У меня базовый поиск не работает. А сортировка уже потом. Также не очень понимаю, в каком месте переусердствовал в использовании зарезервированных слов, т.е. каким образом требуется переписать данный код, не могли бы вы подсказать?

А то бьюсь уже больше 2 месяцев с определенной периодичностью, но не могу понять в чем дело.

Добавлено через 7 минут
Но на всякий случай поправил сортировку, хотя бы для 1 из 4 пункта сортировки.


P.S База не вся переделана из примера, поэтому имеются остаточные строки прошлого кода.
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
21.10.2018, 12:31
Цитата Сообщение от Rembon Посмотреть сообщение
точное место ошибки?
Visual Basic
1
2
3
4
SQLText = "SELECT OrderID, " & _
          "Phone AS ТЕЛЕФОН, FirstName AS ИМЯ, SecondName AS Отчество " & _
          "FROM Order " & _
          "WHERE OrderID > 0 "
После Отчество стояла ненужная запятая.
1
7 / 8 / 0
Регистрация: 21.10.2018
Сообщений: 50
21.10.2018, 12:41  [ТС]
Да, действительно. Но теперь, обнаружилась другая проблема. Ошибка так же в синтаксисе From, но видимо не тексте запроса. Но нигде больше нет From, кроме как в этом запросе.

Ранее сталкивался с этим, подозревая, что проблема все еще в запросе. Возможно так и есть.
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
22.10.2018, 09:02
разве что Order

https://support.office.com/ru-... 3f8f07cfc8
0
7 / 8 / 0
Регистрация: 21.10.2018
Сообщений: 50
22.10.2018, 10:44  [ТС]
Да, ошибку обнаружил сам. Поскольку Order - зарезервированное слово, а в моем случае это название таблички, то после слова FROM он видит не источник, а ничего). Собственно все. Всем спасибо <3
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.10.2018, 10:44
Помогаю со студенческими работами здесь

Немогу понять некоторые моменты по поводу поиска цифровых каналов
Помогите разобраться и правильно ли я всё сделал... В общем приобрёл я приставку к телевизору для поиска цифровых каналов. Приставка...

Access по поводу запроса по периоду
Подскажите пожалуйста как сделать запрос по периоду... допустим есть фильмы выпущеные в 1997 году и 2012, как сделать вывод запроса чтобы...

По поводу взаимодействия Excel и Access
Вопрос такой: возможно ли, открыв Excel из Access, запустить макрос Excel из личной книги макросов??? Если можно, то как? Заранее...

По поводу оптимизации, поиска КЗ и моей глупости. Мой первый ассемблер на авр
И так, есть atmega128 который програмирую на assembler. Есть очень много готовых плат, в которых нет елементов, но есть выходы(условно...

пару вопросов по поводу форм в Access
Всем здрасте! У меня накопилось пару вопросов по поводу форм в Access. 1.Можно ли както все запросы, которые выполняються при нажатии...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru