アプリ版:「スタンプのみでお礼する」機能のリリースについて

Windows7・付属のFAX・I-Oデータの外付けモデム
テストでFAX送信可能なのは、確認しています。

Access2010でVBAを作ろうとしています。
各業者に請求書をFAXで送信するようなものです。
ネット検索で旧環境(Access2000/FAX)のものを発見して作り変えようとしていたのですが、うまく
いかないので、どなたか同環境で現在うまく稼働されている方ご教授いただければと思います。

Option Compare Database
Option Explicit

'スナップショット保存用フォルダ
Const CON_WorkDir As String = "d:\workfax"
'スナップショット用ファイル名
Const CON_ファイル名 As String = "発注書"

Private Sub 送信_Click()
'------------------------------------------------------------
' 送信_Click
'
'------------------------------------------------------------
' On Error GoTo 送信_Click_Err

Dim W_FaxServer As FaxServer
Dim W_FaxDoc As FaxDoc
Dim W_RS As New ADODB.Recordset
Dim W_送信要求件数 As Integer, W_送信処理件数 As Integer
Dim W_SNPファイル名 As String
Dim W_相手先 As String, W_FAX番号 As String
Dim W_Ix As Long

'送信要求件数の確認
W_送信要求件数 = DCount("*", "送信ヘッダーW")
If W_送信要求件数 = 0 Then
Beep
MsgBox "送信する発注書はありません。", vbOKOnly + vbCritical
Exit Sub
End If

'スナップショット保存用フォルダをクリア
On Error Resume Next
Kill CON_WorkDir & "\*.*"
' On Error GoTo 送信_Click_Err

'レコードセット(送信ヘッダー)の準備
W_RS.Open "select * from 送信ヘッダーW order by コード", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

'送信処理件数をクリア
W_送信処理件数 = 0

Do While Not W_RS.EOF
'送信情報を設定
W_送信処理件数 = W_送信処理件数 + 1
W_SNPファイル名 = CON_ファイル名 & Format(W_送信処理件数, "000") & "-" & Format(W_送信要求件数, "000") & _
"_" & W_RS.Fields("コード") & "_" & _
Format(Date, "mmdd") & Format(Time(), "hhnnss")
W_相手先 = CON_ファイル名 & Format(W_送信処理件数, "000") & "/" & Format(W_送信要求件数, "000") & " " & _
W_RS.Fields("コード") & ":" & W_RS.Fields("相手先")
W_FAX番号 = ""
W_Ix = 1
Do While W_Ix <= Len(W_RS.Fields("FAX番号"))
If IsNumeric(Mid(W_RS.Fields("FAX番号"), W_Ix, 1)) Then
W_FAX番号 = W_FAX番号 & Mid(W_RS.Fields("FAX番号"), W_Ix, 1)
End If
W_Ix = W_Ix + 1
Loop

'画面表示を更新
' Me.相手先.Caption = W_相手先
' Me.ガイド.Caption = "処理中 " & Format(W_送信処理件数, "#,##0") & "/" & Format(W_送信要求件数, "#,##0")

'相手先1件分のFAX文書をスナップショット形式で出力
Call B発注書_コードSet(W_RS.Fields("コード"))
DoCmd.OutputTo acReport, "R_発注書", acFormatPDF, CON_WorkDir & "\" & W_SNPファイル名 & ".pdf", False

'test FAX送信----------------------------------------------------ここから
W_FaxServer.Connect CreateObject("WScript.Network").ComputerName 'コンピュータ名’
Set W_FaxDoc = W_FaxServer.Create(CON_WorkDir)
W_FaxDoc.RecipientName = "送信者名"
W_FaxDoc.SenderTitle = "明細"
W_FaxDoc.DisplayName = "明細"
W_FaxDoc.FaxNumber = W_FAX番号
W_FaxDoc.Send
W_FaxServer.Disconnect
W_RS.Fields("リターンコード") = 0
W_RS.Update
W_RS.MoveNext
Loop

'レコードセット(送信ヘッダー)を閉じる
W_RS.Close
Set W_RS = Nothing

'画面表示を更新
' Me.相手先.Caption = ""
' Me.ガイド.Caption = ""
Beep
MsgBox "全てのFAXを送信要求しました。", vbOKOnly + vbInformation

'送信_Click_Exit:
' Exit Sub

'送信_Click_Err:
MsgBox Err.Description
' Resume 送信_Click_Exit

End Sub

上記のように組んでみたのですが、Sendでも素通りしてしまい、FAXに行きません。
outputでDドライブには、PDFはできているのですが、
いきずまっています
どなたかよろしくおねがいいたします。

A 回答 (1件)

http://answers.microsoft.com/ja-jp/office/forum/ …
をベースにしつつ
中川システムさんとこのを参考に作成すればできるかと思います。
試験環境を作れないので、これ以上のアドバイスは出来ませんが
一つお願い事があります。

faxcomの参照設定を外して変数宣言の3行を下記にしても動きますか?
余力がありましたら教えてください。

'要参照設定 faxcom x.x type library (FXSCOM.dll)
' Dim lobjFaxSvr As New FAXCOMLib.FaxServer 'FaxServerオブジェクト
' Dim lobjFaxDoc As New FAXCOMLib.FaxDoc 'FaxDocオブジェクト
' Dim lstrPDFPath As String '送信用PDFファイルフルパス名
'↓
Dim lobjFax As Object '参照設定なしの場合、かも?未確認
Dim lobjFaxSvr As Object
Dim lobjFaxDoc As Object
Dim lstrPDFPath As String
Set lobjFax = CreateObject("FaxComEx.FaxDocument")
Set lobjFaxSvr = CreateObject("FaxServer.FaxServer")

この回答への補足

notfound404様早々のご回答ありがとうございます。
早速 >Dim lobjFax As Object '参照設定なしの場合、かも?未確認
>Dim lobjFaxSvr As Object
>Dim lobjFaxDoc As Object
>Dim lstrPDFPath As String
>Set lobjFax = CreateObject("FaxComEx.FaxDocument")
>Set lobjFaxSvr = CreateObject("FaxServer.FaxServer")
を試してみました。(確認faxcom xx type libraryの参照設定をはずしてですよね)
動くことは動きました。ただ最後ののMsgBoxで”オートメーションエラーです。エラーを特定できません”
とでてきました。
また、ステップインで1行づつ確認していくと、FaxDoc=Nothingのままになっているのですが、
何か気になります。

同じVBAをWinXP/Access2003の環境(掃出しをスナップショットで)では、動作確認は、できているのですが、WIN7・Access2010の場合"Fax.Send"では情報を送らないのでしょうか?

でも参考ULRのかたは、成功しているで、そこでもないのでしょうか?

もう少しなにかわかれば教えていただけないでしょうか?





 

補足日時:2014/02/07 09:03
    • good
    • 0
この回答へのお礼

大変ありがとうございます。
一度マイクロソフトのコミュニティーに先に問い合わせてみようと思います。

そちらで解決しなければ再度投稿させていただきます。

お礼日時:2014/02/07 10:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!