2

我有一个旧的 Access 2003 应用程序,我们一直在 Wondows 7 中运行。我决定转换为 Access 2016,以便它可以继续在 Windows 10 中运行,以防我们需要更换我们当前的一台 Windows 7 机器,并且只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:发送传真 (Windows)

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

我确实看到网页上提到了关于写权限的解决方法,但我不知道如何做到这一点,而且我的计算机上没有 C:\ProgramData 目录。

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

任何帮助将不胜感激。谢谢。

4

1 回答 1

1

我想通了。该问题绝对是文件关联问题。但是,它与 Access 2016 或 Windows 传真和扫描无关。它必须处理您查看 PDF 的方式。(我认为 SNP 文件是真的,但我只使用 SNP 因为 Access 2003 不支持导出到 PDF,不必担心文件格式过时)

问题是在新安装的 Windows 10 上,pdf 的默认查看器是 Microsoft Edge,而 Microsoft Edge 不支持打印到传真。要解决此问题,您需要安装 Adob​​e 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 传真服务扩展 COM 类型库”。

于 2016-06-20T20:55:10.963 回答