フォームの操作 1
フォームのレコードソースを設定する
1つのフォームを条件によってレコードソースを変更します。例では、「frm_伝票」フォームを ヘッダーのボタンによって、「tbl_入金伝票」と「tbl_出金伝票」に切り替えます。
Private Sub Form_Load() 'フォームを読み込んだ時に 「tbl_入金伝票」を読み込む Me.RecordSource = " tbl_入金伝票 " 'tbl_入金伝票 End Sub Private Sub Cmd1_Click() 'Cmd1をクリック時に 「tbl_出金伝票」に切り替える Me.RecordSource = " tbl_出金伝票 " 'tbl_出金伝票 End Sub Private Sub Cmd2_Click() 'Cmd1をクリック時に 「tbl_出金伝票」に切り替える Me.RecordSource = " tbl_入金伝票 " 'tbl_入金伝票 End Subレコードソースには「クエリー」や「SQL」も指定できます。
Private Sub Form_Load() 'フォームを読み込んだ時に 「tbl_社員」を読み込む Me.RecordSource = " SELECT tbl_社員.* FROM tbl_社員; " End Sub Private Sub トルグ1_Click() 'トルグ1をクリック時に 「tbl_社員」から女性社員(性別 = 1)だけを抽出 If トルグ1 = True Then Me.RecordSource = _ " SELECT tbl_社員.* FROM tbl_社員 WHERE (((tbl_社員.性別)=1)); " Else '「tbl_社員」から男性社員(性別 = 0)だけを抽出 Me.RecordSource = _ " SELECT tbl_社員.* FROM tbl_社員 WHERE (((tbl_社員.性別)=0)); " End If End Sub
関数を使ってデータの入力チェックをする
「LenB」関数を使ってテキストボックスのデータをバイト数で制限します。
Sub Txt_chk() Dim txtData As String txtData = frm.txt1.Value If LenB(txtData) > 64 Then MsgBox " 入力データは64バイト以下です " End If End Sub
Null値を判定する
Null値とは長さが 0 の文字列、つまり空のデータです。「IsNull」関数を使ってテキストボックスの
データの未入力をチェックします。
Sub NullChk() Dim txtData As String txtData = frm.txt1.Value If IsNull(txtData) = True Then MsgBox " データが未入力です " End If End Sub
レコードの合計数を取り出す
レコードの合計数を取り出すには、フォームのレコードソースにSQLで特定のフィールドをカウントし、それを「DSum」関数で集計すればできます。
しかし、フィールドの値に空値があると正しく集計されません。この場合、フォームヘッダーにテキストボックスを作成し、コントロールソースに 「=Recordset.RecordCount」と指定します。これができるのはフォームが「帳票形式」の時だけです。
テキストボックスのデータから指定の文字まで取り出す
「Addr」テキストボックスのデータに「県」が含まれる場合、左から県までの文字列を取り出します。
「氏名」テキストボックスのデータが「姓」と「名」をスペースで区切ってある場合、姓だけ取り出します。
'フォーム frm_User の 「氏名」テキストボックスのデータから姓だけデータを取り出し 'Sei テキストボックスに格納する。データはスペースで区切ってあるものとする '「InStr」関数でスペースが左から何文字目か調べる テキストボックス:Sei コントロールソース = Left([氏名], InStr([氏名]," " ) 'スペースが半角の場合 = Left([氏名], InStr([氏名]," " ) 'スペースが全角の場合 'フォーム frm_User の 「氏名」テキストボックスのデータから名前だけデータを取り出し 'Mei テキストボックスに格納する。データはスペースで区切ってあるものとする '「Mid」関数でスペースが何文字目から始まっているか調べる '「LTrim」関数でスペースを削除する テキストボックス:Mei コントロールソース = LTrim([氏名], Mid([氏名]," " ) 'スペースが半角の場合 = LTrim([氏名], Mid([氏名]," " ) 'スペースが全角の場合