복붙노트

[SQL] MS 액세스에서 GROUP_CONCAT 기능이있다?

SQL

MS 액세스에서 GROUP_CONCAT 기능이있다?

GROUP_CONCAT의 함수 MS-액세스 또는 뭔가 비슷한 있는가?

해결법

  1. ==============================

    1.당신이 일반적인 솔루션이 필요한 경우 (또 다른 앨런 브라운입니다) 자신에게 물어해야 아니면 그냥 본 목적을 위해 필요합니다. 당신이 정말로 한 번만이 필요한 경우, 그것에게 쉬운 방법을.

    당신이 일반적인 솔루션이 필요한 경우 (또 다른 앨런 브라운입니다) 자신에게 물어해야 아니면 그냥 본 목적을 위해 필요합니다. 당신이 정말로 한 번만이 필요한 경우, 그것에게 쉬운 방법을.

    VBA 코드 목록을 연결하면 보조 노트에, 긴 시간 액세스 전문가 트레버 베스트 나에게 가르쳐 트릭을 활용하고,의 모든 가치의 시작 부분에 구분 기호를 부착 할 것을 다음 중간 ()를 사용하여 제거합니다 떨어져서. 대신 자식 레코드를 통해 루프 안쪽이의 :

      If Len(strOutput) = 0 Then
         strOutput = NewValue
      Else
         strOutput = strOutput & ", " & NewValue
      End If
    

    ... 루프 내부에 이것을 사용 :

      strOutput = strOutput & ", " & NewValue
    

    당신은 루프를 종료 할 때 ... 그리고, 선두 구분 기호를 벗겨 :

      strOutput = Mid(strOutput, 3)
    

    이 도처에 의미를 가지고 있으며, 컨텍스트의 전체 호스트에 연결하는 코드를 단순화합니다.

  2. ==============================

    2.하나 개의 값으로 그룹의 여러 값에 대한 액세스 기능있다 (사용자 정의 집계는 것 같아요.) 링크는 http://www.rogersaccesslibrary.com/Otherdownload.asp?SampleName='Generic%20Function%20To%20Concatenate%20Child%입니다 20Records '

    하나 개의 값으로 그룹의 여러 값에 대한 액세스 기능있다 (사용자 정의 집계는 것 같아요.) 링크는 http://www.rogersaccesslibrary.com/Otherdownload.asp?SampleName='Generic%20Function%20To%20Concatenate%20Child%입니다 20Records '

    하지만이 사이트는 지금 다운. 당신은 HREF 구글 경우 referneces 및 예제를 많이 찾을 수 있습니다.

  3. ==============================

    3.나는 주장이 당신이 원하는 일을 할 수 있도록하는 것이 듀안 Hookum (마이크로 소프트 MVP)에 의해이 게시물을 발견했다. 그래도 난 그것을 테스트하지 않았습니다.

    나는 주장이 당신이 원하는 일을 할 수 있도록하는 것이 듀안 Hookum (마이크로 소프트 MVP)에 의해이 게시물을 발견했다. 그래도 난 그것을 테스트하지 않았습니다.

    나는 그것을 발견하는 방법 그런데, 경우에 당신이 관심이, 이것은이다 :

    먼저 검색 : GROUP_CONCAT 접속이 답변이 게시물에 나를 인도하지만 링크가 부서졌다.

    그럼 대답은 링크를 시도했다는 내용 후 다시 검색하고, 그것을 발견 : 사이트 : HTTP : //www.rogersaccesslibrary.com/ 합칠.

  4. ==============================

    4.제 액세스는 GROUP_CONCAT 기능이 없습니다. 그러나, 당신은 SQL 문을 포함하는 문자열을 전달하고 동일한 기능을 얻을 수 있도록하는 VBA 함수를 만들 수 있습니다 (내가 추천 거라고하지를하지만이 가능합니다).

    제 액세스는 GROUP_CONCAT 기능이 없습니다. 그러나, 당신은 SQL 문을 포함하는 문자열을 전달하고 동일한 기능을 얻을 수 있도록하는 VBA 함수를 만들 수 있습니다 (내가 추천 거라고하지를하지만이 가능합니다).

    내 자신의 개인 뒤로 기계를 가지고 가서, 여기에 공룡이 지구를 지배했을 때 다시 쓴 일부 코드는 다음과 같습니다

    Public Function ListQuery(SQL As String _
                                , Optional ColumnDelimiter As String = " " _
                                , Optional RowDelimter As String = vbCrLf) As String
    'PURPOSE: to return a combined string from the passed query
    'ARGS:
    '   1. SQL is a valid Select statement
    '   2. ColumnDelimiter is the character(s) that separate each column
    '   3. RowDelimiter is the character(s) that separate each row
    'RETURN VAL:
    'DESIGN NOTES:
    
    Const PROCNAME = "ListQuery"
    Const MAXROWS = 100
    Const MAXCOLS = 10
    Dim oConn As ADODB.Connection
    Dim oRS As ADODB.Recordset
    Dim oField As ADODB.Field
    Dim sRow As cString
    Dim sResult As cString
    
    On Error GoTo ProcErr
    
    Set sResult = New cString
    Set sRow = New cString
    Set oConn = GetADOConn()
    
    sResult.Clear
    Do Until oRS.EOF
        sRow.Clear
    
        For Each oField In oRS.Fields
            With sRow
                If .Length > 0 Then
                    .Append ColumnDelimiter
                End If
    
                .Append Nz(oField.Value)
            End With
        Next oField
    
        sRow.Trim
        If sRow.Length > 0 Then
            With sResult
                .Append sRow
                .Append RowDelimter
            End With
        End If
    
        oRS.MoveNext
    Loop
    oRS.Close
    oConn.Close
    
    With sResult
        If .Right(Len(RowDelimter)).Value = RowDelimter Then
            .Length = .Length - Len(RowDelimter)
        End If
    End With
    
    FunctionResult:
        ListQuery = sResult.Value
    
    CleanUp:
        Set sResult = Nothing
        Set sRow = Nothing
        Set oField = Nothing
        Set oRS = Nothing
        Set oConn = Nothing
    
    Exit Function
    ProcErr:
        ' logging  code...
        Resume CleanUp
    
    End Function
    

    GetADOConn 함수는 현재 데이터베이스 연결을 검색하는 중앙 집중화 된 기능입니다. CString을은 .NET은 TLD 및 마케팅 과대 광고 이외 전에 모방 .NET의 StringBuilder 클래스의 동작 만이 긴 쓰여진하는 클래스입니다. 이것은 모든 행에서 호출하기 때문에, VBA이 내장되어있어 문자열 연결 StringBuilder 클래스가 필요한처럼 느리고, 따라서 뭔가 될 것입니다. (나는 부분적으로 수정 한) 원래 코드는 상수 모두에 대해 무엇 인 사용될 수 행과 열의 수에 모자를했다.

  5. from https://stackoverflow.com/questions/2852892/is-there-a-group-concat-function-in-ms-access by cc-by-sa and MIT license