そちらのフォームの状況が分からないので、下記のようだと想定してコーディングしています。
メインフォーム
名前 商品フォーム
商品フォームのレコードソースのテーブル(商品テーブル?)に「最新購入日」フィールドがある。
サブフォーム
名前 サブ案件フォーム
レコードソース T_案件
T_案件 には「購入日」フィールドがある
①VBA内の「Me!最新購入日」については「サブフォームコントロール名.Form!最新購入日」と
しなくてよいのでしょうか。
Me!最新購入日
はレコードソースの「最新購入日」フィールドになります。
If Me!最新購入日 = Me.txt最新購入日 Then
は
「最新購入日」フィールドの値と「txt最新購入日」テキストボックスの値が等しいか判定してます。
「txt最新購入日」のコントロールソースは=[サブフォームコントロール名].Form![最新購入日]
ですので
サブフォームの最新購入日になります。
つまり、メインフォームの「最新購入日」フィールドとサブフォームの「最新購入日」が一致しているかどうかの判定です。
②Me!最新購入日 = Me.txt最新購入日 についてですが、
式の左側に右側を代入するイメージだと思っていたのですが、この場合は
Me.txt最新購入日 = Me!最新購入日 にならないのでしょうか。
「左側に右側を代入する」であってます。
IfのElse節に入ってますので、
メインフォームの「最新購入日」フィールドとサブフォームの「最新購入日」が一致していなかったら、
サブフォームの「最新購入日」をメインフォームの「最新購入日」フィールドに代入しています。
これでサブフォームの「最新購入日」とメインフォームの「最新購入日」は常に一致していることになります。