>

상점 번호 열에 숫자와 텍스트가 모두 포함 된 데이터 테이블이 있습니다. VBA에서 ADODB 객체를 통해 sql을 사용하여 열의 상점 번호 목록을 가져와야합니다. 다음을 사용하여 ADODB를 설정하고 있습니다.

문제 : 쿼리가 먼저 숫자에 도달하면 필드는 숫자로 취급되고 텍스트는 무시됩니다. 텍스트가 먼저 맞으면 숫자가 무시됩니다.

ADODB를 설정하기 위해 다음을 사용하고 있습니다. 이들은 워크 시트 모듈 힌트 me. 에 있습니다. .

Public Function Query(qry As String) As ADODB.Recordset
Dim cn As ADODB.Connection '* Connection String
Dim rs As ADODB.Recordset '* Record Set
Dim sQuery As String '* Query String
Dim FileName As String
On Error GoTo QryErr
Set cn = New ADODB.Connection
FileName = ThisWorkbook.Path & "\" & ThisWorkbook.Name
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FileName & _
    ";Extended Properties=Excel 8.0;Persist Security Info=False"
cn.ConnectionTimeout = 40
cn.Open
Set rs = New ADODB.Recordset
Select Case LCase(qry)
    Case "dry": sQuery = SQLDry
    Case "frz": sQuery = SQLFrz
    Case "fsh": sQuery = SQLFsh
    Case "temp": sQuery = SQLTemp
    Case Else: GoTo QryErr
End Select
rs.ActiveConnection = cn
rs.Source = sQuery
rs.Open
Set Query = rs
If Not rs Is Nothing Then Set rs = Nothing
If Not cn Is Nothing Then Set cn = Nothing
QryErr:
If Err <> 0 Then
Debug.Assert Err = 0
MsgBox Err.Description
End If
End Function

SQL 부분에 대해 다음과 같은 내용이 있습니다.

Private Function SQLTemp() As String
Dim Name As String
Name = Me.Name
SQLTemp = "SELECT str([" & Name & "$].Store) as Store " & _
"FROM [" & Name & "$] " & _
"GROUP BY [" & Name & "$].Store"
End Function

알다시피 필드를 str ()로 변환하려고 시도했지만 도움이되지 않습니다.

모든 값이 반환되도록 열을 텍스트로 처리하는 쿼리를 얻는 방법은 무엇입니까? '모든 숫자 앞에'를 두지 마십시오.

  • 답변 # 1

    5 년 전에 물었다! 나는 같은 문제가 있었다. 나를위한 해결책은 문제가되는 열의 데이터 유형 ( "특수 문자"및 "TEXT"데이터 유형이있는)을 "VARCHAR"로 변경하거나 쿼리에서 특수 문자를 제거하거나 다음과 같은 방법으로 CharacterSet을 변경할 수 있습니다 @Tim Williams가 제안한 Schema.ini (msdn.microsoft.com/en-us/library/ms709353 (v = vs.85) .aspx)

  • 이전 python - denomiator에서 제곱근으로 sympy fraction을 만드는 방법은 무엇입니까?
  • 다음 windows - 의 NetworkInterface를 사용하면 현재 연결 이름을 가져올 수 및 VPN의 IP