Microsoft Access 掲示板

日付のテキストボックスからフォームが開けません

7 コメント
views

お世話になります。
フォームを開く際に下記のように記述すれば開きます。
DoCmd.OpenForm "FOSS入力", , , 依頼日 = #2026/3/5#
しかし非連結の日付のテキストボックス(任意日付)を造って下記のように記述しますが思うように開きません。どこがいけないんでしょうかご教示お願いします。
DoCmd.OpenForm "FOSS入力", , , 依頼日 = " & Me!任意日付"

tokinaito
作成: 2026/03/05 (木) 11:09:28
通報 ...
1

DoCmd.OpenForm "FOSS入力", , , 依頼日 = " & Me!任意日付"

DoCmd.OpenForm "FOSS入力", , , "依頼日 = #" & Me!任意日付 & 2 "#"

あるいは、下記でどうでしょう。

DoCmd.OpenForm "FOSS入力", , , "依頼日 = #" & Format(Me!任意日付,"yyyy/mm/dd") & "#"

OpenFormの第4引数は条件式を文字列として渡すように意識しましょう。

2
tokinaito 2026/03/05 (木) 14:46:06 c9b46@02e0f

DoCmd.OpenForm "FOSS入力", , , "依頼日 = #" & Me!任意日付 & 2 "#"
から2を消せばうまくいきました。
いつもいつもありがとうございます。

3

DoCmd.OpenForm "FOSS入力", , , "依頼日 = #" & Me!任意日付 & 2 "#"
から2を消せばうまくいきました。

タイプミスでした。

OSの日付書式設定によってはうまく行かない場合があるので後の方のコードの方が安全です。

4
tokinaito 2026/03/06 (金) 13:39:47 9e4e6@a5d99

ありがとうございます。後の方のコードを使わせていただきます。
ところであと一つお助けください。
Hatena様たびたびお世話になります。計画としては下記式によりリストボックスから複数選択し。選択した物に依頼日を打ち込みたいのです。
依頼の入力については当日は難しく翌日に入力したいのですが。
rs!依頼日 = Date これは依頼日を打ち込めます。
rs!依頼日 =
先般ご教示いただいた下記式を活用しテキストボックスのコントロールに=受付日(Date())として名前を翌日入力としました。
Public Function 受付日(申請日 As Variant, Optional 営業日数 As Long = 1) As Variant
    Dim 営業日 As Long
    受付日 = 申請日
    If IsNull(受付日) Or 営業日数 = 0 Then Exit Function

    While 営業日 < Abs(営業日数)
        受付日 = 受付日 - 1
        Select Case Weekday(受付日)
            Case vbMonday To vbFriday
                If IsNull(DLookup("祝日名", "T_祝日", "日付=#" & 受付日 & "#")) Then
                    営業日 = 営業日 + 1
                End If
        End Select
    Wend
End Function

Private Sub 任意_Click()
Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("TOSS")

    Dim varItm As Variant
    With Me.listSupplier
        For Each varItm In .ItemsSelected
            rs.AddNew
            rs!本部 = .ItemData(varItm)
            rs!依頼日 = ??
'
        Next

    End With
'
    rs.Close

5
名前なし 2026/03/06 (金) 15:16:40 b6989@0e907

 過去の伝票を処理する場合、日付を適宜選択して転記するだけじゃないの?例えば、昨日の伝票を1000件登録する際には、日付(昨日)を1回選択しておくだけ。続けて、一昨日の伝票を登録する際には、日付を1回選択し直すだけ。

 伝票テーブル:{本部,日付},…
 伝票明細テーブル:{本部,日付,明細番号},…

6

やりたいことのフローやテーブル構成が不明なのでよくわかりませんが

rs!依頼日 に翌営業日を入力したいということなら

rs!依頼日 = 受付日(Date())

でいいのだが?

7
tokinaito 2026/03/07 (土) 14:41:08 9e4e6@a5d99

hatena様ありがとうございました。
rs!依頼日 = 受付日(Date())それでチャレンジしてたんですけどうまくいかなくて
でもうまくいきましたありがとうございました。