2016-09-22 2 views
1

나는 테이블 내의 열을 기반으로 결과를 필터링 한 다음 쿼리를 기반으로 결과를 알려주는 액세스 2010 검색 상자를 만들었습니다.여러 항목 조회 텍스트 상자

나는 하나의 항목을 한 번에 검색 상자에 넣을 수 있지만 여러 항목을 넣을 수 있습니다. 이것은 내가 관리하는 라우터의 전체 재산을위한 것이며, 매일 상태 확인이 필요한 라우터 목록을 얻습니다. 그래서 지금 내가하고있는 일은 검색 상자에 각 라우터 이름을 복사하여 붙여 넣으면서 상태가됩니다 , 위치 및 회선 심판하지만 내가 원하는 모든 복사 및 붙여 넣기 라우터 이름을 붙여 넣기하고 각 라우터에 대한 독립적 인 결과를 얻으려면 어떻게하고 싶어요.

내가 텍스트 상자에 필터에 적용한 코드입니다 : 내가 더 많은 텍스트 상자를 추가하고이 그들에게 필터를 적용 할 수

Where Condition = [Circuit Reference] Like "*" & [Forms]![Query1]! [Text12] & "*" 

하지만 난 여전히 복사 모든 라우터를 붙여 넣기 할 것 독립적으로 이름.

나는 접근 전문가가 아니기 때문에이 질문이 너무 쉽게 대답 할 수 있지만 사과 할 수는 없다.

+0

왜 필터로 콤보 박스를 사용하지 않습니까? 테이블에 모든 라우터 참조가 있으면 좋은 방법입니다. – LostReality

+0

내가 트릭을 할 생각은 @LostReality 내가 20 라우터 이름을 복사하여 붙여 넣을 수 있고 각각의 양식 내에서 독립적 인 결과를 얻을 수 있어야합니다. –

+0

"독립"결과는 무엇을 의미합니까? 그들은 모두 와일드 카드 검색이 필요합니까? 어떤 종류의 문자열을 붙여 넣으시겠습니까? 쉼표로 구분, 공백, 새 줄, 탭? – Brad

답변

2

동일한 필드에서 여러 개의 와일드 카드 검색을하는 것처럼 들립니다. SQL 쿼리에서 OR을 사용하여이 작업을 수행 할 수 있습니다.

Dim strSearchConditions As String 
Dim strTerms() As String 
Dim strSQL As String 
Dim i as Integer 

strSearchConditions = "" 

strTerms = Split(Me.txtSearch,",") 'Assuming you separate your search terms with a comma 

For i = 0 To UBound(strTerms) 
    If Not strTerms(i) = "" Then 
     strSearchConditions = " OR [Circuit Reference] Like '*" & strTerms(i) & "*'" 
    End If 
Next i 

If Not strSearchConditions = "" Then 
    strSQL = "Select * FROM tblMyTable WHERE 1=1 AND (" & strSearchConditions & ")" 
Else 
    MsgBox "No search terms!" 
End If 
+0

나는 여러 와일드 카드를 원하지만 용어는 쉼표로 구분되지 않을 것입니다, 그들은 각각 새로운 행에 와서 각 와일드 카드 검색의 결과가 양식에 나타나야합니다. 더 잘 설명하려면 20 개의 다른 라우터 이름을 각기 다른 텍스트 줄에 입력하고 싶습니다. 그리고 "find"버튼을 눌렀을 때 router1의 "호스트 이름", "상태"및 "대역폭"을 표시하는 양식이 필요합니다. 그 다음에 나는 router2와 같은 결과가 필요하지만 ... ... 지금은 한 번에 한 항목 씩 결과를 얻고 있습니다. –

+2

위의 솔루션에서 'Split' 기능을 제외하고는 아무 것도 바뀌지 않습니다. 쉼표 대신 줄 바꿈을 찾으십시오. 위의 코드에서 ","를 Chr (13) & Chr (10), vbCrLf 또는 vbNewLine (따옴표 제외)으로 바꾸십시오. – SunKnight0