2009-07-27 2 views
1

나는 엑셀에서 SQL 쿼리를 실행하려고 내가 원하는 :열을 "정렬"하고 "열 이름을 쿼리에 포함"하는 방법?

1. 위해
2. 쿼리

에 열 이름을 포함 내 열 "Stationname"에 의해 쿼리 결과 지금은 열 이름없이 모든 열을 반환하고 있으며 최종 사용자는 그 열이 무엇인지 알지 못합니다.

누군가 도와주세요. 나는 붙어있다! 주문에 대한

strQuery = "select pipelineflow.lciid lciid, ldate, volume, capacity, status, " & _ 
     "pipeline, station, stationname, drn, state, county, owneroperator, companycode, " & _ 
     "pointcode, pointtypeind, flowdirection, pointname, facilitytype, pointlocator, " & _ 
     "pidgridcode from pipelineflow, pipelineproperties " & _ 
     "where pipelineflow.lciid = pipelineproperties.lciid " & _ 
     "and pipelineflow.audit_active = 1 " & _ 
     "and pipelineproperties.audit_active =1 " & 
_ 
     "and pipelineflow.ldate " & dtInDate & _ 
     "and pipelineproperties.stationname = '" & Stationname & "' " 

답변

0

그냥 쿼리의 끝에서

Order By stationname 

을 넣어 : 다음은 내 현재 코드입니다.

당신은 사용하여 열 이름을 반복 할 수 있습니다

rst(1).Name 

처음이 레코드이며, 숫자가 컬럼의 인덱스입니다.

1

질문의 파트 1에 대해 ORDER BY 절을 쿼리에 추가하십시오. 이 경우 : 역 이름으로 주문

2 부 : 열 이름이 쿼리에 포함되지 않는 이유를 모르십니까? 다음과 같이 열을 명시 적으로 지정할 수 있습니다 (예제 만 포함).

select mycolumn as "MyCustomizedColumnName" from mytable 

이렇게하면 원하는 열 이름을 지정할 수 있습니다. 그렇게 말하면 모든 열에 대해 그렇게 할 필요가 없어야하므로 귀하의 경우에 다른 일이 벌어지고있는 것으로 판단됩니다.


아마도 동적 SQL 대신 저장 프로 시저가 더 나은 런타임 성능을 제공한다고 추가해야합니다.

0

쿼리 결과를 정렬하려면 쿼리 끝에 'ORDER BY'을 사용하십시오. 쿼리의 마지막 줄은 다음과 같습니다.

"and pipelineproperties.stationname = '" & Stationname & "' " & _ 
"ORDER BY pipelineproperties.stationname" 

열 머리글은 쿼리 데이터에 반환되지만 Excel 워크 시트에는 자동으로 쓰여지지 않습니다. 아래의 코드 스 니펫은 레코드 세트의 열 머리글을 반복하여 활성 셀의 행에 쓰는 방법을 보여줍니다.

'rst'은 (는) 귀하의 레코드 세트를 나타내며, 필요에 따라 이름을 업데이트하십시오.

If Not rst.EOF Then 
    For x = 0 To rst.Fields.Count - 1 
    With ActiveCell.Offset(0, lcount) 
     .Value = rst.Fields(x).Name 
    End With 
    Next 
End If 

하면 워크 시트에 쿼리 결과를 작성할 때 그렇지 않으면 제목이 데이터로 덮어 쓰기됩니다 아래 현재 셀에서 오프셋 있는지 확인합니다.

Activecell.Offset(1,0).CopyFromRecordset rst 
관련 문제