데이터 구조는 같습니다 나는 일반 쿼리를 수행 할 때잘못된 순서는
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의 커뮤니티 서버 (GPL)
추가 정보 (2) :
012 3,516,| Name | Engine | Version | Collation
| ########## | InnoDB | 10 | utf8_general_ci
추가 정보는 (3) : 그래서 나는 액세스에 두 개의 분리 된 쿼리를 생성하고 그들을 해고. 데이터 시트보기에서 나는 "스왑 된 결과"를 얻습니다. 쿼리 [1]의 경우 맨 위, 쿼리 [2]의 경우 맨 아래에 괄호가 있습니다. 그것은 ODBC 연결과 연결된 MySQL 테이블입니다. 나는 테이블 속성 중 일부를 가지고 놀았지만 효과가 없었다.
그런 다음 액세스 자체에 더미 테이블을 만들고 테이블에 값을 채우면 결과는 일관 적입니다. 두 시간 모두 맨 위에 표시됩니다. 그래서 제 의견으로는, 불일치는 연결된 MySQL 테이블을 사용하고 있다는 사실에 근거해야합니다.
내가 사용하고 있습니다 :
- 마이크로 소프트 액세스 2013 (9.0.24172합니다.951362)
- ODBC - 드라이버 32 비트, 당신의 결과를 재현 할 수 있었다
mysql 또는 액세스를 사용중인 데이터베이스는 무엇입니까? –
업데이트 : 게시물 하단을 참조하십시오. – kn0x
샘플 출력 결과 두 개의 Access 쿼리가 위/아래 정렬에서 [[]에 일관성이 없음을 보여줍니다. 그게 사실인가요? (필자의 테스트에서는이를 볼 수 없습니다.) 또한 MySQL 테이블의 데이터 정렬 설정은 무엇입니까? –