Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6290 / 9994 ←次へ | 前へ→

【6911】Re:2年分の検索方法は?
発言  小僧  - 05/12/5(月) 17:51 -

引用なし
パスワード
   ▼わん さん:
こんばんは。

できた事はできたのですが、
「とりあえずできた」程度のモノですので参考までに…。

フォーム:フォーム名
コンボボックス
cmb年
cmb月
cmb名前

テキストボックス(コントロールソース)
txt年(年)
txt月(月)
txt名前(名前)
txt結果1(結果1)
txt結果2(結果2)
txt前年結果1(無し)
txt前年結果2(無し)

フォームのレコードソース

SELECT Year([日付]) AS 年,
IIf(IsNull(Forms!フォーム名!cmb月),"---",Month(テーブルI.日付)) AS 月,
IIf(IsNull(Forms!フォーム名!cmb名前),"---",テーブルI.名前) AS 名前,
Sum(テーブルI.結果1) AS 結果1,
Sum(テーブルI.結果2) AS 結果2
FROM テーブルI
WHERE (((IIf(IsNull([Forms]![フォーム名]![cmb月]),"---",Month([テーブルI].[日付])))="---" Or
(IIf(IsNull([Forms]![フォーム名]![cmb月]),"---",Month([テーブルI].[日付])))=[Forms]![フォーム名]![cmb月]) AND
((IIf(IsNull([Forms]![フォーム名]![cmb名前]),"---",[テーブルI].[名前]))="---" Or
(IIf(IsNull([Forms]![フォーム名]![cmb名前]),"---",[テーブルI].[名前]))=[Forms]![フォーム名]![cmb名前]))
GROUP BY Year([日付]),
IIf(IsNull(Forms!フォーム名!cmb月),"---",Month(テーブルI.日付)),
IIf(IsNull(Forms!フォーム名!cmb名前),"---",テーブルI.名前),
IIf(IsNull(Forms!フォーム名!cmb月),"---",Month(テーブルI.日付)),
IIf(IsNull(Forms!フォーム名!cmb名前),"---",テーブルI.名前)
HAVING (((Year([日付]))=[Forms]![フォーム名]![cmb年]));

(コピーペーストでいけると思います…。)


あとは、cmb年、cmb月、cmb名前の更新後処理から
関数を呼び出す形になります。

Private Sub cmb年_AfterUpdate()
  Call LastYear
End Sub

Private Sub cmb月_AfterUpdate()
  Call LastYear
End Sub

Private Sub cmb名前_AfterUpdate()
  Call LastYear
End Sub

Sub LastYear()
Dim strWhere As String

  strWhere = "Year([日付]) = " & CLng(Me.cmb年) - 1
  
  If Not IsNull(Me.cmb月) Then
    strWhere = strWhere & " AND Month([日付]) = " & CLng(Me.cmb月)
  End If
  
  If Not IsNull(Me.cmb名前) Then
    strWhere = strWhere & " AND 名前 = '" & Me.cmb名前 & "'"
  End If
  
  Me.txt前年結果1.value = DSum("結果1", "テーブルI", strWhere)
  Me.txt前年結果2.value = DSum("結果2", "テーブルI", strWhere)
  Me.Requery
End Sub


色々と考えていたのですが、上記の通りまとまったものができなくてすみません。
1,510 hits

【6875】2年分の検索方法は? わん 05/11/30(水) 12:41 質問
【6877】Re:2年分の検索方法は? 小僧 05/11/30(水) 13:44 回答
【6878】Re:2年分の検索方法は? わん 05/11/30(水) 14:26 質問
【6881】Re:2年分の検索方法は? 小僧 05/11/30(水) 14:57 発言
【6882】Re:2年分の検索方法は? わん 05/11/30(水) 15:57 質問
【6885】Re:2年分の検索方法は? 小僧 05/11/30(水) 16:21 発言
【6896】Re:2年分の検索方法は? わん 05/12/3(土) 14:57 質問
【6897】Re:2年分の検索方法は? わん 05/12/3(土) 18:36 発言
【6900】Re:2年分の検索方法は? 小僧 05/12/5(月) 9:52 発言
【6903】Re:2年分の検索方法は? わん 05/12/5(月) 13:06 発言
【6906】Re:2年分の検索方法は? 小僧 05/12/5(月) 14:26 発言
【6908】Re:2年分の検索方法は? わん 05/12/5(月) 15:04 発言
【6911】Re:2年分の検索方法は? 小僧 05/12/5(月) 17:51 発言
【6934】Re:2年分の検索方法は? わん 05/12/8(木) 13:47 質問
【6935】Re:2年分の検索方法は? 小僧 05/12/8(木) 13:58 発言
【6952】Re:2年分の検索方法は? わん 05/12/10(土) 12:21 お礼
【6957】Re:2年分の検索方法は? わん 05/12/12(月) 16:41 お礼
【6961】Re:2年分の検索方法は? わん 05/12/13(火) 11:26 質問
【6962】Re:2年分の検索方法は? 小僧 05/12/13(火) 13:15 発言
【6964】Re:2年分の検索方法は? わん 05/12/13(火) 14:21 発言
【6966】Re:2年分の検索方法は? 小僧 05/12/13(火) 15:17 発言
【6968】Re:2年分の検索方法は? わん 05/12/13(火) 16:36 発言
【6967】Re:2年分の検索方法は? 小僧 05/12/13(火) 15:21 回答
【7022】Re:2年分の検索方法は? わん 05/12/28(水) 1:48 お礼

6290 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078229
(SS)C-BOARD v3.8 is Free