2009-07-22 13 views
0

私は、Microsoft Access 2000-2007(MS Accessデータベースのバージョンによって異なる)のデータ型を、C#プログラム用のコンボボックスにリストしようとしています。どのように私はそのようなことを達成することができますか?もちろんMS Accessのデータ型のリストはどのように入手できますか?

+0

データ型またはJet/ACEデータ型にアクセスしますか?おそらく、C#を使用しているので、Jet/ACEデータ型だけが必要ですが、作業しているデータベースがAccessによって作成されたもので、Access固有のデータ型(通常はJet/ACEデータ型が拡張ハイパーリンクフィールド、ハイパーリンクフィールドであり、通常のメモフィールドではないことをアクセスに示す特定の設定を有するメモフィールド)を含むことができる。 –

+0

はい、特定のMS Accessデータ型を使用したいと思います。 ACEがMS Access 2000-2007と互換性があると誤解されていない場合は、自分のプログラムでMS Access 2000-2007データベースを開くことができるようにしようとしています。たとえば、MS Access 2003を開くと、MS Access 2003固有のデータのデータ型を使用することができるようになります.MS Access 2007データベースを開くと、MS Accessのデータのデータ型になります2007 ... – Partial

+0

私は十分な徹底的ではなかったので、私はこの質問を閉じている、私はいくつかの他のものを知りたい...ここに新しい質問へのリンクです:http://stackoverflow.com/questions/1172617/ – Partial

答えて

2

実行時にエンジンを調べて、サポートするデータ型を列挙することはできないと思います。たとえば、DAOは、NCHARBINARYのようなJet 4.0データ型の一部を公開しません。 ADOは、Accessデータベースエンジンがサポートしていないデータ型を明らかにします。 ACEDAOだけが多値タイプを明らかにするでしょう。

私はエンジンの各バージョンがサポートしているデータ型を事前に知っておいて、実行時に適切なセットを選択する必要があると思います。

Jet 4.0のデータ型(Access2000から2003までを含む)とさまざまな同義語は、here(以前のバージョンのエンジンをサポートする必要がある場合に備えて、Jet 4.0の新機能についていくつかのヒントを示す必要があります) 。

ACE(Access2007)がアタッチメントタイプを追加しました。 SharePointリストをサポートするために多値(「複合」)型もあります。多値型が別個の型であるのか、既存型のばらつきであるのかを自分で判断する必要があると思います。 Access2007 Helpにいくつかの詳細があります。

+0

あなたが言っているのは、私がACEDAOへの言及を加えてそれを使用すべきだということです。 – Partial

+0

ACEDAOをMS Access 2000-2003で使用できますか、それともMS Access 2007のみで使用できますか? – Partial

2

Microsoft.Office.Interop.Access.Dao.DataTypeEnum

、あなたは参照を追加する必要があります、と私は絶対にあなたがOfficeのバージョンに関連付けられますので、オフィスへの参照を追加嫌い、とアップグレードするたびに更新コードが嫌いです。

+0

ありがとう私はそれを調べます! – Partial

+1

DAOは、Pre-Access2000のデータ型とDECIMAL(ただし、位取りと精度の値は除く)のみを提供します。 Jet 4.0(Access2000以降)または複数値型(Access2007以降)のNCHARおよびBINARYデータ型 – onedaywhen

+0

レイトバインディングでDAOを使用できないため、参照が不要です。第2に、Access 2007と以前のバージョンで作成されたファイルを使用して作業している場合、DAO 3.6(Jet 4.0またはAccess 2000,2002および2003)はJetによって置き換えられているため、DAOバージョン固有のチェックが必要です/ ACE固有のDAOバージョンで、Access 2007に同梱され、いくつかの新しいデータ型が追加されました。 –

関連する問題