文書番号: 404064
最終更新日: 1997/11/01
この資料は以下の製品について記述したものです。
- Microsoft(R) Access for Windows(R) version 2.0 (以下 Access2.0)
この記事は、以前は次の ID で公開されていました: JP404064
概要
SQL Server の BIT 型フィールドを含むテーブルをアタッチし、クエリーを使ってそのフィールドの抽出条件に -1 を設定した場合には、データは 1 件も抽出されません。ここでは、その原因と回避方法を説明します。
現象
SQL Server4.2,6.0 の BIT 型のフィールドは、Access2.0 の Yes/No 型のフィールドに対応します。BIT 型フィールドをもったテーブルをアタッチすると、BIT 型フィールドはYes/No 型 になっています。
Access の Yes/No 型のフィールドには、Yes/No や True/False、On/Off などに対応して、-1 か 0 が格納されます。しかし、BIT 型のフィールドには、1 か 0 が格納されます。したがって、BIT 型フィールドに対する抽出条件に -1 を設定した場合、条件を満たすレコードは 1 件もありません。抽出条件には、1 を設定するか、定数 True を設定してください。条件に True を設定した場合、次のような SELECT 文が SQL Server4.2,6.0 へ渡されます。フィールドの値が 0 かどうかで判断し、その否定をとっているので、正しくデータを抽出することができます。以下に、クエリーで選択する場合の SQL 文のサンプルを紹介します。
-------------------------------------------------------------------
SELECT * FROM dbo.test WHERE NOT((bit_field = 1 ) )
dbo.test -> SQL Server にアタッチしたテーブル名
bit_field -> BIT 型のフィールド
-------------------------------------------------------------------
Keywords: KBHOWTO KB404064
Technology: kbAccess200 kbAccessSearch