在Windows 10上的Access 2016中发送传真(传真服务器使用Windows Server 2003)

时间:2016-06-17 20:32:09

标签: windows-10 windows-server-2003 fax ms-access-2016

我有一个遗留的Access 2003应用程序,我们一直在Wondows 7中运行。我已决定转换为Access 2016,以便在我们需要更换当前的Windows 7时,它将继续在Windows 10中运行机器,只有Windows 10可用。除了其中一个功能,发送传真之外,它几乎完全转换。

我们的传真服务器是Windows Server 2003计算机,就像我说的,我在Windows 10计算机上运行Access 2016中的应用程序。

这是我的传真代码:

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:Sending a Fax (Windows)

我也尝试将该页面上显示的JobID变量实现到我的代码中,但它仍会导致相同的错误。

我确实在网页上提到了有关写入权限的解决方法,但我不知道如何执行此操作,而且我的计算机上没有C:\ ProgramData目录

我也想知道我是否可以将Windows 7计算机设置为传真服务器,如果可以解决问题。当然我们的服务器应该升级,因为它的操作系统已经使用了13年,升级到Windows Server 2012会解决问题吗?或者我应该等待Windows Server 2016发布吗?

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:1)

我想出来了。问题绝对是文件关联问题。但它与Access 2016或Windows传真和扫描无关。它必须处理你如何查看PDF。 (我认为SNP文件的真实性是正确的,但我只使用SNP,因为Access 2003不支持导出为PDF,没有必要担心过时的文件格式)

问题是新安装的Windows 10上的pdf默认查看器是Microsoft Edge,Microsoft Edge不支持打印到传真。要解决此问题,您需要安装Adobe Acrobat并将其设置为默认的pdf查看器,因为它支持打印到传真。执行此操作后,使用代码或将PDF文件打印到您在Acrobat中打开的传真服务器,将PDF文件发送到传真服务器没有问题。

对于那些感兴趣的人,这是我的新代码,没有太大的改变:

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传真服务扩展COM类型库”。