2016-06-17 87 views
2

我有一個傳統的Access 2003應用程序,我們已經在Wondows 7中運行。我已決定轉換爲Access 2016,以便它將繼續在Windows 10中工作以防我們需要替換當前的Windows 7計算機之一併且只有Windows 10可用。除了其中一項功能外,它幾乎可以完美轉換,發送傳真。在Windows 10的Access 2016中發送傳真(傳真服務器使用Windows Server 2003)

我們的傳真服務器是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

這是像這裏的文件關聯問題(相同的錯誤號)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閱讀器而不是Adobe? 謝謝 – Ben

+0

剛剛意識到,我沒有Acrobat,我正在使用Microsoft Edge打開pdf。 – Ben

回答

1

我想通了。這個問題絕對是一個文件關聯問題。但是它與Access 2016無關,或者Windows傳真和掃描。它必須處理你如何查看PDF的。 (我假設真的會適用於SNP文件,但我只使用SNP,因爲Access 2003不支持導出爲PDF,沒有必要擔心過時的文件格式)

問題是,默認查看器新安裝的Windows 10的pdf是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傳真服務擴展COM類型庫」是。

+0

作爲便箋,您可以導出到RTF,並且它將傳真沒有問題,但是您將丟失您的訪問報告中可能有的任何圖像。 XLS也可以用於傳真,但是當我嘗試在Excel中格式化時很糟糕,無法閱讀並且傳播到很多頁面。 – Ben