JustAnswer のしくみ:
  • 専門家に質問
    知識豊富な専門家があらゆる質問にお答えするために常に待機しています。
  • 専門家が丁寧に対応
    E メールやサイト内オンラインメッセージなど、さまざまな手段で回答を通知。必要に応じてフォローアップの質問をすることもできます。
  • 満足度 100% 保証
    専門家からの回答を確認し評価をすることで、支払うかどうかを決めます。
Nobody_1963に今すぐ質問する
Nobody_1963
Nobody_1963, システムエンジニア
カテゴリ: オペレーティングシステム
満足したユーザー: 318
経験:  Windows OSのクライアント および サーバーの設定をサポート致します
60374769
ここに オペレーティングシステム に関する質問を入力してください。
Nobody_1963がオンラインで質問受付中

VB

解決済みの質問:

VB6で開発しXP上で動作するデータベース最適化コンパクトデータベースをVISTAで実行するとエラーエラーナンバー:-2147217897’データベースはすでに存在しています’ どのように対処すればいいのでしょうか?


以下にコードを表記します


 


Private Sub mnuDataBaseCompact_Click()
On Error GoTo ErrorHandler


    Dim strFileName As String
    Dim oldFileSize As Long
    Dim newFileSize As Long
   
    Dim strOldConnection As String
    Dim strNewConnection As String
    Dim objJroJetEngine As JRO.JetEngine
    Dim DBPath As String
    Dim NewDBPath As String
    Dim ret As Integer
   
    strFileName = App.Path & "\CleanMaster.mdb"
    oldFileSize = FileLen(strFileName)
       
    DBPath = App.Path & "\CleanMaster.mdb"
    NewDBPath = App.Path & "\NewCleanMaster.mdb"
      
    Beep
   
    ret = MsgBox("ビジネスマスターデータベースを最適化しますか?" & vbCrLf & _
                 "データベース名:  " & strFileName & vbCrLf & _
                 "ファイルサイズ:   " & Format(FileLen(strFileName), "0,0") & " Byte", vbQuestion + vbYesNo, "データベースの最適化")


    Select Case ret
        Case vbYes
            Screen.MousePointer = vbHourglass
           
            Set objJroJetEngine = New JRO.JetEngine
           
            strOldConnection = _
                "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Data Source=" & DBPath
   
            strNewConnection = _
                "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Data Source=" & NewDBPath
               
            cn.Close
          
            objJroJetEngine.CompactDatabase _
                strOldConnection, _
                strNewConnection
   
            Kill DBPath
            Name NewDBPath As DBPath
   
            Set objJroJetEngine = Nothing
   
            cn.Open
   
            MsgBox "最適化が終了しました。" & vbCrLf & _
                   "最適化前ファイルサイズ:  " & Format(oldFileSize, "0,0") & " Byte" & vbCrLf & _
                   "最適化後ファイルサイズ: " & Format(FileLen(strFileName), "0,0") & " Byte", vbOKOnly, "最適化終了"
   
            Screen.MousePointer = vbDefault
        Case vbNo
            Exit Sub
    End Select


Exit_Error:
    Exit Sub
ErrorHandler:
    MsgBox "Error: " & Err.Number _
                  & Err.Description, _
                    vbOKOnly, "想定外のエラー"
    Call Logger("mnuDataBaseCompact_Click()")
    Resume Exit_Error
      
End Sub


































































投稿: 6 年 前.
カテゴリ: オペレーティングシステム
専門家:  Nobody_1963 返答済み 6 年 前.

こんにちは。
質問をご投稿いただきありがとうございます。
しかしながらご返答が遅くなり申し訳ございません。

よろしくお願いいたします。

 ご質問の件ですが、XPではちゃんと動作するのにVISTAでは動かないということですよね。

 それはおそらくVISTAから導入されたUACの問題だと思います。

インストール先を普通の「Program Files」内に行っているのであれば、別のフォルダ(例:C:\aaaaa\)にしてみてください。 

 またはUAC機能を無効化してください。

いづれかの方法で上手く動作すると思いますので一度ご確認をお願い致します。

Nobody_1963をはじめその他名のオペレーティングシステムカテゴリの専門家が質問受付中

オペレーティングシステム についての関連する質問