홈>
상점 번호 열에 숫자와 텍스트가 모두 포함 된 데이터 테이블이 있습니다. 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
관련 질문
- VBA 오류의 SQL: 각 GROUP BY 표현식에는 외부 참조가 아닌 열이 하나 이상 포함되어야 합니다.
- Excel 명명된 범위를 SQL 데이터베이스로 가져오기
- excel : 다른 워크시트의 데이터를 기반으로 테이블의 행 삭제
- excel : 셀이 비어 있지 않아도 이 code는 셀을 비어 있는 것으로 보고 있습니다.
- VBA Excel을 사용하여 cmd를 명령하는 방법은 무엇입니까?
- excel : 리본 강제 새로 고침
- excel : VBA에서 문자열을 찾고 그 오른쪽에 있는 숫자 값을 얻는 방법
- excel : VBA 피벗 테이블 생성이 갑자기 작동을 멈췄습니다.
- Excel VBA에서 열에서 키워드 찾기 및 다른 열 편집
- excel : 날짜 선택기 문제 -월요일 -첫 번째 평일
5 년 전에 물었다! 나는 같은 문제가 있었다. 나를위한 해결책은 문제가되는 열의 데이터 유형 ( "특수 문자"및 "TEXT"데이터 유형이있는)을 "VARCHAR"로 변경하거나 쿼리에서 특수 문자를 제거하거나 다음과 같은 방법으로 CharacterSet을 변경할 수 있습니다 @Tim Williams가 제안한 Schema.ini (msdn.microsoft.com/en-us/library/ms709353 (v = vs.85) .aspx)