2017-11-29 4 views
0

でこれは単純にする必要がありますが、私はこの問題を把握や答えを見つけることができません。問合せ:インデックスオフ1

私は、関連する分野UnitNameとテーブルUnitsを持っており、 Division

私が照会しています:

SELECT UnitName 
FROM Units 
WHERE Division = '9'; 

それを取得と同じくらい簡単に。レコードのテーブル内のDivisionフィールドが値集合ソースのクエリで検索/コンボボックスによって移入されます。

SELECT Division.ID, Division.Abbreviation 
FROM Divisions 
ORDER BY Abbreviation; 

バインドされた列はWHERE Division = 'X'が設定されている場合にのみ動作し、UNITNAMEを選択0

しかし最初のクエリであり、だから、Xは私がテーブルで見ることができる実際のIDより1少ないです。
たとえば、私のテストテーブルを見ると、Divisionフィールドに9と表示されているレコードがあります。クエリではX = 8に設定するとこのレコードしか見つかりません。

なぜですか?

+1

「バインドされた列」のコメントはおそらく、ユーザーインターフェイスで問題に遭遇しているというヒントです。これを生のクエリとして実行しようとしましたか?おそらくそれはそこで動作します。そのような場合は、あなたが対話しているドロップダウンや他のUI要素に注目してください。 – Alan

+0

BoundColumnを1に、ColumnCountを2に、ColumnWidthを0に設定する; 1.0 " – June7

+1

テーブル内でルックアップを使用しない** [テーブル内のルックアップフィールドの邪魔](http://access.mvps.org /access/lookupfields.htm) – Rene

答えて

2

バインドされた列は、あなたの問題です0

です。コンボボックスの.Valueが選択された項目のDivision.IDになるようにする場合は、バインド列は0ではなく1にする必要があります。バインド列が0の場合、コンボボックス.Valueは項目の0から始まるインデックスになります。ドロップダウンリストに表示されます。これがoff-by-oneエラーとして現れるという事実はちょうど偶然である。