2017年11月14日

【Access】オプションボタンの規定値を設定する


オプションボタンの規定値は、オプショングループの規定値(Value)プロパティで設定します。

たとえば、『オプションボタンのオプション値を取得する』の例でいうと、オプショングループ(frameSex)の規定値で設定します。

この規定値にオプションボタンのオプション値を設定しておけば、フォームを開いたときににそのオプションを選択した状態で開いてきます。


また、VBAで設定する場合は、フォームのロードイベントプロシージャに次のように記述します。
Private Sub Form_Load()

    Me.frameSex.Value = 1
    
End Sub
デザインビューで設定するのと同じように、オプショングループのValueプロパティにオプション値を設定します。

2017年11月13日

【Access】オプションボタンのオプション値を取得する


オプションボタンのオプション値を取得する方法です。

たとえばこのようなオプショングループ(frameSex)内にオプションボタン(optionMale、optionFemale)があるとします。


このオプションボタンのオプション値を取得し、値によって性別をラベルに表示させるには次のように記述します。
Private Sub frameSex_Click()

    Select Case Me.frameSex.Value
    
        Case Me.optionMale.OptionValue
            
            Me.labelValue.Caption = "男"
            
        Case Me.optionFemale.OptionValue
        
            Me.labelValue.Caption = "女"
    
    End Select
    
End Sub
ポイントは、オプショングループのValueプロパティです。
オプションボタンを選択したときオプションボタンのオプション値がこのオプショングループのValueプロパティに格納されます。

2017年11月12日

【PowerShell】Windowsフォームを作成する


PowershellでWindowsフォームを作成することが出来るということで試しに作ってみました。

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

$form = New-Object System.Windows.Forms.Form 
$form.Text = "フォーム作成テスト"
$form.Size = New-Object System.Drawing.Size(400,300) 
$form.StartPosition = "CenterScreen"

$form.ShowDialog()
最初にAdd-Typeで.Netのクラスを読み込んでいます。
あとはFormのオブジェクトを作成し、プロパティを設定します。
そして最後にShowDialog()で表示しています。

実行結果

コントロールが何もないまっさらなフォームです。
しかし結構簡単に作れちゃいました。これなら開発環境が無くてもフォームプログラムが作れますね。






2017年11月11日

【Access】リストボックスで選択されている項目数を取得する


リストボックスで選択されている項目数を取得するには、ItemsSelectedコレクションのCountプロパティを使います。

たとえば、このようなフォームにリストボックス(listFruits)とテキストボックス(textSelectedCount)が貼り付けてあるとします。


このリストボックスの選択されている項目数をテキストボックスに表示するには次のように記述します。
Private Sub listFruits_Click()

    Me.textSelectedCount.Value = Me.listFruits.ItemsSelected.Count
    
End Sub

2017年11月10日

【Access】リストボックスの選択された値を取得する


リストボックスの選択された値を取得するには、ItemsSelectedコレクションから選択行のインデックスを取得し、そのインデックスからItemDataプロパティで値を取得します。

たとえば、このようなフォームにリストボックス(listFruits)と[選択]ボタン(buttonSelect)、テキストボックス(textSelectedItem)が貼り付けてあるとします。


この[選択]ボタンをクリックしたときに選択された値をテキストボックスに表示するには次のように記述します。
Private Sub buttonSelect_Click()

    Dim selectedItem As String
    Dim n As Variant
    
    For Each n In Me.listFruits.ItemsSelected
        '選択された行の値を取得
        selectedItem = selectedItem & Me.listFruits.ItemData(n) & ","
    Next
    
    If Len(selectedItem) > 0 Then
        selectedItem = Left(selectedItem, Len(selectedItem) - 1)
    End If
    
    Me.textSelectedItem.Value = selectedItem
    
End Sub

実行結果







2017年11月9日

【Access】リストボックスに値を設定する(フィールド リスト)


リストボックスにテーブルやクエリーのフィールド名(フィールド リスト)を設定する方法です。

たとえば、このようなフォームにリストボックス(listFruits)が貼り付けてあるとします。


このリストボックスに次のテーブルのフィールド名を設定するには下記のように記述します。


Private Sub Form_Load()

    '値集合タイプ
    Me.listFruits.RowSourceType = "Field List"
    
    '値集合ソース
    Me.listFruits.RowSource = "T_果物"
    
End Sub

実行結果







2017年11月8日

【Access】リストボックスに値を設定する(テーブル/クエリ)


リストボックスにテーブルまたはクエリを使って値を設定する方法です。

たとえば、このようなフォームにリストボックス(listFruits)が貼り付けてあるとします。


このリストボックスに次のテーブルの値を設定するには下記のように記述します。


Private Sub Form_Load()

    '値集合タイプ
    Me.listFruits.RowSourceType = "Table/Query"
    
    '値集合ソース
    Me.listFruits.RowSource = "T_果物"
    
    '列数
    Me.listFruits.ColumnCount = 2
    
    '列幅
    Me.listFruits.ColumnWidths = "0cm;2cm"
    
End Sub
ポイントは「列幅」で、1列目を0cmとして2列目だけを表示している点です。こうすることでテーブルのIDではなく実際の名前がリストボックスに表示されるようになります。