2016-06-17 7 views
2

У меня есть унаследованное приложение Access 2003, которое было запущено в Wondows 7. Я решил конвертировать в Access 2016, чтобы он продолжал работайте в Windows 10, если нам когда-нибудь понадобится заменить одну из наших нынешних машин Windows 7, и доступна только Windows 10. Он в значительной степени полностью преобразуется, за исключением одной из его функций, отправки факсов.Отправка факса в Access 2016 на Windows 10 (факс-сервер использует Windows Server 2003)

Наш факс-сервер - это компьютер Windows Server 2003, и, как я уже сказал, я запускаю свое приложение в Access 2016 на компьютере под управлением Windows 10.

Это мой факс код:

Public Sub SendFax(RptName, faxNumber, faxName) 

Dim FS As New FAXCOMEXLib.FaxServer 
Dim FD As New FAXCOMEXLib.FaxDocument 
Dim strComputerName As String 
Dim strFile As String 

strComputerName = "server08" 
strFile = "C:\Reports\test.snp" 
DoCmd.OutputTo acOutputReport, RptName, acFormatSNP, strFile, False 
DoCmd.Close acReport, RptName 

FS.Connect (strComputerName) 
FD.Body = strFile 

FD.CoverPageType = fcptNONE 

FD.DocumentName = "Test" 
FD.priority = fptHIGH 

'FD.Recipients.Add USCanonicalPhone(faxNumber), faxName 
FD.Recipients.Add faxNumber, faxName 

FD.Submit(strComputerName) 

End Sub 

Я также попытался с помощью:

FD.ConnectedSubmit(FS) 

вместо FD.Submit, но в любом случае код взрывает на этой линии. Я получаю следующее сообщение об ошибке:

Run-time error '-2147023741 (80070483)': Operation failed. 

Я случилось наткнуться на эту веб-страницу, которая является устаревшей и ссылки Виста, но мне интересно, если это верно для Windows 10, а также: Sending a Fax (Windows)

Я также попытался реализуя эту переменную JobID, показанную на этой странице, в мой код, но она по-прежнему приводит к той же ошибке.

Я вижу, что есть обходное решение, упомянутое на веб-странице о разрешениях на запись, но я не знаю, как это сделать, плюс у меня нет каталога C: \ ProgramData на моем компьютере.

Я также задаюсь вопросом, смогу ли я установить машину Windows 7 в качестве факс-сервера, и если это решит проблему. Конечно, наш сервер должен обновиться, учитывая, что его ОС 13 лет, будет ли обновление до Windows Server 2012 решить проблему? Или я должен ждать выхода Windows Server 2016?

Любая помощь была бы принята с благодарностью. Благодарю.

+0

Проблема с файловой ассоциацией, подобной здесь (такой же номер ошибки) https://www.interfax.net/en/dev/faxcomexlib/operation-failed. – BitAccesser

+0

Спасибо за эту информацию. Я обнаружил, что формат .snp, который я использую, был прекращен в Access 2010 и теперь Access предлагает экспортировать в pdf.Поэтому я создал свой код для этого: 'strFile =" C: \ Reports \ test.snp "' 'DoCmd.OutputTo acOutputReport, RptName, acFormatSNP, strFile, False' Однако я все еще получаю тот же ошибка. Я не понимаю, как это может быть ошибка ассоциации файлов, поскольку у меня установлен Acrobat на моем компьютере и нет проблем с открытием pdf-файлов. Возможно ли, что мне понадобится использовать Microsoft pdf reader, а не Adobe? Спасибо – Ben

+0

Просто понял, у меня нет Acrobat, я использую Microsoft Edge для открытия PDF-файлов. – Ben

ответ

1

Я понял это. Проблема, безусловно, связана с файловой ассоциацией. Однако он не имеет никакого отношения к Access 2016 или Windows Fax и Scan. Он должен иметь дело с тем, как вы просматриваете PDF. (Я полагаю, что истина верна для файлов SNP, но я использовал только SNP, потому что Access 2003 не поддерживал экспорт в PDF, не беспокоился о устаревшем формате файла)

Проблема в том, что средство просмотра по умолчанию для pdf на новой установке Windows 10 является Microsoft Edge, а Microsoft Edge не поддерживает печать на факс. Чтобы решить эту проблему, вам необходимо установить Adobe Acrobat и установить ее как средство просмотра PDF по умолчанию, поскольку оно поддерживает печать на факсы. Как только вы это сделаете, у вас не будет проблем с отправкой файлов PDF на ваш факс-сервер с использованием кода или печати файлов PDF на ваш факс-сервер, который вы открыли в Acrobat.

Для тех из вас, кто заинтересован, вот мой новый код, а не многое изменилось:

Public Sub SendFax(RptName, faxNumber, faxName) 

Dim FS As New FAXCOMEXLib.FaxServer 
Dim FD As New FAXCOMEXLib.FaxDocument 
Dim strComputerName As String 
Dim strFile As String 

strComputerName = "server08" 
strFile = "C:\Reports\test.pdf" 
DoCmd.OutputTo acOutputReport, RptName, acFormatPDF, strFile, False 
DoCmd.Close acReport, RptName 

FS.Connect strComputerName 
FD.Body = strFile 

FD.CoverPageType = fcptNONE 

FD.DocumentName = "Test" 
FD.priority = fptHIGH 

FD.Recipients.Add faxNumber, faxName 

FD.Submit (strComputerName) 


End Sub 

Конечно, вы должны быть с помощью «Microsoft Fax Service Extended COM Type Library» в ссылках.

+0

В качестве примечания вы можете экспортировать в RTF, и он не будет отправлять по факсу никаких проблем, однако вы потеряете все изображения, которые могут появиться в отчете о доступе. XLS также может работать для отправки факсов, но когда я пробовал, что форматирование в Excel было ужасным, нечитаемым и распространенным на многих страницах. – Ben