下のような項目の、「銀行休日マスタテーブル」が存在します。
1レコードの中に、
銀行、年、月をキーとして、1日~31日の休日・営業日の情報を格納しています。
(「1日」~「31日」の0と1は営業日と休日を表すフラグです。)
銀行コード| 年 |月|日数|1日|2日|・・・・30日|31日|
0001 |2006|01| 31| 1| 0|・・・・ 1| 0|
このテーブルを、以下のように、
銀行コード・年・月・日をキーとしたテーブルに作り変えたいのですが
いいアイデアはあるでしょうか。
銀行コード| 年 |月|日|営業日フラグ|
0001 |2006|01| 1| 1|
0001 |2006|01| 2| 0|
・
・
・
0001 |2006|01|30| 1|
0001 |2006|01|31| 0|
No.1
- 回答日時:
モジュールを書けばという気もしますが、今回のみって事でしたら、とりあえず、力仕事で、追加クエリを作成し、順番に実行はどうでしょうか?
銀行コード| 年 |月|1|1日|
↓
銀行コード| 年 |月|日|営業日フラグ|
同様に
銀行コード| 年 |月|2|2日|
↓
銀行コード| 年 |月|日|営業日フラグ|
と31回クエリ実行では?
No.2ベストアンサー
- 回答日時:
逆だとクロス集計クエリで簡単なんですけどね...
日(数値型)だけのフィールドのテーブルを作成して1~31を登録
追加又はテーブル作成クエリにて、現在のテーブルと日だけのテーブルを選択
銀行コード;年;月;日;営業日フラグ:Dblookup(Strconv([日]&"日",4),"テーブル名","銀行コード='" & [銀行コード] & "' And [年]=" & [年] &" And [月]=" & [月])
として日の抽出条件に <=[日数] として存在しない日付は排除します。
※フィールド名の日付が半角の場合はStrconv関数での全角化の設定をはずしてください。
クエリでここまでできるとは・・・
感動しました。
あなたは天才です。師匠と呼ばせてください。
深く感謝いたします。
ありがとうございました。
No.4
- 回答日時:
銀行休日マスタテーブル(銀行コード以外は数値型)
銀行コード| 年 |月|日数|1日|2日|・・・・30日|31日|
0001 |2006|01| 31| 1| 0|・・・・ 1| 0|
0001 |2006|01| 28| 1| 0|・・・・ | |
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
で
新銀行休日マスタテーブル(銀行コード以外は数値型)
銀行コード| 年 |月|日|営業日フラグ|
0001 |2006|01| 1| 1|
0001 |2006|01| 2| 0|
としたらこんな風?
Sub test()
'要参照設定 Microsoft 3.x Object Library
Dim i As Integer
Dim rsOrg As DAO.Recordset
Dim rsNew As DAO.Recordset
Set rsOrg = CurrentDb.OpenRecordset("銀行休日マスタテーブル", dbOpenSnapshot)
Set rsNew = CurrentDb.OpenRecordset("新銀行休日マスタテーブル", dbOpenDynaset)
Do Until rsOrg.EOF
For i = 1 To 31 'か To rsOrg!日数 だと下記の日付チェックは不要
rsNew.AddNew
Debug.Print rsOrg(0).Name
rsNew(0) = rsOrg(0)
rsNew(1) = rsOrg(1)
rsNew(2) = rsOrg(2)
rsNew(3) = i
rsNew(4) = rsOrg(i + 3)
'rsNew.Update 'To rsOrg!日数の場合
If IsDate(Format(CStr(rsOrg(0)) & Format(rsOrg(1), "00") & _
Format(rsOrg(2), "00"), "@@@@/@@/@@")) Then
rsNew.Update
Else
rsNew.CancelUpdate
End If
Next
rsOrg.MoveNext
Loop
rsOrg.Close: Set rsOrg = Nothing
rsNew.Close: Set rsNew = Nothing
MsgBox "finished"
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- 銀行・ネットバンキング・信用金庫 お盆休みは銀行は営業していますか? 今年は15日が月曜日ですが、銀行は営業していて振込みをした場合で 7 2022/07/23 15:31
- その他(Microsoft Office) エクセルの休日について教えてください。 1 2023/01/06 15:45
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/10 09:15
- Oracle update文で質問です。 下記の条件でupdateをしたいですが、どのようにしたら良いでしょうか。 2 2022/06/23 10:51
- 簿記検定・漢字検定・秘書検定 簿記3級の勘定記入教えてください 2 2022/06/28 10:56
- Visual Basic(VBA) 列 A に同じ日が2つが必要です。 1 2023/03/28 07:25
- Visual Basic(VBA) 【Excel VBA】条件に合った行の表示・非表示を行う方法 3 2023/03/18 12:31
- その他(Microsoft Office) パワークエリの複数ファイルのデータ統合について 3 2022/07/14 17:06
- 所得税 予定納税の通知が来ない 3 2023/06/27 23:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
accessのテーブルを閉じたとき...
-
AccessVBAで任意の複数リンクテ...
-
最新日のデータのみ抽出するク...
-
Accessのリンクされたテーブル...
-
Accessで表計算のMatch関数のよ...
-
accessについて(超初心者です)
-
Accessでテキストフィールドの集計
-
テーブルに表示されているもの...
-
2つのテーブルに共通するレコ...
-
access vbaにてテンポラリーテ...
-
テーブル内の文字数が多くても...
-
Accessで、別のテーブルにある...
-
ACCESS テーブル同士の照合
-
Access2003 異なるテーブルを...
-
日付型のフィールドに空白を入...
-
ACCESSの時間帯の抽出について
-
差込印刷での全角表示について...
-
テキストボックスにクエリ結果...
-
「年」と「月」だけの日付の表...
-
更新クエリをリンクデータベー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2つのテーブルに共通するレコ...
-
最新日のデータのみ抽出するク...
-
テーブルに表示されているもの...
-
Acccessで2つのテーブルから1...
-
Accessでリストの並び順を変更...
-
Accessのリンクされたテーブル...
-
ACCESSユニオンクエリから新テ...
-
access vbaにてテンポラリーテ...
-
ACCESS テーブルを見比...
-
Accessのテーブルで、リンク?...
-
ACCESSでテーブルをコピーしよ...
-
アクセス 部分一致の抽出
-
accessについて(超初心者です)
-
Microsoft Access 「Form」のボ...
-
クエリで同一テーブルの複数回...
-
access2000・・テーブルをデー...
-
アクセス2016 チェックボックス...
-
Accessで使用しているリンクテ...
-
アクセス2000でのリンク先...
-
accessのテーブルを閉じたとき...
おすすめ情報