2

Access 97 データベースとデータベース エンジンとして Jet 3.5 を使用する古い Visual Basic 5 アプリケーションのカスタマイズを希望する顧客がいます。

目的のカスタマイズでは、既存のテーブルに列を追加する必要があります。以下はうまくいきます:

strSQL = "ALTER TABLE Users ADD COLUMN Status BYTE"
pdbDatabase.Execute strSQL

ただし、新しい列にデフォルト値 (つまり、0 または 1) を設定したいと考えています。私は以下といくつかのバリエーションを試しました:

strSQL = "ALTER TABLE Users ADD COLUMN Status BYTE DEFAULT 1"

しかし、それらはすべて、「ALTER TABLE ステートメントの構文エラーです。(3293)」というエラーが発生します。

この問題を調査しているときに、Access 97 と Jet 3.5 の時代遅れの構成でサポートされていない DEFAULT 句を見逃している情報をいくつか見てきました。

誰でもこれを確認したり、これを機能させるために正しい方向に向けたりできますか?

ご協力いただきありがとうございます。

4

2 に答える 2

4

これは、DAO オブジェクトを使用して行うことができます。

Microsoft は、Access テーブルの変更について次のように述べています。

また、フィールドの ValidationRule プロパティや DefaultValue プロパティなど、特定の種類の Microsoft Access 固有のプロパティは、Microsoft Access ユーザー インターフェイスまたはコード内の DAO を介してのみ設定できます。

詳細については、以下のリンクを参照してください。例はありますが、DefaultValue プロパティを使用して具体的に示している場所はわかりませんでした。 http://technet.microsoft.com/en-us/library/cc966376.aspx

于 2012-05-04T02:58:36.217 に答える
1

Access 97/Jet 3.5 SQL ドキュメントによると、ALTER テーブルまたは CREATE テーブル ステートメントを説明するときに、DEFAULT 句について言及されていません。Jet 4.0 の新機能として説明されています: http://support.microsoft.com/kb/275561

デフォルト値を設定する唯一の方法は、GUI でテーブル デザインを開き、フィールド プロパティでデフォルト値を入力することです。Access 97 のインストールにアクセスできますか?

ただし、VB/VBA を使用すると、おそらくフィールドのデフォルト値プロパティにアクセスして設定または変更できると思いますが、SQL を使用する必要はありません。

于 2012-05-04T00:11:44.257 に答える