回答編集履歴
5
追記
    
        answer	
    CHANGED
    
    | 
         @@ -27,4 +27,24 @@ 
     | 
|
| 
       27 
27 
     | 
    
         
             
            尚、SQLを直接実行する方式だと以下だけで済みます。
         
     | 
| 
       28 
28 
     | 
    
         
             
            ```VBA
         
     | 
| 
       29 
29 
     | 
    
         
             
                CurrentDb.Execute "update テーブル1 set Y_N=False where ID=2 and Y_N=True"
         
     | 
| 
      
 30 
     | 
    
         
            +
            ```
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            追記2
         
     | 
| 
      
 33 
     | 
    
         
            +
            --
         
     | 
| 
      
 34 
     | 
    
         
            +
            全てリセット
         
     | 
| 
      
 35 
     | 
    
         
            +
            ```VBA
         
     | 
| 
      
 36 
     | 
    
         
            +
            Dim rs As New ADODB.Recordset
         
     | 
| 
      
 37 
     | 
    
         
            +
                rs.Open "テーブル1", CurrentProject.Connection, , adLockOptimistic
         
     | 
| 
      
 38 
     | 
    
         
            +
                rs.MoveFirst
         
     | 
| 
      
 39 
     | 
    
         
            +
                Do While rs.EOF = False Then
         
     | 
| 
      
 40 
     | 
    
         
            +
                  If rs!Y_N = True Then
         
     | 
| 
      
 41 
     | 
    
         
            +
                    rs!Y_N = False
         
     | 
| 
      
 42 
     | 
    
         
            +
                    rs.Update
         
     | 
| 
      
 43 
     | 
    
         
            +
                  End If
         
     | 
| 
      
 44 
     | 
    
         
            +
                  rs.MoveNext
         
     | 
| 
      
 45 
     | 
    
         
            +
                Loop
         
     | 
| 
      
 46 
     | 
    
         
            +
                rs.Close
         
     | 
| 
      
 47 
     | 
    
         
            +
            ```
         
     | 
| 
      
 48 
     | 
    
         
            +
            ```VBA
         
     | 
| 
      
 49 
     | 
    
         
            +
                CurrentDb.Execute "update テーブル1 set Y_N=False where Y_N=True"
         
     | 
| 
       30 
50 
     | 
    
         
             
            ```
         
     | 
4
訂正
    
        answer	
    CHANGED
    
    | 
         @@ -15,9 +15,11 @@ 
     | 
|
| 
       15 
15 
     | 
    
         
             
            Dim rs As New ADODB.Recordset
         
     | 
| 
       16 
16 
     | 
    
         
             
                rs.Open "テーブル1", CurrentProject.Connection, , adLockOptimistic
         
     | 
| 
       17 
17 
     | 
    
         
             
                rs.Find "ID=2", adSearchForward
         
     | 
| 
      
 18 
     | 
    
         
            +
                If rs.EOF = False Then
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
      
 19 
     | 
    
         
            +
                  If rs!Y_N = True Then
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
      
 20 
     | 
    
         
            +
                    rs!Y_N = False
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
      
 21 
     | 
    
         
            +
                    rs.Update
         
     | 
| 
      
 22 
     | 
    
         
            +
                  End If
         
     | 
| 
       21 
23 
     | 
    
         
             
                End If
         
     | 
| 
       22 
24 
     | 
    
         
             
                rs.Close
         
     | 
| 
       23 
25 
     | 
    
         
             
            ```
         
     | 
3
訂正
    
        answer	
    CHANGED
    
    | 
         @@ -7,24 +7,22 @@ 
     | 
|
| 
       7 
7 
     | 
    
         
             
            追記
         
     | 
| 
       8 
8 
     | 
    
         
             
            --
         
     | 
| 
       9 
9 
     | 
    
         
             
            上記はDAOだと思い込んでの回答でしたので、無視して下さい。
         
     | 
| 
      
 10 
     | 
    
         
            +
            更新されないのは、`FIND`の条件が意図通りで無い事です。
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
      
 11 
     | 
    
         
            +
            `FIND`してもloopしているのが`rs!Y_N = True`なので、最初に見つけた1件しか更新されません。
         
     | 
| 
       11 
12 
     | 
    
         | 
| 
       12 
13 
     | 
    
         
             
            なので、以下の様にする必要があります。
         
     | 
| 
       13 
14 
     | 
    
         
             
            ```VBA
         
     | 
| 
       14 
15 
     | 
    
         
             
            Dim rs As New ADODB.Recordset
         
     | 
| 
       15 
16 
     | 
    
         
             
                rs.Open "テーブル1", CurrentProject.Connection, , adLockOptimistic
         
     | 
| 
       16 
     | 
    
         
            -
                rs.MoveFirst
         
     | 
| 
       17 
     | 
    
         
            -
                 
     | 
| 
      
 17 
     | 
    
         
            +
                rs.Find "ID=2", adSearchForward
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
      
 18 
     | 
    
         
            +
                If rs!Y_N = True Then
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
      
 19 
     | 
    
         
            +
                  rs!Y_N = False
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
      
 20 
     | 
    
         
            +
                  rs.Update
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
      
 21 
     | 
    
         
            +
                End If
         
     | 
| 
       22 
     | 
    
         
            -
                  rs.MoveNext
         
     | 
| 
       23 
     | 
    
         
            -
                Loop
         
     | 
| 
       24 
22 
     | 
    
         
             
                rs.Close
         
     | 
| 
       25 
23 
     | 
    
         
             
            ```
         
     | 
| 
       26 
24 
     | 
    
         | 
| 
       27 
25 
     | 
    
         
             
            尚、SQLを直接実行する方式だと以下だけで済みます。
         
     | 
| 
       28 
26 
     | 
    
         
             
            ```VBA
         
     | 
| 
       29 
     | 
    
         
            -
                CurrentDb.Execute "update テーブル1 set Y_N=False where Y_N=True"
         
     | 
| 
      
 27 
     | 
    
         
            +
                CurrentDb.Execute "update テーブル1 set Y_N=False where ID=2 and Y_N=True"
         
     | 
| 
       30 
28 
     | 
    
         
             
            ```
         
     | 
2
追記
    
        answer	
    CHANGED
    
    | 
         @@ -22,4 +22,9 @@ 
     | 
|
| 
       22 
22 
     | 
    
         
             
                  rs.MoveNext
         
     | 
| 
       23 
23 
     | 
    
         
             
                Loop
         
     | 
| 
       24 
24 
     | 
    
         
             
                rs.Close
         
     | 
| 
      
 25 
     | 
    
         
            +
            ```
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            尚、SQLを直接実行する方式だと以下だけで済みます。
         
     | 
| 
      
 28 
     | 
    
         
            +
            ```VBA
         
     | 
| 
      
 29 
     | 
    
         
            +
                CurrentDb.Execute "update テーブル1 set Y_N=False where Y_N=True"
         
     | 
| 
       25 
30 
     | 
    
         
             
            ```
         
     | 
1
追記
    
        answer	
    CHANGED
    
    | 
         @@ -3,4 +3,23 @@ 
     | 
|
| 
       3 
3 
     | 
    
         
             
                    rs.Edit   '← ココを追加        
         
     | 
| 
       4 
4 
     | 
    
         
             
                    rs!Y_N = False        
         
     | 
| 
       5 
5 
     | 
    
         
             
                    rs.Update    
         
     | 
| 
      
 6 
     | 
    
         
            +
            ```
         
     | 
| 
      
 7 
     | 
    
         
            +
            追記
         
     | 
| 
      
 8 
     | 
    
         
            +
            --
         
     | 
| 
      
 9 
     | 
    
         
            +
            上記はDAOだと思い込んでの回答でしたので、無視して下さい。
         
     | 
| 
      
 10 
     | 
    
         
            +
            更新されないのは、`FIND`してもloopしているのが`rs!Y_N = True`なので、1件しか更新されません。
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            なので、以下の様にする必要があります。
         
     | 
| 
      
 13 
     | 
    
         
            +
            ```VBA
         
     | 
| 
      
 14 
     | 
    
         
            +
            Dim rs As New ADODB.Recordset
         
     | 
| 
      
 15 
     | 
    
         
            +
                rs.Open "テーブル1", CurrentProject.Connection, , adLockOptimistic
         
     | 
| 
      
 16 
     | 
    
         
            +
                rs.MoveFirst
         
     | 
| 
      
 17 
     | 
    
         
            +
                Do While rs.EOF = False
         
     | 
| 
      
 18 
     | 
    
         
            +
                  If rs!Y_N = True Then
         
     | 
| 
      
 19 
     | 
    
         
            +
                    rs!Y_N = False
         
     | 
| 
      
 20 
     | 
    
         
            +
                    rs.Update
         
     | 
| 
      
 21 
     | 
    
         
            +
                  End If
         
     | 
| 
      
 22 
     | 
    
         
            +
                  rs.MoveNext
         
     | 
| 
      
 23 
     | 
    
         
            +
                Loop
         
     | 
| 
      
 24 
     | 
    
         
            +
                rs.Close
         
     | 
| 
       6 
25 
     | 
    
         
             
            ```
         
     |