2013-04-05 1 views
2

엑셀 스프레드 시트에 대한 액세스 db에서 데이터 내보내기를 시도하고 있습니다. 양식에 대한 onclick 이벤트를 코딩 할 때까지 모든 것이 부드러 웠습니다. 여기 코드는 다음과 같습니다Onclick Excel에서 쿼리 결과 내보내기

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "ReportQuery", "C:\helloworld.xlsx", True 

내가 점점 오전 오류는 '런타임 오류 3051'열거 나 파일에 쓸 수있는 Microsoft Access 데이터베이스 엔진은 ... 이미 다른 사용자가 독점적으로 열려 또는 당신은 권한이 필요하다 데이터를보고 쓴다.

엔진에 권한이 없다고 생각하는 것이 어렵습니다. 여기에 놓친 배경이나 설정이 있습니까?

+2

C : \에 파일을 만들 수있는 충분한 권한이 있습니까? 메모장을 여는 경우 "Hello"를 입력하고 'C : \ hello.txt'로 저장하려고하면 성공합니까? –

+0

액세스가 시작되는 사용자/프로세스의 권한으로 실행됩니다. 특별한 시스템 계정으로 실행되지 않습니다. – HansUp

+0

아. 내가 참조. 예. 그것이 문제였습니다. 네트워크 드라이브 경로를 시도하기 전에 C : \를 테스트 위치로 사용했습니다. 내 실수! 감사! –

답변

2

드라이브 C:의 루트 디렉터리에 쓸 수있는 충분한 권한이없는 것으로 보입니다. 테스트 할 때 항상 파일을 만들거나 업데이트 할 수있는 "안전한"위치 (예 : 문서 폴더)를 선택하십시오.

.xlsx 파일을 만들 때 acSpreadsheetTypeExcel12 대신 acSpreadsheetTypeExcel12Xml을 사용하면 더 나은 성공을 거둘 수 있습니다.

관련 문제