2012-12-21 6 views
0

내 시나리오는 병합 할 데이터가 들어있는 Access 데이터베이스에서 VBA를 실행하고 있다는 점을 제외하면 excel VBA to Automatically select Yes when prompted during mail merge에 설명 된 것과 유사합니다. 병합은 DDE 데이터 연결을 사용합니다. 이는 쿼리가 복잡한 것이고 ODBC에서 볼 수 없기 때문입니다. 나는 Computer-literate가 아닌 사람들이 사용할 Access 런타임 응용 프로그램에서 Word 편지 병합을 실행하려고하므로 불필요한 대화 상자와 혼동하지 않도록하고 싶습니다. 이전 질문에 대한 대답은 실제로 나를 위해 작동합니다. 쿼리를 열 수있는 프롬프트가 나타나지 않도록하고 그 밖의 모든 조치는 필요하지만 Merge는 프로 시저가 해당 쿼리를 성공하면 "no data source"오류를 반환합니다. . 줄을 실행하십시오. 쿼리 프롬프트가 실제로 표시되지 않지만 쿼리가 열리지 않은 것처럼 보입니다.쿼리 프롬프트없이 액세스에서 Word 2010 편지 병합 실행

' open the mail merge layout file 
objWord.Visible = True ' for now 
lngAlerts = objWord.DisplayAlerts 
objWord.DisplayAlerts = False 
objWord.Documents.Add strInFileName 
objWord.DisplayAlerts = lngAlerts 

With objWord.ActiveDocument.MailMerge 
    .MainDocumentType = 0 ' wdFormLetters 
    .Destination = 0 ' wdSendToNewDocument 
    .SuppressBlankLines = True 
    .Execute Pause:=False 
End With 

누구든지이 문제를 해결할 수 있습니까?

답변

0

대화 상자를 무시하면 마치 사용자가 아니오 버튼을 누른 것과 같습니다. Microsoft의 KB 기사 (http://support.microsoft.com/kb/825765

)를 참조하십시오. 즉, 기사에 설명 된 레지스트리 값을 설정할 수 없다면 코드가 다른 것보다 먼저 OpenDataSource 호출을해야합니다.

+0

나는 그것이 아마도 일어난 일이라고 생각했지만 인용 한 KB 기사를 찾지 못했습니다. 내 사용자의 시스템에서 레지스트리를 변경할 수는 있지만 (응용 프로그램이 '제대로 설치'되어 있고 설치 프로그램이 서명되어 필요한 권한으로 실행됩니다.) '글로벌 보안 설정을 변경하여 로컬 보안 설정을 변경하는 것이 적절하지 않다고 생각합니다. 문제. .OpenDataSource 방식을 시도했지만 대화 및 오류가 닥쳤다. 나는 그것을 더 조심스럽게보고 다시 시도 할 것입니다. – user1921922

+0

.OpenDataSource 호출을 다시 추가 : .OpenDataSource 이름 : = strPath & "NCMembership.accdb", LinkToSource : = True, 연결 : "QUERY qryIRSReport", SubType : = 8 'wdMergeSubTypeWord2000 다시 대화와 오류가 발생합니다. . 조금 더 읽은 후에는 쿼리 결과를 임시 (아마도 텍스트) 파일에 쓰고 Merge 소스 문서로 사용해야한다고 생각합니다. – user1921922

+0

예, 글로벌 보안 문제에 대해 알고 있습니다. 아쉽게도 Word 2010에는 .accdb에 대한 DDE 연결을 생성하는 VBA 구문이 없습니다. 적어도 필자는 결코 그것을 발견하지 못했습니다. .accdb의 이름을 .mdb로 바꾸는 것이 효과적이지만 대부분의 경우 실용적이지는 않습니다. (하지만 아마 당신의 DB에 링크되는 또 다른 .mdb에 쿼리를 넣으십시오 - 시도하지 않았을 수도 있고 아마 비실용적 일 수도 있습니다). 나는 하나의 다른 제안을 가지고 있을지도 모르지만 나는 그것을 조사 할 필요가있다. 그러나 문제는 다른 사람들이 당신과 같은 길을 택하는 것만으로도 충분합니다. –