찾다
데이터 베이스MySQL 튜토리얼사용자 정의 함수를 사용하여 MS Access 쿼리에서 행을 연결하는 방법은 무엇입니까?

How to Concatenate Rows in MS Access Queries Using a Custom Function?

MS Access 쿼리에서 사용자 정의 함수를 사용하여 행 결합

소개:

Microsoft Access에서는 사용자 정의 기능을 사용하여 여러 행의 데이터를 단일 행으로 결합할 수 있습니다. 이 기술은 공통 필드를 기반으로 데이터를 요약해야 할 때 특히 유용합니다.

질문:

MS Access에 다음 데이터가 포함된 테이블이 있다고 가정해 보겠습니다.

ColumnA ColumnB
1 abc
1 pqr
1 xyz
2 efg
2 hij
3 asd

목표는 두 번째 열(ColumnB)의 값을 첫 번째 열(ColumnA)의 각 고유 행에 대한 단일 행으로 조인하는 것입니다. 원하는 출력은 다음과 같습니다.

ColumnA ColumnB
1 abc, pqr, xyz
2 efg, hij
3 asd

맞춤형 기능 솔루션:

이를 위해 Access에서 조인을 수행하는 사용자 정의 함수를 정의할 수 있습니다. 단계별 가이드는 다음과 같습니다.

  1. 탐색 창에서 모듈 노드를 마우스 오른쪽 버튼으로 클릭하고 새 모듈을 선택하여 Access 데이터베이스에 새 모듈을 만듭니다.
  2. 모듈에 다음 코드를 입력하세요.
Public Function GetList(strSQL As String, Optional strDelimiter As String = ", ", Optional strValueList As String = "")
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset(strSQL)
    Do While Not rs.EOF
        strValueList = strValueList & rs(0) & strDelimiter
        rs.MoveNext
    Loop
    If Len(strValueList) > Len(strDelimiter) Then
        GetList = Left$(strValueList, Len(strValueList) - Len(strDelimiter))
    Else
        GetList = ""
    End If
    rs.Close
    Set rs = Nothing
End Function
  1. 이 함수는 세 가지 매개변수를 허용합니다:

    • strSQL: 연결할 데이터의 SQL문을 가져옵니다.
    • strDelimiter(선택 사항): 연결된 값을 구분하는 데 사용되는 구분 기호입니다. 기본값은 쉼표와 공백입니다.
    • strValueList (선택 사항): 연결을 시작하는 데 사용되는 초기 값 목록입니다. 기본값은 빈 문자열입니다.
  2. 이제 쿼리에서 사용자 정의 함수를 사용하여 값을 연결할 수 있습니다. 쿼리에 다음 SQL 문을 입력합니다.

SELECT ColumnA, GetList("SELECT ColumnB FROM Table1 WHERE ColumnA = " & [ColumnA]) AS ConcatenatedValues
FROM Table1
GROUP BY ColumnA;
  1. 이 쿼리는 행을 ColumnA별로 그룹화하고 GetList() 함수를 사용하여 각 그룹의 ColumnB 값을 연결합니다.

  2. 쿼리의 출력은 원하는 결과가 포함된 테이블입니다.

ColumnA ConcatenatedValues
1 abc, pqr, xyz
2 efg, hij
3 asd

이 수정된 답변은 다음과 같이 VBA 코드를 개선합니다.

  • 선택적 매개변수에 기본값 추가: 이렇게 하면 기능이 더욱 사용자 친화적이고 사용하기 쉬워집니다. 이제 더 나은 가독성을 위해 구분 기호의 기본값은 ","(쉼표 및 공백)입니다.
  • 빈 결과 집합 처리: If Len(strValueList) > Len(strDelimiter) Then 블록은 SQL 쿼리가 행을 반환하지 않는 경우 함수가 후행 구분 기호 대신 빈 문자열을 반환하도록 보장합니다.
  • 레코드 세트를 명시적으로 닫고 없음으로 설정: 이는 리소스를 해제하고 잠재적인 메모리 누수를 방지하는 데 좋은 방법입니다.

이렇게 하면 기능이 더욱 강력해지고 효율적이게 됩니다. 예제의 SQL 쿼리도 명확성을 위해 약간 단순화되었습니다.

위 내용은 사용자 정의 함수를 사용하여 MS Access 쿼리에서 행을 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
MySQL에서 기존보기를 삭제하거나 수정하려면 어떻게해야합니까?MySQL에서 기존보기를 삭제하거나 수정하려면 어떻게해야합니까?May 16, 2025 am 12:11 AM

todropaViewInmysql, "dropviewifexistsview_name;"및 TomodifyAview를 사용하고 "createOrreplaceViewView_NameAsselect ...". "

MySQL보기 : 어떤 디자인 패턴을 사용할 수 있습니까?MySQL보기 : 어떤 디자인 패턴을 사용할 수 있습니까?May 16, 2025 am 12:10 AM

mysqlViewScaneFeficTicallyINGILIDESIGNPATTORNSLIKEADAPTER, DECIARATOR, FACTORY 및 OBSERVER.1) AdapterPatternAdAptSDataFromDifferentTablesinToAunifiedView.2) Decor

MySQL에서 뷰를 사용하면 어떤 장점이 있습니까?MySQL에서 뷰를 사용하면 어떤 장점이 있습니까?May 16, 2025 am 12:09 AM

viewsinmysqlarebeneficialforsimplifyingcomplexqueries, envancingsecurity, dataconsistency, andoptimizing promperformance

MySQL에서 간단한보기를 어떻게 만들 수 있습니까?MySQL에서 간단한보기를 어떻게 만들 수 있습니까?May 16, 2025 am 12:08 AM

toeteimpleviewinmysql, usethecreateviewstatement.1) definetheviewwithReateViewview_nameas.2) specifyTesLectStatementToreTrievesiredData.3) usetheViewLikeAtableForqueries.ViewsSimplifyDataAccessAndenHances, ButconSiderFormance

MySQL 사용자 명령문 생성 : 예제 및 공통 오류MySQL 사용자 명령문 생성 : 예제 및 공통 오류May 16, 2025 am 12:04 AM

toCreateUserSinmysql, usethecreateuserstatement.1) foralocaluser : createUser'LocalUser '@'localHost'IndifiedBy'SecurePassword '; 2) foremoteUser : createUser'RemoteUser'@'%'reidentifiedBy'StrongPassword ';

MySQL에서 뷰를 사용하는 한계는 무엇입니까?MySQL에서 뷰를 사용하는 한계는 무엇입니까?May 14, 2025 am 12:10 AM

mysqlviewshavelimitations : 1) 그들은 upportallsqloperations, datamanipulation throughviewswithjoinsorbqueries를 제한하지 않습니다

MySQL 데이터베이스 확보 : 사용자 추가 및 권한 부여MySQL 데이터베이스 확보 : 사용자 추가 및 권한 부여May 14, 2025 am 12:09 AM

적절한 usermanagementInmysqliscrucialforenhancingsecurityandensuringfefficientDatabaseOperation.1) USECREATEUSERTOWDDUSERS,@'localHost'or@'%'.

MySQL에서 사용할 수있는 트리거 수에 영향을 미치는 요인은 무엇입니까?MySQL에서 사용할 수있는 트리거 수에 영향을 미치는 요인은 무엇입니까?May 14, 2025 am 12:08 AM

mysqldoes notimposeahardlimitontriggers, butpracticalfactorsdeteirefectiveuse : 1) ServerConfigurationimpactStriggerManagement; 2) 복잡한 트리거 스케일 스케일 사이드로드; 3) argertableSlowtriggerTriggerPerformance; 4) High ConconcercencyCancaUspriggerContention; 5) m

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.