[リストへもどる]
一括表示

投稿時間:2004/06/16(Wed) 13:51
投稿者名:kamurin
Eメール:kamurin@hotmail.com
URL :
タイトル:
Accessの入って無い環境で
Accessの入っていない環境にインストールした場合に下記の処理でエラーになります。
Accessのインストール以外で解決できないでしょうか?
'Accessファイルを開く
    Set oleAccess = Nothing
    Set oleAccess = New Access.Application
    oleAccess.OpenCurrentDatabase DbName, False
    
    'Accessのレポートを開く
    Select Case PrintMode
    Case 0    'Preview
        oleAccess.DoCmd.OpenReport ReportName, acPreview
        oleAccess.DoCmd.Maximize
        oleAccess.Visible = True
    Case 1    'Print
        oleAccess.DoCmd.OpenReport ReportName, acNormal
        oleAccess.CloseCurrentDatabase
        Set oleAccess = Nothing
    Case Else
        MsgBox "モードが誤っています。", vbOKOnly, "AcPrint Ver.1.1"
        oleAccess.CloseCurrentDatabase
        Set oleAccess = Nothing
        AcPrint = False
    End Select

投稿時間:2004/06/16(Wed) 14:14
投稿者名:Say
Eメール:
URL :
タイトル:
Re: Accessの入って無い環境で
当然のことながら、Accessのない環境で
Access.Applicationを利用することはできません。

投稿時間:2004/06/16(Wed) 18:34
投稿者名:kamurin
Eメール:kamurin@hotmail.com
URL :
タイトル:
Re^2: Accessの入って無い環境で
ランタイム入れれば動くと思うのですが、
セットアップ時に、Accessのランタイムも入れる方法無いでしょうか?
ランタイムのsetup.exeは落ちてるのですが、その中身とか、ディストリビューションでの設定とか
は、分からなかったので

投稿時間:2004/06/16(Wed) 23:49
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^3: Accessの入って無い環境で
ランタイムがあったとしても、そのコードでは動作しないような気がします。
Access ランタイムは、データベースと一緒に起動する必要があったと思いますので。

GetObject経由でのコードであれば、オートメーション操作する事ができたような
気もしますが(多少の制限はあったかも)、今回のコードのように、New Application や
CreateObjectによる起動に関しては、ランタイム環境では完全に制限されており、
実行時エラーが表示されたように記憶しています。

とはいえ、最近のバージョンに関しては確認しておりませんので、正確な所は
私も把握できていません。念のため、実際にシステムの開発を始められる前に、
「Accessランタイムのみがインストールされた環境」を用意しておき、
正しく動作するかどうかを確認しておかれる事を、強くお奨めしておきます。

# 作り終わってから「動きませんでした」、なんて事になったら大変ですし。

投稿時間:2004/06/17(Thu) 01:22
投稿者名:Say
Eメール:
URL :
タイトル:
Re^3: Accessの入って無い環境で
動く、動かないは別にして、
Accessランタイム再配布ライセンスについて
調べておいたほうがいいかもしれません。

投稿時間:2004/06/18(Fri) 15:41
投稿者名:kamurin
Eメール:kamurin@hotmail.com
URL :
タイトル:
有難う御座いました。
いろいろ試した結果下記の修正と下記のテーブルの追加で何とかなりました。(解決したのは私じゃ無いけど)

                 :
                 :
                 :    
    Set ws = DBEngine.Workspaces(0)
    Set printdb = ws.OpenDatabase(App.Path & "\タナックプリント.mdb", False, False)
    
    AcPrint = True
    
    '起動設定初期化
    printdb.Execute " UPDATE M_起動設定 SET Flg = " & -1
    
    Select Case PrintMode
    Case 0    'Preview
        
        '起動設定更新用SQL文作成
        'R_スタッフ人気分析の場合
        If ReportName = "R_スタッフ人気分析" Then
            'R_施術別売上を同時に表示させる為の文作成
            strsql = " UPDATE M_起動設定 SET Flg = " & PrintMode & _
                            " WHERE ReportName = '" & ReportName & "'" & _
                            " OR ReportName = 'R_施術別売上'"
        
        Else
            strsql = " UPDATE M_起動設定 SET Flg = " & PrintMode & _
                            " WHERE ReportName = '" & ReportName & "'"
        End If
        
        '起動設定更新
        printdb.Execute strsql
        
        'Access起動 DBを開く
        RetVal = Shell(Environ("ComSpec") & " /c start msaccess """ & DbName & """", 1)
                
    Case 1    'Print
        '起動設定更新用SQL文作成
        'R_スタッフ人気分析の場合
        If ReportName = "R_スタッフ人気分析" Then
            'R_施術別売上を同時に表示させる為の文作成
            strsql = " UPDATE M_起動設定 SET Flg = " & PrintMode & _
                            " WHERE ReportName = '" & ReportName & "'" & _
                            " OR ReportName = 'R_施術別売上'"
        Else
            strsql = " UPDATE M_起動設定 SET Flg = " & PrintMode & _
                            " WHERE ReportName = '" & ReportName & "'"
        End If
        
        '起動設定更新
        printdb.Execute strsql
        
        'Access起動 DBを開く
        RetVal = Shell(Environ("ComSpec") & " /c start msaccess """ & DbName & """", 1)

    Case Else
        MsgBox "モードが誤っています。", vbOKOnly, "AcPrint Ver.1.1"
        AcPrint = False
    End Select
        
            
    printdb.Close
    Set printdb = Nothing
                 :
                 :
                 :

ランタイムをsetup.exeと同じCDで渡して、Accessが無い場合は入れてもらうことにしました。
ライセンスは、多分問題ないと思う。