|
魔界の仮面弁士さん
サンプルまで提示頂きありがとうございます。
64bit環境でaccdbファイルではなく、mdbファイルを操作したいというのが趣旨でした。
教えて頂きました通り、AnyCPUのまま以下のCOMを追加しました。 Microsoft Office 14.0 Access Database Engine Object Library(ACEDAO.DLL)
更にプロパティから相互運用型の埋込みをFalseにすることにより、 Microsoft.Office.Interop.Access.Dao.LanguageConstants列挙型を引数にそのまま指定することが可能になることが分かりました。
Ex. dynamicdb = dynamicws.CreateDatabase(mdbfilepath, Microsoft.Office.Interop.Access.Dao.LanguageConstants.dbLangGeneral, Microsoft.Office.Interop.Access.Dao.DatabaseTypeEnum.dbEncrypt);
そしてdynamicが非常に使いやすかったです。
SQLサーバの任意のテーブルをMDBへ一気に作成する内容のコードを書いていました。
VB版からC#へ移行していたので、Daoが使えたのがとても助かりました。
同じことがしたい人のために簡単にコードを載せておきます。
string constring = string.Format("ODBC;Driver={0};Server={1};UID={2};PWD={3};Database={4};","SQL Server","ServerName", "sa", "","DBName");
dynamic dynamictb = dynamicdb.CreateTableDef("TableName", Microsoft.Office.Interop.Access.Dao.TableDefAttributeEnum.dbAttachSavePWD, "TableName", constring); dynamicdb.TableDefs.Append(dynamictb); dynamicdb.TableDefs.Append(dynamictb);
本当に助かりました。
ありがとうございます。m(__)m
|