度々恐れ入ります。
あるプログラムで定期的にAccessDB(accdb)を最適化するのですが、
失敗してしまいます。
検証のため、最適化部分のみ抽出した雑プログラムを作成しました。
実行してみると
「データベースの形式 'test.accdb' を認識できません。」
となります。
何が間違っているでしょうか?
他にやりようがありますでしょうか?
どうかよろしくお願いします。
環境は、
・実行:Win10 Pro Ver.10.0.18363(build 18363)、
・開発:Visual Studio2019 .NET Framework 4.7.2、
・AccessRuntime:2013
です。
プログラムは参照マネージャの COM に
・Micorosoft DAO 3.6 Object Library 5.0
が指定されています。
ビルドプラットフォームは x86 です。
test.accdb は Access 2007 や 2010 で作成したテスト用DBで、
UserID, UserName という文字列項目2列持つ Table1 テーブルがあり、
{"User1":"AAA", "User2":"BBB"}というデータを格納しています。
using System; using System.Windows.Forms; namespace test { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string source = @".\Data\test.accdb"; string target = @".\Data\tmp_test.accdb"; CompactMDB(source, target); } public static void CompactMDB(string source, string target) { DAO.DBEngine eng = null; try { eng = new DAO.DBEngine(); eng.CompactDatabase(source, target); } catch(Exception ex) { string s = ex.Message; MessageBox.Show(s); } finally { eng = null; } } } }
回答1件
あなたの回答
tips
プレビュー