에 열 별칭을 사용하여 값을 취득 나는VBScript를 엑셀 ADO 연결 : 코드를 다음에 SQL 쿼리
objTempRecordset.Fields.Item(0).Value
는 그러나, 나는 SQL에 열 이름 별칭을 사용하려면 사용하는 엑셀에서 카운트를 얻을 수 있습니다. 즉
sSQL = "Select Count(*) AS RecCount FROM [NELimits$] A WHERE A.Type = 'A' AND A.ID = " &Chr(39) & "R001" & Chr(39)
내가 사용하여 결과를 얻으려면이 :
objTempRecordset.Fields.Item("RecCount").Value
또한 objTempRecordset.Fields.Item("_Count(*)_").Value
하지만
누군가가 나를 열 이름 별칭을 사용하는 방법을 알려 주시기 바랍니다 수있는 행운을 시도 이 경우에는?
참고 : 예컨대 "R001", "R002" 유형으로 값 : 엑셀 2 열 ID를 가지고
: 예컨대 "A", "B", "C"샘플 코드와 같은 값 공백, 특수 문자 (영숫자가 아닌)와 (쿼리 통합 문서에서 여기에 사용) ACE의 SQL 엔진, 원래 필드 이름, 열 별칭 또는 테이블 이름으로
sSQL = "Select Count(*) FROM [NELimits$] A WHERE A.Type = 'A' AND A.ID = " &Chr(39) & "R003" & Chr(39)
Sqlquery = sSQL
sFilePath = "C:\Temp\DataSheet.xlsx"
Dim objTempConnection : Set objTempConnection = CreateObject("ADODB.Connection")
Dim objTempRecordSet : Set objTempRecordSet = CreateObject("ADODB.Recordset")
Dim strPath
'Define constants for objTempRecordset
Const adOpenStatic=3
Const adLockOptimistic=3
Const adLockPessimistic=2
Const adCmdText = &H001
'Open connection
objTempConnection.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="& sFilePath &";Extended Properties=""Excel 12.0 Xml;HDR=YES"";"
objTempRecordset.ActiveConnection = objTempConnection
objTempRecordset.CursorType = adOpenStatic
objTempRecordset.LockType = adLockOptimistic
objTempRecordset.Open Sqlquery
If objTempRecordset.EOF Or objTempRecordset.BOF Then
msgbox "no record"
End If
msgbox "Record Count: "&objTempRecordset.RecordCount
msgbox "Value:" & objTempRecordset.Fields.Item(0).Value
그냥 ** 그 ** objTempRecordset.Fields.Item (0) .NAME ** 반환 ** Expr1000 ** 및 ** objTempRecordset.Fields.Item ("Expr1000"). 가치를 발견 올바른 값을 반환합니다. 그러나 ** Expr1000 **의 의미와 할당 방법을 잘 모르겠습니다. 엑셀 시트, 데이터 등이 달라지는지 확실하지 않으므로 별칭을 기반으로 데이터를 검색 할 수 있도록 별칭을 정의하는 방법이 필요합니다. – Yogesh
해결 방법 : ... "SELECT column_name ** As [ alias_name] ** FROM ... "SQL에서 문제가 해결되었습니다. 이 게시물 덕분에 : http://stackoverflow.com/questions/37466225/expr1000-error-when-performing-a-sum-on-a-sql-query-in-excel – Yogesh
확실합니까? objTempRecordset.Fields .Item ("RecCount"). Value'는 첫 번째 SQL 쿼리 (두 번째 코드 블록이 아닌)를 사용했다면 작동하지 않았습니다. 먼저 * ACE SQL 엔진이 제네릭 * Expr1000 *으로 할당하는 열 별칭 * RecCount *를 할당했지만 두 번째는 할당하지 않았습니다. – Parfait