2

VB.NET とクライアントの VBA で開発されたアプリケーションがあります。VB.NET で開発されたインストーラ カスタム アクションでは、文書化されていないことで有名な Access の SysCmd 603 を使用して、mdb ファイルを mde にコンパイルします。サンプル コードは次のようになります。

a = CreateObject("Access.Application")
If a.SysCmd(603, PATH_TO_BXB_FILE, PATH_TO_BXE_FILE) = 0 Then
    MsgBox("Fail to compile to MDB file")
End If

このコードは最近まで機能していました。現在、Syscmd 呼び出しは、コンパイルが失敗したことを示す 0 を返しました。しかし、私は Access プログラミングに詳しくないので、この失敗の原因をさらに調べる方法がわかりません。このリンクApplication.SysCmd Method (Access)では、失敗した場合に実行時エラーが生成されると書かれていますが、このエラーを確認する方法がわかりません。助けてください

4

1 に答える 1

3

syscmdの 603 引数は文書化されていません。さまざまな理由で失敗します。たとえば、VBA で実行している場合、MS Access の別のインスタンスを使用しないと失敗します。このでは失敗するその他の理由を次のように示しています。

  • 別の Access データベース (ソリューション データベースとは別) で実行されている VBA コードで使用されている場合。
  • ソリューション データベースが閉じられたとき。と
  • ソリューション データベースの VBA コードに構文エラーがない場合。

このドキュメントには、次の参考文献もリストされています。

Douglas Steeleはここで興味深い点を指摘しています:
http://www.pcreview.co.uk/forums/thread-2621925.php 08/19/so-what-are-the-undocumented-syscmd-items.aspx Tony Toews もこのページにリンクしています: http://www.everythingaccess.com/tutorials.asp?ID=Undocumented-SysCmd-Functions



于 2013-01-07T19:56:35.190 に答える