2016-05-16 4 views
0

私は、フォームのテーブルの項目を入力しました。各項目には、ボタンをクリックした後にその項目を要求できるチェックボックスがあります。要求されたのはチェックボックスです。私は Me!Requested = 0を試しました、そして、それは同じ結果を与えます。チェックボックスは常に偽を返します

チェックボックスの値がチェックされても常にfalseを返すという問題があります。コードを参照すると、私は常に最初のメッセージを取得します。

Private Sub btnSubmitRequest_Click() 

If Me!Requested = False Then 
    MsgBox ("Please select at least 1 item to check out.") 
    Exit Sub 
Else 
    MsgBox ("123") 
End If 

End Sub 
+1

ミー!Requested.Value = Falseのはちょうど私がそれを試してみましたが、私は同じ結果を得る – jcarroll

+0

後.Valueのを追加します。 – duberry

+0

「!」の代わりにMe.Requested.Value = Falseを試してください。 – jcarroll

答えて

0

私は上記の書いたように、Me!Requestedは現在のレコードのみにRequestedチェックボックスを見ていきます。だからランダムな価値があれば、その結果を決めるでしょう。

少なくとも1つのRequestedチェックボックスがオンになっていることを確認するには、すべてを確認する必要があります。あなたはこれを行うことができます。ループはMe.RecordsetCloneを超えます。

Dim rs As DAO.Recordset 
Dim nSelected As Long 

nSelected = 0 
Set rs = Me.RecordsetClone 
Do While Not rs.EOF 
    If rs!Requested = True Then 
     nSelected = nSelected + 1 
    End If 
    rs.MoveNext 
Loop 
rs.Close 

MsgBox "Selected: " & nSelected 
+0

これは理にかなっていますが、メッセージにはボックスをチェックしても0のレコードが選択されているというメッセージが表示されます。 – duberry

+0

@duberry:レコードを保存しましたか?複数のボックスをチェックするとどうなりますか?これは役に立ちます:[VBAコードをデバッグする方法] – Andre

+0

はい、複数のボックスをチェックしました。不思議なことに、コードはフォームに1つのレコードが設定されている場合にのみ機能します。たとえば、スクリーンショットからわかるように、レコードをフィルタリングするためのボタンがあります。 「ツール」フィルタは1つのレコードしか表示しません。これは、表に1つのツールがリストされているためです。 1つのツールを選択して[要求の送信]ボタンをクリックすると、1つのレコードが選択されたというメッセージが表示されます。フィルタを切り替えたり、他のボックスをチェックしたりすると、0のレコードが選択されたというメッセージが表示されます。 – duberry

関連する問題