2011-12-09 11 views
0

ここは私の問題です。私は現在Accessを使用することを余儀なくされており、私はフォームに追加できるいくつかの一般的な検証を書いています。空のときに大きなテキストボックスに空白の文字列の代わりにnullを使用する方法

それはすべてのエラーに基づいてうまく行くとform_errorで空のフィールドをキャッチされた「あなたはvarientのデータ型でない変数にNULL値を割り当てようとしました」

私の必要なVARCHARフィールドの全てではありませんヌル。

大量のvarchar DBフィールドへのコントロールソースがテキストボックスにあると、残念なことにその動作が異なります。私はサイズの閾値を覚えていませんが、この動作の違いは、テキストとアクセステーブルのメモと同等であると仮定します)。

小さなテキストボックスコントロールの内容を削除すると、nullが書き込まれ、エラーが発生します。すべての良い。

大きなvarcharまたはmemoデータベースフィールドにリンクされたテキストボックスで同じ操作を行うと、有効と見なされる空の文字列が書き込まれます。

私は、varchar(50)とvarchar(256)の間でdbスキーマを変更し、Accessでリンクされたテーブルを更新し、Accessを再開することでこれを確認しました。

誰かが私にプロパティを設定するか、またはサイズに関係なく空の場合にNULL /空の文字列を書くことに関して、すべてのテキストボックスを同じように動作させるために追加できる汎用コードの小さな断片を指し示すことを期待しています。それらが接続されているDBフィールド。

ちょうどボックスが挿入または編集で異なって動作することに注意してください。挿入されていない場合、DBエントリはnullのままになります。

+0

はちょうど私がコードを追加することによってこの問題を解決することができます。.. 注: 'ます。Private Sub MyTextControl_AfterUpdateを() Me.MyTextControl = "" その後 Me.MyTextControl = NULL END IF エンドSub' の場合私は大規模なvarcharsにリンクされているすべてのテキストコントロールを狩り、一般的なフォームのエラーチェックが機能するようにするためにこのコードを追加する必要はありません。それは一般的なもののオブジェクトを敗北させるものです。 – Bodestone

答えて

0

これはあなたのやり方とほぼ同じです。各テキストフィールドに「検証ルール」を設定できますが、再度、すべてのテキストコントロールを検索する必要があります。

あなたはその仕事をより簡単にすることができます。テーブルのオブジェクト依存関係をチェックすると、関連するすべてのフォーム(およびクエリなど)のリストを取得できます。そうすれば、あなたはそれぞれを打つことができます。

関連する問題