アプリ版:「スタンプのみでお礼する」機能のリリースについて

●テーブル1
フィールド1/テキスト型(主キー)

フィールド1
20130128ダイエー

●テーブル2
ID/オートナンバー型(主キー)
テーブル1の主キー/テキスト型
内容/テキスト型

ID  テーブル1の主キー  内容
1  20130128ダイエー  牛乳
2  20130128ダイエー  鶏肉

●クエリ1
SELECT テーブル1.*, テーブル2.*
FROM テーブル1 INNER JOIN テーブル2 ON テーブル1.フィールド1 = テーブル2.テーブル1の主キー;

●フォーム1
そのなかにクエリ1に紐づいたサブフォームを設置(データシートビュー)
フォーム1にコンボボックスを設置して、

Private Sub コンボ1_AfterUpdate()
With Me.Controls("クエリ1").Form
.Filter = "ID = '" & Me.コンボ1.Value & "'"
.FilterOn = True
End With
End Sub

このような構成なのですが
フィルタを掛けようとすると、
実行時エラーで 抽出条件でデータ型が一致しません。(エラー 3464)
となってしまいます。

これはフィルタを掛けようとしているデータ型がオートナンバー型だからでしょうか?

「オートナンバー型はフィルタはかけられない」の質問画像

A 回答 (1件)

オートナンバー型は、広い意味での数値型の一種になります。



一方、値を「'」または「"」で括った場合は、文字列として渡すことに
なります。

そのため、「数値型のフィールドに対して文字列で抽出している」と
いうことで、ご質問のエラーになっています。
(フィールドへの値の入力の場合は、数値型のフィールドへの「'1'」の
 入力は自動で「1」として扱ってくれるのですが、フィルタの場合は
 そうはならない仕様のようです)


ですので、以下のように修正すれば、抽出が可能になると思います:

【現在】
 .Filter = "ID = '" & Me.コンボ1.Value & "'"

【修正】
 .Filter = "ID = " & Me.コンボ1.Value
    • good
    • 0
この回答へのお礼

あーなるほどー
「数値型のフィールドに対して文字列で抽出している」
これが原因だったのですね。スッキリしました。ありがとうございました。

お礼日時:2013/01/29 20:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!