주어진 2 개의 테이블 (table_A, Table_B)이 있고
열에서 여러 값을 선택하는 하위 쿼리 또는 가능한 솔루션에 대한 도움이 필요합니다. TABLE_A.DESCRIPString
TABLE_A:
ID PARTNUM DESCRIPString
1 4456 121~134~111
2 4457 122~111
3 4458 122~134
4 4459 111
5 4460 121~134~111
크로스 매치 TABLE_B.DESCRIPID
TABLE_B:
ID DESCRIPID DECSRIPLong
1 121 Silver
2 122 Black
3 111 Mask
4 134 Pickle
그리고 마지막으로 다음을 표시합니다.
Table_AB
ID PARTNUM DESCRIPString PARTDESCRIP
1 4456 121~134~111 Silver~Pickle~Mask
2 4457 122~111 Black~Mask
3 4458 122~134 Black~Pickle
4 4459 111 Mask
5 4460 121~134~111 Silver~Pickle~Mask
나는 대부분의 사람들이 데이터베이스를 열당 단일 변수로 다시 실행하도록 권장하지만이 경우에는 수행 할 수 없다는 것을 알고 있습니다.
이 함수를 모듈에 놓고이 쿼리를 실행하십시오. 요청 된 결과를 제공해야합니다. 데이터 유형을 지정하지 않았으므로 함수에서 변형을 사용했습니다.
Public Function fnParseDescr(strWork As Variant) As String
Dim vEnd
Dim strTemp As String
Dim strLook As String
Dim strResult As String
strResult = ""
strWork = Trim(CStr(strWork))
Do While Len(strWork) > 0
If InStr(strWork, "~") = 0 Then
strLook = Trim(DLookup("[DESCRIPLong]", "TABLE_B", "[DESCRIPID] = CVar('" & strWork & "')"))
strResult = strResult & "~" & strLook
strWork = ""
Else
vEnd = InStr(strWork, "~") - 1
strTemp = Left(strWork, vEnd)
strLook = Trim(DLookup("[DESCRIPLong]", "TABLE_B", "[DESCRIPID] = CVar('" & strTemp & "')"))
strResult = strResult & "~" & strLook
strWork = Right(strWork, (Len(strWork) - (vEnd + 1)))
strTemp = ""
strLook = ""
End If
Loop
If Left(strResult, 1) = "~" Then strResult = Right(strResult, (Len(strResult) - 1))
fnParseDescr = strResult
Exit Function
End Function
SELECT ID,
PARTNUM,
DESCRIPString,
fnParseDescr([DESCRIPString]) AS PARTDESCRIP
FROM TABLE_A;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다