0

Access.ADPプロジェクトをリンクされたテーブルを持つ.ACCDBに変換中です。Accessのデータ型ではnullが許可されていないため、SQLServerバックエンドを使用する際の大きな問題はnull許容bitフィールドの使用です。Yes/Noそこで、null許容bitフィールドをすべてに変換しましたtinyint。ただし、Accessは引き続きこれらのフィールドをとしてマッピングしYes/No、すべてのnullをゼロに変換しています。

これを止める方法について誰かアドバイスはありますか?問題のフィールドがに設定されていることをtinyint再確認し、SSMSでクエリを実行すると、レコードの大部分がnullであることがわかります。しかし、私が考えることができるのは、リンクされたテーブルを更新または削除して再作成することだけであり、それで問題が解決するわけではありません。

4

2 に答える 2

1

-1(Yesの場合)、0(Noの場合)、およびnull(わからない/未定義)を格納するnull許容intフィールドを使用することで、はるかに幸運に恵まれました。アクセスフォームはこれらの値を完全に理解し、チェックボックスにバインドされてフィルタリングなどに使用されると正しく応答します。チェックボックスにバインドされると、ヌル(必須プロパティを[いいえ]に設定するとネイティブAccessテーブルで実行できます)はグレー表示されます。

于 2013-03-25T19:58:42.460 に答える
1

私の場合の答えは、覚えておくべきだったのですが、頭がおかしくなりました。うまくいけば、それは将来誰か他の人に役立つでしょう。

私のリンクされたテーブルは、実際にはバックエンドのビューにリンクされています(私の質問で間違いなく言及すべきことです)。基になるテーブルが変更されても、ビューのメタデータは自動的に更新されません。基になるテーブルのすべてのnull許容bitフィールドをに変更しtinyintましたが、ビューに関する限り、それらはまだbitでした。

昨夜、すべてのビューを削除して再作成し、Accessのリンクされたテーブルを更新しました。問題が解決しました!

于 2013-03-26T13:03:50.330 に答える