2014-09-21 3 views
0

개인의 이니셜 (마지막, 처음)의 텍스트 상자 항목을 기반으로 계정 정보를 검색하는 SQL 문을 작성하려고합니다. 다음 문은 한 글자 만 입력하면 작동하지만 그다지 쓰지 않습니다.텍스트 상자의 이름과 성의 첫 번째 문자를 확인하는 SQL 문

'variable 
Dim strDataSource As String 
Dim connStr As String = "provider=Microsoft.Jet.OLEDB.4.0;" & _ 
    "Data Source = Chapter4.mdb" 

strDataSource = "SELECT CustID, LastName, FirstName " & _ 
     "FROM tblCustomers " & _ 
     "WHERE UCase(TRIM(LastName)) LIKE '" & UCase(Me.txtCustID.Text) & "%'" 

Dim dt As New DataTable 
Dim dataAdapter = New OleDb.OleDbDataAdapter(strDataSource, connStr) 

dataAdapter.Fill(dt) 
dataAdapter.Dispose() 

Me.dgvDisplay.DataSource = dt 

검색에 이름을 추가하는 방법을 알아낼 수 없습니다. 감사합니다

+0

where 절의 lastname과 너무 비슷한 firstname을 추가하거나 조건을 지정하십시오. – radar

답변

0

양식의 필드 이름을 모르지만 Rajesh가 제안하는 것은 다음과 유사합니다. 첫 번째 OR 성만 일치 시키려면 WHERE 절에서 AND 대신 OR을 사용하십시오.

strDataSource = "SELECT CustID, LastName, FirstName " & _ 
     "FROM tblCustomers " & _ 
     "WHERE UCase(TRIM(LastName)) LIKE '" & UCase(Me.txtCustID.Text) & "%'" _ 
     AND UCase(TRIM(FirstName)) LIKE '" & UCase(Me.txtFirstName.Text) 
+0

답변을 구성하십시오! 그것은 읽을 수 없습니다! – mybirthname

+1

실례합니다. 이제 수정되었습니다. – Trebor

+0

검색을 완료 할 수 있도록 1 문자 만 입력 할 수 있습니다. 첫 번째 및 마지막 두 문자는 모두 1 개의 텍스트 상자에 입력됩니다. 2 번째 문자를 입력하면 기록이 발견되지 않는다고 말하면서 – JBSAMOM

0

VB에서 언급해야합니다.

가정 :

그들이에 입력 한 첫 번째 문자는 성입니다.

그들이 입력하는 두 번째 문자는 이름입니다.

strDataSource = "SELECT CustID, LastName, FirstName " & _ 
    "FROM tblCustomers " & _ 
    "WHERE UCase(TRIM(LastName)) LIKE '" & UCase(Me.txtCustID.Text(0)) & "%'" 
IF Me.txtCustID.Text.Length > 1 THEN 
    strDataSource += " AND UCase(TRIM(FirstName)) LIKE '" &_ 
    UCase(Me.txtCustID.Text(1)) & "%'" 
END IF 
관련 문제