나는 VBA 및 ADODB의 도움으로 Excel에서 검색하는 액세스 데이터베이스를 가지고 있습니다.둘 이상의 열에서 검색
완벽하게 작동하지만 한 번에 한 가지만 검색 할 수 있습니다. 열 [2]의 "성"이있는 [1] 열에서 "이름"의 모든 인스턴스를 검색하려고한다고 가정 해보십시오. 또는 컬럼 [1]의 "first name"과 컬럼 [3]의 "address".
사용자 폼의 텍스트 상자에서 어떻게 처리할까요?
"Firstname + Lastname"등을 추가하려고 생각했지만 코드의 논리를 파악할 수 없습니다. 어떤 제안?
이것은 내가 지금 가지고있는 것입니다. 제안에 대한
Private Sub cmd_lookup_Click()
Dim cn As Object
Dim rs As Object
Set cn = CreateObject("ADODB.Connection")
Set sqlConnect = New ADODB.Connection
Set rs = CreateObject("ADODB.RecordSet")
sqlConnect.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Source\database.accdb;Persist Security Info=False;"
cn.Open sqlConnect
rs.ActiveConnection = cn
SearchCriteria = "%" & searchCrit.Text & "%"
rs.Open "SELECT [1],[2] ,[3],[4], [5] FROM [tblDatabase]" & _
"WHERE [1] LIKE '" & SearchCriteria & "' " & _
" OR [2] LIKE '" & SearchCriteria & "' " & _
" OR [3] LIKE '" & SearchCriteria & "' " & _
" OR [4] LIKE '" & SearchCriteria & "' " & _
" OR [5] LIKE '" & SearchCriteria & "' " & _
"ORDER BY [2] Desc;", _
cn, adOpenStatic
Dim i As Integer
If Not rs.EOF Then
rs.MoveFirst
i = 0
With lstLookup
'Code not relevant
End With
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
End If
End Sub
감사합니다 :)
이렇게하는 방법에는 여러 가지가 있습니다. 나는 정보를 입력하기 위해 사용자 폼을 사용하는 경향이있다. 그런 다음 해당 입력을 변수로 저장하십시오. 비어있는 것들을 생략하기 위해서 그것은 어떤 조건부 로직 (If If If If If If If)을 요구할 것입니다. 원하는 출력을 알지 못하면 구체적으로 말하기 어렵습니다. – Kyle
을 사용하면 where 문을 동적으로 OR을 포함하여 AND 또는 OR을 포함하여 동적으로 작성할 수 있습니다. 합병증은 gui와 매개 변수가 될 것이고 언제 AND 또는 OR가 될지 식별 할 수 있습니다. 그러나 AND/OR에 대해 드롭 다운 목록이나 체크 박스를 사용하고 SQL 문을 작성할 때이 값을 사용하면됩니다. – Matt
여러 입력 상자가 있습니까? 양식에? 예를 들어, 세 개의 상자가있는 경우 이들을 채울 수 있습니다. 그런 다음 해당 값으로 쿼리에 AND 문을 추가하면됩니다. 상자가 비어 있으면 빈 문자열 대신 와일드 카드를 삽입 할 수 있습니다. – SandPiper