Access Tips by pPoy

  
トップへ←Top    QueryへQuery  FormへForm  ReportへReport  Module(Sub)へSub  Module(Function)へFunction  ExcelへExcel  Etc.へEtc.  Word連携へWord

Form フォームオープン時にコンボボックスの値リストを動的に設定する方法2
《今月の日付範囲を設定, RowSource》 (Ac97,Ac2000,Ac2002)
フォームに作成したコンボボックスで、今月の日付を選択して欲しい場合があります。

通常は 「値リスト」 ととして、予め必要な日付を設定します。
これには少し困ったことがあります。

「値リスト」の場合、最初に設定した値しか選べません。
日数はその月によって異なります。1 〜 31 日までを設定した場合、2 月などでは困ってしまいます。

以下は、コンボボックスの 「値リスト」 の日付を動的に設定する方法です。
設定する基準として、当月の1ヶ月分としています。
フォームのどこかに、非連結のコンボボックスを一つ追加してください。
そのコンボボックスの プロパティーを以下のように設定してください。

  • 名前:         「cmb_Date」
  • 値集合タイプ:    「値リスト」
  • 値集合ソース:    空白
  • コントロールソース: 空白
作成したフォームの、「開く時」 イベントに、以下のコードを貼り付けてください。
Private Sub Form_Open(Cancel As Integer)
    'Open時にコンボボックスの値リストを設定。2003/12/20 pPoy
    '今月の日付一覧設定。 cmb_Date
    
    Dim i As Integer
    Dim myDate As Integer, myLastDate As Integer
    Dim strDocName As String
    
    '今月の月末日取得&変数初期化
    myLastDate = DatePart("d", DateSerial(Year(Now()), Month(Now()) + 1, 0))
    strDocName = 1
    myDate = 1
    
    Do
        myDate = myDate + 1
        strDocName = strDocName & ";" & myDate
    Loop Until myDate = myLastDate
    
    cmb_Date.RowSource = strDocName
End Sub
≪結果≫

Cmb_Date

今月が 1月だった場合、
このフォームを開きコンボボックスを選択すると、
「1 〜 31」 迄が一覧で表示されます。

2月だった場合、「1 〜 28」 若しくは、 「1 〜 29」 が表示されます。
≪注意≫
  • デザイン画面で、「値リスト」 を設定済みの場合でも、フォームを開いたときに上書きされ、
    デザイン時の設定は無視されます。

  • AddItem を使用してセットする方法は、こちら です。



【念の為の注意書きです。】
このページ(下位ページ含む)の全ての物の無断転載を禁止いたします。又、当ページ(下位ページ含む)に記載されていることは、全て自己の責任において実行してください。

☆ 感想をお知らせください (直接ブラウザから送信致します。メールアカウントは不要です。)
  form mail はこちら

Copyright(C) pPoy 2003