• ベストアンサー

Access2000での重複チェック

前回も質問させていただきましたがどうしてもわからないので質問させていただきます。 DCount("規定金額", "ワークテーブル", "規定金額= '" & Me!txt規定金額.Value & "'") <> 0 Then 歩合入力フォームにsub歩合入力サブフォームが張り付いてます。ワークテーブルのフィールドは規定金額、歩率です。規定金額が重複してるかどうか調べたいのですが、上のコードではエラーがでてしまいます。間違ってるのでしょうか?sub歩合入力のForm_BeforeUpdateに書いています。エラーの内容は「抽出条件でデータ型が一致しません」です。よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 条件の、 "規定金額= '" & Me!txt規定金額.Value & "'" で、''(シングルクォーテーション)で括ってあると、文字列型(テキストとメモ)として判断します。 しかし、[ワークテーブル]の[既定金額]フィールドのデータ型は、おそらく数値型(金額なので多分整数型)だと思いますので、 「抽出条件でデータ型が一致しません」 というエラーになるわけです。 したがって、DCount関数の条件式(第3引数)を以下のようにします。 "規定金額= " & CLng(Me!txt規定金額.Value) 数値型なので''はいりません。 なお、CLng関数は、引数が数値認識出来る場合に、長整数に変換します。(少数部分を丸める) また、フィールドのデータ型が同じ数値型でも、その種類によって変換関数は異なります。 整数型:CInt 長整数型:CLng 単精度浮動小数点型:CSng 倍精度浮動小数点型:CDbl といったところです。 その他の変換関数や詳細は、ヘルプを参照して下さい。

moshamosha
質問者

お礼

本当に親切な説明ありがとうございます! ちなみにフィールドの型は通貨型でした。 説明がなかったらできませんでした… 無事できましたのでありがとうございました