Access 쿼리 결과를 Excel로 내보내는 작업을 자동화하고 싶습니다. 내 환경입니다 : Access 2007에서 Excel 2003으로의 내보내기 자동화 방법
- 액세스 할 수 있습니다.
쿼리에는 최대 512자를 포함 할 수있는 메모 열이 포함됩니다. 다음 복사/Excel로 결과 그리드를 붙여
실행 Access에서 쿼리
지금까지 나는 다음 시도했습니다. 이것은 잘 작동하지만 수동 단계가 필요합니다.
실행 다음과 같이 DoCmd.TransferSpreadsheet를 사용하여 쿼리를 수출 일부 VBA 코드 :
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "MyQuery", "MyFile.xls"
내가 가진 문제는 VBA 코드가 255 자 메모 열을 자릅니다 것입니다.
이 절단없이 Excel로 프로그래밍 방식으로 내보내려면 가장 쉬운 방법은 무엇입니까?
이상적으로 Access에서 Excel로 데이터를 밀어 넣고 싶습니다. 즉, Excel에서 "외부 데이터 가져 오기"를 사용하지 않았습니다.
편집의 의견과 지금까지 응답에 대응
:
당신이 메모 필드를 포함하는 테이블을 내보낼 수 있습니까?
어쨌든 그렇게 할 수 없으므로 테이블을 내보낼 수 없었습니다.
... 그것은
쿼리에 ORDER BY 절을 포함하지에 정렬과 같은 메모를 잘라 것들 중 하나는, 그래서 정렬이다 (그리고 정렬 할 필요가) 발생합니다. 그러나 메모 열에 정렬되어 있지 않습니다.
Left (MyMemo, 4096)와 같은 메모로 처리하면 피할 수 있습니다.
"Left (Replace (MemoColumn,"... ","... "), 512)와 같은 것을 사용하여 쿼리의 메모 열이 이미 처리되고 512 자로 잘립니다. Left (...)를 사용하면 도움이되지 않습니다.의 CopyFromRecordset 기능 내가 Range.CopyFromRecordSet하여 Excel 자동화를 사용하여 시도했다
를 사용
시도의 자동화. 이 경우 더 긴 메모 필드는 잘리지 않지만 끝 부분에 가비지 문자가 포함되어 내보내집니다.
메모 필드가 포함 된 테이블을 내보낼 수 있습니까? 쿼리에서 메모 필드의 잘림이 일반적인 문제이므로 메모가 테이블 내보내기에서 잘리는 경우 다른 문제입니다. – Fionnuala
메모의 글자 수 제한이 512자인 경우 검색어에서 문자열 열로 변환하여 내보낼 수 있는지 확인하십시오. 여기에 결과를 게시하십시오. – shahkalpesh
메모의 자르기와 같이 메모를 잘라내는 작업을 수행하는 경우에만 메모가 자릅니다. Memo를 Left (MyMemo, 4096)와 같이 처리하면 피할 수 있습니다. –