Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Access 2010)
vba でDCOUNT関数を使いたい
投稿日時: 19/02/08 10:22:43
投稿者: yukia

フォームで[ID重複確認]ボタンをクリックした際に、
現在フォームに表示されているIDが
テーブルで重複していないか確認したいです。
が、重複あってもうまく引っかかりません。
どこが間違っているのでしょうか。
 
テーブル名:登録テーブル
検索したいカラム名:ID
 
cnt = DCOUNT(“[ID],”[登録テーブル]”,”[ID]” = “‘“ & Me.ID_No & “‘“)
if cnt > 1 then
    MsgBox “重複”
     Exit sub
End if
 
よろしくお願いします。
 

回答
投稿日時: 19/02/08 10:54:41
投稿者: sk

引用:
テーブル名:登録テーブル
検索したいカラム名:ID

[ID]のデータ型は何でしょうか。

投稿日時: 19/02/08 11:07:41
投稿者: yukia

sk 様
ご連絡ありがとうございます。
テキスト型になります。

回答
投稿日時: 19/02/08 13:15:50
投稿者: sk

引用:
テキスト型になります。

引用:
cnt = DCOUNT(“[ID],”[登録テーブル]”,”[ID] = ‘“ & Me.ID_No & “‘“)

cnt = DCount("[ID]", "[登録テーブル]", "[ID]='" & Me.ID_No & "'")
 
-----------------------------------------------------------------
 
以上のように修正なさればよろしいかと。

回答
投稿日時: 19/02/08 13:17:49
投稿者: Suzu

yukia さんの引用:
cnt = DCOUNT(“[ID],”[登録テーブル]”,”[ID]” = “‘“ & Me.ID_No & “‘“)

 
そもそも、コンパイルできませんよね?
 
ダブルクオーテーション 全角
ID の直後の カンマの位置が・・・とか
 
そのままをコピペ頂かないとなのですが
 
cnt = DCOUNT("[ID]", "[登録テーブル]", "[ID]" = "'" & Me.ID_No & "'")
と推測し。。。仮に、フォームの ID_No が、「001」だったとして。。
 
DCOUNT("[ID]", "[登録テーブル]", "[ID]" = "'0001'")
 
このイコール は "" の外にあります。
という事は、この部分だけ先に評価されます。
 
つまり、左辺と右辺同じですか? の評価がされますので
DCOUNT("[ID]", "[登録テーブル]", False)
と同じことです。
 
きちんと、= を "" の中に入れましょう。

投稿日時: 19/02/08 15:10:01
投稿者: yukia

sk 様
出来ました!
ご回答ありがとうございます。
 
Suzu 様
すみません、ここに書くときに
間違えてしまいました。
 
また、何かありましたらよろしくお願いします。