我有一个遗留的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发布吗?
非常感谢任何帮助。感谢。
答案 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类型库”。