структура данных выглядит следующим образом:Неправильный порядок сортировки в списке полей
ID | Name | CID
---------------------------------
1 | x |
2 | a | 12
3 | a | 12
4 | c |
5 | x |
6 | [ |
Когда я выполняю обычные запросы
SELECT DISTINCT Name FROM table WHERE ISNull(CID_ID) ORDER BY Name; [1]
SELECT DISTINCT Name FROM table ORDER BY Name; [2]
я получить ожидаемый результат для [1] в MySQL CLI:
| Name
------------
| c
| x
| [
И для запроса [2]:
| Name
------------
| a
| c
| x
| [
Так моя проблема: Когда я открываю записей и привязать его к списку полей, порядок элементов перепутались. Подробно, набор данных с скобкой «[» помещается в верхнюю часть списка полей в форме MS-Access, но только когда я выполняю запрос [1].
Я получаю НЕ ожидаемый результат для [1]:
| Name
------------
| [
| c
| x
И для запроса [2]:
| Name
------------
| a
| c
| x
| [
Упрощенный VBA фрагмент кода выглядит следующим образом:
Dim dbs As DAO.Database
Dim rsSQL As DAO.Recordset
Dim strSQL As String
Set dbs = CurrentDb
strSQL = "SELECT DISTINCT Name FROM table WHERE ISNull(CID_ID) ORDER BY Name;"
Set rsSQL = dbs.OpenRecordset(strSQL, dbOpenSnapshot)
После того, как я поймал набор записей, я переопределяю набор записей t он список:
Set Me.ListNames.Recordset = oiManager.LoadDistinctName()
Дополнительная информация (1):
версия сервера: 5.6.16 MySQL Community Server (GPL)
Дополнительная информация (2):
| Name | Engine | Version | Collation
| ########## | InnoDB | 10 | utf8_general_ci
Дополнительная информация (3): Так что я создал два отдельных запросов доступа и обжигают их. В представлении datasheet я получаю «результат смены»: для запроса [1] он сверху, для запроса [2] скобка находится внизу. Это связанная таблица MySQL с подключением ODBC. Я играл с некоторыми свойствами таблицы, но без эффекта.
Затем я создал фиктивную таблицу в самом доступе, заполнил таблицу некоторыми значениями, и результат был последовательным: оба раза отображались сверху. Поэтому, на мой взгляд, несоответствие должно основываться на том, что я использую связанную таблицу MySQL.
Я использую:
- Microsoft Access 2013 (9.0.24172.951362)
- ODBC-драйвер 32-Bit, MySQL ODBC Driver 5.2 Unicode
Какую базу данных вы используете, mysql или доступ? –
Обновление: см. Нижнюю часть сообщения. – kn0x
Ваш образец вывода показывает, что два запроса Access несовместимы в их сортировке '[' сверху/снизу. Это действительно так? (Я не вижу этого в своих тестах.) Кроме того, что такое настройка сортировки в таблице MySQL? –