1

クエリがあります

SELECT [Forms]![frmDataEntry]![Combo3];

また、combo3 というコンボ ボックスを含む frmDataEntry というフォームもあります。コンボ ボックスには複数の値があり、クエリを実行すると 1 つが選択されます。ボタンが押されたときにクエリを開くマクロ式ビルダーを使用しました。

同様/同じSQLが昨夜、同じコンボボックスから機能していました。さまざまなフォームとコントロールでいくつかのことを試みましたが、結果は何も返されません。また、新しいクエリを作成して、もう一度SQLを入れてみました。

4

1 に答える 1

1

My cboUserIDonForm2では、バインド値として47が選択されています。

このクエリは空のフィールドを返します。

SELECT Forms!Form2!cboUserID;

コンボのプロパティが必要であることをdbエンジンに明示的に伝えると、このクエリの結果として.Value単一のスラッシュ文字( )が得られます。/

SELECT Forms!Form2!cboUserID.Value

しかし、このクエリは、コンボのバインドされた値のデータ型として「Long」を教えてくれます。これは正しいです。

SELECT TypeName(Forms!Form2!cboUserID.Value)

そこでCLng()、コンボの値を長整数としてデータベースエンジンに通知する関数を試しましたが、このクエリにより、コンボで選択された値である47...が得られました。

SELECT CLng(Forms!Form2!cboUserID.Value);

なぜそうなのか私にはわかりません。私はこれまでこれを試したことがありません。コンボに適したデータ型変換関数を試してみることをお勧めします。[ CLng; CInt; CDbl; CStr; CDate; など]また、2010年がないため、テストにAccess2007を使用しました。2010年も同様に動作することを願っています。

于 2012-09-11T04:35:31.860 に答える