お世話になります。
フォームを開く際に下記のように記述すれば開きます。
DoCmd.OpenForm "FOSS入力", , , 依頼日 = #2026/3/5#
しかし非連結の日付のテキストボックス(任意日付)を造って下記のように記述しますが思うように開きません。どこがいけないんでしょうかご教示お願いします。
DoCmd.OpenForm "FOSS入力", , , 依頼日 = " & Me!任意日付"
tokinaito
通報 ...
あるいは、下記でどうでしょう。
OpenFormの第4引数は条件式を文字列として渡すように意識しましょう。
DoCmd.OpenForm "FOSS入力", , , "依頼日 = #" & Me!任意日付 & 2 "#"
から2を消せばうまくいきました。
いつもいつもありがとうございます。
タイプミスでした。
OSの日付書式設定によってはうまく行かない場合があるので後の方のコードの方が安全です。
ありがとうございます。後の方のコードを使わせていただきます。
ところであと一つお助けください。
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
過去の伝票を処理する場合、日付を適宜選択して転記するだけじゃないの?例えば、昨日の伝票を1000件登録する際には、日付(昨日)を1回選択しておくだけ。続けて、一昨日の伝票を登録する際には、日付を1回選択し直すだけ。
2026年3月
1日,2日,…
,30日,31日
伝票テーブル:{本部,日付},…
伝票明細テーブル:{本部,日付,明細番号},…
やりたいことのフローやテーブル構成が不明なのでよくわかりませんが
rs!依頼日 に翌営業日を入力したいということなら
でいいのだが?
hatena様ありがとうございました。
rs!依頼日 = 受付日(Date())それでチャレンジしてたんですけどうまくいかなくて
でもうまくいきましたありがとうございました。