Отправка факса в Access 2016 в Windows 10 (факс-сервер использует Windows Server 2003)

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

Наш факс-сервер — это машина с 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.

Я случайно наткнулся на эту веб-страницу, которая устарела и ссылается на Vista, но мне интересно, верно ли это и для Windows 10: Отправка факса (Windows)

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

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

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

Любая помощь будет принята с благодарностью. Спасибо.


person Ben    schedule 17.06.2016    source источник
comment
Это проблема ассоциации файлов, как здесь (тот же номер ошибки) interfax.net/en /dev/faxcomexlib/операция-сбой.   -  person BitAccesser    schedule 18.06.2016
comment
Спасибо за эту информацию. Я обнаружил, что формат .snp, который я использую, больше не поддерживается в Access 2010, и теперь Access предлагает экспорт в pdf. Поэтому я настроил свой код для этого: strFile = "C:\Reports\test.snp" DoCmd.OutputTo acOutputReport, RptName, acFormatSNP, strFile, False Однако я все еще получаю ту же ошибку. Я не понимаю, как это может быть ошибкой ассоциации файлов, поскольку на моем компьютере установлен Acrobat, и у меня нет проблем с открытием PDF-файлов. Возможно ли, что мне нужно будет использовать программу чтения Microsoft pdf, а не Adobe? Спасибо   -  person Ben    schedule 20.06.2016
comment
Только что понял, что у меня нет Acrobat, я использую Microsoft Edge для открытия PDF-файлов.   -  person Ben    schedule 20.06.2016
comment
Только что понял, что вырезал и вставил неправильный код strFile = "C:\Reports\test.pdf" DoCmd.OutputTo acOutputReport, RptName, acFormatPDF, strFile, False   -  person Ben    schedule 20.06.2016


Ответы (1)


Я понял это. Проблема, безусловно, связана с ассоциацией файлов. Однако это не имеет ничего общего с Access 2016 или Windows Fax and 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" в Справочнике.

person Ben    schedule 20.06.2016
comment
В качестве примечания, вы можете экспортировать в RTF, и он без проблем отправит факс, однако вы потеряете все изображения, которые могут быть у вас в отчете о доступе. XLS также может работать для отправки факсов, но когда я попробовал, форматирование в Excel было ужасным, нечитаемым и разбросанным по многим страницам. - person Ben; 21.06.2016