1

MS ACCESSに顧客ファイルがあり、多くのテーブルが含まれています。

場合:

Column(Y)のtable(X)には、「=1Or2」の検証ルールがあります。可能であれば、「= 1 OR 2 OR 3 OR 4」に変更したいのですが、そのバイト列です。それ以外の場合は、その列の検証ルールを完全に削除したいと思います。私はC#を使用していますが、そのためのクエリが必要です......。

4

1 に答える 1

2

アクセスSQLを使用して、検証ルールを追加、削除、または変更することはできません。これは、DAOTableDefを介してのみ実行できます。

AccessでVBAを使用している場合は、これを実行して検証ルールを作成できます。

CurrentDb.TableDefs("X").Fields("Y").ValidationRule = "IN (1,2,3,4)"

IN (1,2,3,4)の代わりに使用しましたが1 OR 2 OR 3 OR 4、どちらでも機能するはずです。

Microsoft.Office.Interop.Accessおそらく、c#から同じことを行うために使用できます。

別の方法は、AccessSQLを使用してチェック制約を作成することです。チェック制約は検証ルールと同じではありませんが、同じ目標を達成するために使用できます。

ALTER TABLE X ADD CONSTRAINT one_to_four CHECK (Y IN (1,2,3,4));

それでも、既存の検証ルールを破棄する必要があります。それが不可能な場合は、古いテーブルと同じ構造の新しいテーブルを作成し、チェック制約を追加して、最後に古いテーブルから新しいテーブルにデータをロードすることができます。

于 2013-01-16T07:30:50.280 に答える