--------------------------------------------------------------------------------- 2、Left(文字列,文字数) 文字列の左から指定した文字数分だけ取り出す。 --------------------------------------------------------------------------------- 3、CCur(値) 値を通貨型に変換する。 --------------------------------------------------------------------------------- 4、Clng(値) 値を長整数に変換する。 --------------------------------------------------------------------------------- 5、Format([日付],"oooo") 設定にするとクロス集計などで正しく表示される。 以下は日付の表示書式です。 yy>00~99 yyyy>1900~999 m>1~12 mm>01~12 mmmm>January d>1~31 dd>01~31 ddd>Sun mmm>Jan dddd>Sunday oooo>1月 --------------------------------------------------------------------------------- 6、マクロ名”AutoExec”としたら起動時に自動起動する。 --------------------------------------------------------------------------------- 7、OpenForm はフォームを開く。DoCmd.OpenForm --------------------------------------------------------------------------------- 8、OpenReport はレポートを開く、印刷 --------------------------------------------------------------------------------- 9、Close はフォームを閉じる。DoCmd.Close acForm,Me.Nameは今現在開いているフォームを閉じるコード。 --------------------------------------------------------------------------------- 10、SelectObject オブジェクトを選択する。 --------------------------------------------------------------------------------- 11、ApplyFilter フィルタを実行する。 --------------------------------------------------------------------------------- 12、ShowAllRecords フィルタを解除する。 --------------------------------------------------------------------------------- 13、マクロをマクロVBAに変換するには、マクロ選択>ファイル>名前を付けて保存>貼り付ける形式>モジュール>保存。 --------------------------------------------------------------------------------- 14、Private Sub bottn_Click() DoCmd.OpenForm"住所録",acNormal,,"Clng(DateValue([誕生日])) >= " & CStr(Clng(DateValue([Forms]![メニュ]![誕生日]))) End Sub --------------------------------------------------------------------------------- 15、Exit Sub は抜ける。 --------------------------------------------------------------------------------- 16、On Error GoTo Err はエラーが発生しても次のコードを実行する。 On Error GoTo ラベル名 ・・・・・・・・・ ラベル名: MsgBox エラー発生しました。 --------------------------------------------------------------------------------- 17、DoCmd.Maximize は画面最大化、DoCmd.Restore は元のサイズに戻す。印刷プレビューモードで開いたら、閉じる前に必ず、Restoreしなければならない。 --------------------------------------------------------------------------------- 18、Where条件式はstLinkCriteriaという文字列変数に設定する。 stLinkCriteria = "(["フィールド名"]) like '*" & 条件.value & "*' " --------------------------------------------------------------------------------- 19、stLinkCriteria = stLinkCriteria & "and DateValue([誕生日フィールド]) <= " & CStr(Modul1.BirthDay) & " " --------------------------------------------------------------------------------- 20、ウィンドウの開き方 acNormal acFormReadOnly acWindowNormal Minimize Maximize --------------------------------------------------------------------------------- 21、WhereCond = ""は全部表示 WhereCond = "([フィールド名]) = [Forms]![メイン]![フィールド名].Value" --------------------------------------------------------------------------------- 22、サブフォームの指定 Forms!メインフォーム名!サブフォーム名.Form!コントロール名 --------------------------------------------------------------------------------- 23、Forms!フォーム名!コントロール名 と Me!コントロール名は同じ --------------------------------------------------------------------------------- 24、右辺から左辺へ値の代入 Forms!フォーム名!コントロール名 = 100 Forms!フォーム名!コントロール名 = "文字列" Forms!フォーム名!コントロール名 = #02/31/2002# --------------------------------------------------------------------------------- 25、小数点を含むかもしれない場合にはデータの形をSingle型か Double型にすること。 --------------------------------------------------------------------------------- 26、データ型変換関数 CBool Bool型に変換 CByte Byte型に変換 Clnt Integer型に変換 CLng Long型に変換 CSng Single型に変換 CDbl Double型に変換 CCur 通貨型に変換 CDate 日付型に変換 CStr 文字列型に変換 CVar 数値型に変換 --------------------------------------------------------------------------------- 27、型の変換をするには変数に一度代入して使う。 --------------------------------------------------------------------------------- 28、モジュールの宣言部に Option Explicit を追加すると定義してない変数を使えなくすることができる。 --------------------------------------------------------------------------------- 29、and条件の書き方 hensu = (a >= 100) And (a <= 200) --------------------------------------------------------------------------------- 30、文字列を比較する hensuA = hensuB like "*あ*" 変数Bに あ という文字列が含まれいるか判定する。 --------------------------------------------------------------------------------- 31、アクセスでは ひらがな、カタカナ、半角カタカナ は区別されない。 --------------------------------------------------------------------------------- 32、ループを抜けるには Exit Do --------------------------------------------------------------------------------- 33、Functionプロシージャの注意点 1、戻り値のデータ型を宣言 2、コード内で戻り値を設定する。 3、変数と戻り値の変数を同じ型にする。 Private Function AAAAA() As String ............ AAAAA = "ああああ" End Function --------------------------------------------------------------------------------- 34、ジェネラルプロシージャの場合引数は自分で設定しなければ自動では設定されない。 Private Sub AAAA(b As Integer,c As Integer) As Integer .............. End Function --------------------------------------------------------------------------------- 35、変数 Dim と Static の違い Dim>変数はプロシージャ内のみ有効 Static>変数はモジュール(例フォーム)を終了まで有効。 --------------------------------------------------------------------------------- 36、モジュールレベル変数を宣言する。 1、通常 mCnt などのように先頭に m をつけることが多い。 2、Option Explicit Private mCnt As integer --------------------------------------------------------------------------------- 37、パブリック変数は全てのプロシージャから利用できる。 1、通常 Public pCnt As Integer --------------------------------------------------------------------------------- 38、標準モジュールはデータベース全体で利用するプロシージャを書くところ。 --------------------------------------------------------------------------------- 39、イミディテイウィンドはデバッグ用のコードを書くところ。標準モジュールでしか使えない。 --------------------------------------------------------------------------------- 40、ローカルウィンドウは実行中の変数を表示するところ。 --------------------------------------------------------------------------------- 41、レコードを抽出する Private Sub コマンド12_Click() Me.Filter = "商品グループ = '" & Me!txt条件 & "'" Me.FilterOn = True End Sub --------------------------------------------------------------------------------- 42、検索ボックスにデータが入ってない時の処理 If IsNull(Me!txt条件) Then Beep MsgBox "抽出する値を入力してください", vbOKOnly + vbCritical, "抽出" Exit Sub End If --------------------------------------------------------------------------------- 43、抽出を解除する。 Private Sub 解除_Click() Me.FilterOn = False End Sub --------------------------------------------------------------------------------- 44、リストボックスに抽出データを表示する。 Private Sub 抽出_Click() Me!リスト結果.RowSource = "SELECT * FROM テーブル名 " _ & "WHERE フィールド名 = '" & Me!txt条件 & "'" Me!リスト結果.Requery End Sub --------------------------------------------------------------------------------- 45、リストボックスの初期化 Private Sub 初期化_Click() Me!リスト結果.RowSource = "" Me!リスト結果.Requery <===再クエリーの実行 End Sub --------------------------------------------------------------------------------- 46、サブフォームに抽出結果を表示する Private Sub 抽出_Click() Me!サブフォーム名.Form.Filter = "商品グループ = '" & Me!txt条件 & "'" Me!サブフォーム名.Form.FilterOn = True End Sub --------------------------------------------------------------------------------- 47、サブフォームの抽出解除。2度目の抽出をすると解除になる。 Private Sub 解除_Click() Call 抽出_Click End Sub --------------------------------------------------------------------------------- 48、タブシートによる切り替え(サブフォームボタンを非連結で使う) Private Sub tabフリガナ_Change() Select Case Me!tabフリガナ Case 0: Me!lbl条件.Caption = "[ア-オ]*" Case 1: Me!lbl条件.Caption = "[カ-コ]*" Case 2: Me!lbl条件.Caption = "[サ-ソ]*" Case 3: Me!lbl条件.Caption = "[タ-ト]*" Case 4: Me!lbl条件.Caption = "[ナ-ノ]*" Case 5: Me!lbl条件.Caption = "[ハ-ホ]*" Case 6: Me!lbl条件.Caption = "[マ-モ]*" Case 7: Me!lbl条件.Caption = "[ヤ-ヨ]*" Case 8: Me!lbl条件.Caption = "[ラ-ロ]*" Case 9: Me!lbl条件.Caption = "[ワ-ン]*" Case 10: Me!lbl条件.Caption = "*" End Select Me!sub結果.Requery End Sub --------------------------------------------------------------------------------- 49、フレームとトグルボタンによる切り替え(サブフォームボタンを非連結で使う) Private Sub fra条件_AfterUpdate() Dim criteria As String Select Case Me!fra条件 Case 1: criteria = "市区町村よみ like '[ア-オ]*'" Case 2: criteria = "市区町村よみ like '[カ-コ]*'" Case 3: criteria = "市区町村よみ like '[サ-ソ]*'" Case 4: criteria = "市区町村よみ like '[タ-ト]*'" Case 5: criteria = "市区町村よみ like '[ナ-ノ]*'" Case 6: criteria = "市区町村よみ like '[ハ-ホ]*'" Case 7: criteria = "市区町村よみ like '[マ-モ]*'" Case 8: criteria = "市区町村よみ like '[ヤ-ヨ]*'" Case 9: criteria = "市区町村よみ like '[ラ-ロ]*'" Case 10: criteria = "市区町村よみ like '[ワ-ン]*'" Case 11: criteria = "市区町村よみ like '*'" End Select Me!sub結果2.Form.Filter = criteria Me!sub結果2.Form.FilterOn = True End Sub --------------------------------------------------------------------------------- 50、昇順・降順並べ替え(フレームとオプションボタン使用) Private Sub fra表示順_AfterUpdate() Select Case fra表示順 Case 1: Me.OrderBy = "市区町村よみ asc" Case 1: Me.OrderBy = "市区町村よみ desc" End Select Me.OrderByOn = True End Sub --------------------------------------------------------------------------------- 51、テキストボックスのデータがアルファベットか判定する。 Dim str As String str = Left(Me!テキストボックス名,1) If(str >= "A") And (str <="Z") Then Else Beep MsgBox"アルファベッドではありません",vbOKOnly + vbInfomation,"アルファベッドチェック" Cansel = True --------------------------------------------------------------------------------- 52、テキストボックスの入力文字数を数える。 Dim Length As Long Length = Len(Me!テキストボックス名) If Length <> 5 Then Beep MsgBox"5文字以上入力して下さい。",vbOKOnly + vbInfomation,"文字数チェック" --------------------------------------------------------------------------------- 53、パスワード Private Sub コマンドボタン_Click() If Me!パスワードテキストボックス名 = "password" Then ・・・・・・・・・・・・・・ Else Beep MsgBox"パスワードが違います。",vbOkOnly End if DoCmd.Close acForm,"パスワード画面フォーム名" End Sub --------------------------------------------------------------------------------- 54、移動ボタン Private Sub コマンド154_Click() Me.Recordset.MoveFirst End Sub Private Sub 前へ_Click() On Error GoTo Err_前へ_Click DoCmd.GoToRecord , , acPrevious Exit_前へ_Click: Exit Sub Err_前へ_Click: MsgBox Err.Description Resume Exit_前へ_Click End Sub Private Sub コマンド156_Click() Me.Recordset.MoveNext End Sub Private Sub コマンド157_Click() Me.Recordset.MoveLast End Sub --------------------------------------------------------------------------------- 55、パスワードを登録するには パスワード用フィールドのプロパティの定型入力>パスワードで設定すると ************で表示される。 --------------------------------------------------------------------------------- 56、ADOオブジェクトはプログラムの中でデータベースを扱うことができる。 メモリー上でテーブルを開いてレコードを検索したり、値を変更できる。 Dim cn As ADODB.Connection '接続情報 Dim rs As ADODB.Recordset 'レコードセットオブジェクト Dim length As Integer '入力した文字数 Set cn = CurrentProject.Connection 'カレントデータベースに接続 Set rs = New ADODB.Recordset '新規レコードオブジェクトを作成 rs.Open"テーブル名",cn,adOpenStatic,adLockReadOnly 'テーブル名をもとに読取専用のレコードオブジェクトを作成する。 ・・・・・・・・・・・・・処理・・・・・・・・・・ rs.Find"フィールド名 = '" & Me!フィールド名 & "'" rs.Close:Set rs = Nothing + cn.Close:Set cn = Nothing End Sub ------------------------------------------------- 57、リストボックスの背景に色を付ける Private Sub リスト_GotFocus() Me!リスト.BackColor = RGB(206,255,255) End Sub ------------------------------------------------- 58、検索には2つの方法がある。 1、クエリーを作成して検索する 2、フィルターを使用して検索する ------------------------------------------------- 59、レポートに連番を付ける。 1、非連結テキストボックス追加 2、コントロールソースに =[CurrntRecord] --------------------------------------------------- 60、並べ替えグループ化の使い方 1、普通にフィールドを昇順・降順とグループ化を設定できる。 2、フィールドに新しいフィールド名を入れてグループヘッダーを「はい」にする と新しいセクションが追加できる。 ------------------------------------------------------------------------------ 61、先頭文字でグループ化する 1、プロパティの”グループごと”を”先頭の値”に設定 2、”グループヘッダーセクション”非連結テキストボックス追加 3、”コントロールソース”に =Left([フィールド名],2) 先頭2文字でグループ化 --------------------------------------------------------------------------------- 62、日付/時刻型のフィールドの場合のグループ化 1、年・月・週・日・時・分・ 四半期 などを指定できる 2、”グループヘッダーセクション”非連結テキストボックス追加 3、”コントロールソース”に =Year([生年月日] & "年") -------------------------------------------------------------------------------- ============================================================ 63、メイン/サブフォームは「リンク子フィールド」「リンク親フィールド」で同じ フィールド名を設定することによりリンクされる。 ----------------------------------------------------------------------- 64、リレーションシップが設定されていないと、ウィザードでメイン/サブフォームを 作成することはできない。 ------------------------------------------------------------------------ 65、今日の年齢を求める。 クエリーに演算フィールド作成して、 IIf(Format([生年月日]),"mm/dd")>Format(Date(),"mm/dd"),DateDiff("yyyy",[生年月日],Date())-1,DateDiff("yyyy",[生年月日],Date())) ------------------------------------------------------------------------- 66、データ削除 Private Sub 削除ボタン_Click() On Error GoTo Err_SakujoErr DoCmd.RunCommand acCmdDeleteRecord Exit_削除ボタン_Click: Exit Sub Err_SakujoErr_Click: DoCmd.CancelEvent End Sub ----------------------------------------------------------------------------- 67、データ移動 DoCmd.GoToRecord acDataForm, "社員", acGoTo, 7 acFirst acGoTo acLast acNewRec acNext (既定値) acPrevious ------------------------------------------------------------------------ 68、データ登録 Private Sub 登録ボタン_Click() Dim rec As integer Beep rec = MsgBox("登録しますか?",vbYesNoCancel + vbQuestion,"確認") Select Case rec Case vbYes DoCmd.GoToRecord acDataForm,"フォーム名",acNewRec Exit Sub Case vbNo DoCmd.RunCommand acCmdDeleteRecord DoCmd.GoToRecord acDataForm,"フォーム名",acNewRec Case vbCancel End Select End Sub ----------------------------------------------------------------------------- 69、誕生日を求める。 =IIf(Format([生年月日],"mm/dd")>Format(Date(),"mm/dd"),Datediff("yyyy",[生年月日],Date())-1,DateDiff("yyyy",[生年月日],Date())) -------------------------------------------------------------------------------- 70、集計関数 =Avg([フィールド名]) =Sum([フィールド名]) =Min([フィールド名]) =Max([フィールド名]) =Count([フィールド名]) =First([フィールド名]) =Last([フィールド名]) ------------------------------------------------ 71、複数条件に合致するデータを抽出 クエリーで同一の抽出条件行に「条件」を入力 ------------------------------------------------ 72、OR条件でデータ抽出 クエリーの抽出条件の行を変えて「条件」を入力 ------------------------------------------------- 73、レポートにパラメータのデータを表示する。 1、非連結テキストボックスをレポートに追加する 2、テキストボックスの「コントロールソース」にパラメータの条件[開始日を入力]を設定する。 -------------------------------------------------- 74、フォームのテキストボックスデータでサブフォームに検索結果を出したい 1、フォームに非連結テキストボックスを作成 2、新規クエリーの抽出条件に[Forms]![フォーム名][テキストボックス名] 3、非連結サブフォームのコントロールソースにクエリーを設定 4、マクロに「再クエリ」アクションを設定 5、再クエリーをボタンイベントに登録する。 ------------------------------------------------------------------------ 75、リストボックスに検索結果を出したい。 1、フォームにリストボックスを作成 2、新規クエリーの抽出条件に[Forms]![フォーム名][テキストボックス名] 3、非連結サブフォームのコントロールソースにクエリーを設定 4、マクロに「再クエリ」アクションを設定 5、再クエリーをボタンイベントに登録する。 ------------------------------------------------------------------------ 76、上記75のレポートを出力 1、クエリーをもとにウィザードでレポート作成 2、ボタンイベントに設定 ------------------------------------------------------------------------ 77、あいまい検索 クエリーの検索条件に Like "*" & Forms![フォーム名]![コントロール名] & "*" ------------------------------------------------------------------------ 78、フィルタ機能で検索(サブフォームにフォームに使っている場合のみ) Private Sub 検索_Click() Me!subサブフォーム名.Form.Filter = "フィールド名 Like '*" & Me!検索条件テキストボックス名 & "*'" Me!subサブフォーム名.Form.FilterOn = True End Sub ------------------------------------------------------------------------- 79、トグルボタンで「あかさたな」で抽出 1、フレームないにトグルボタンを複数作成。 2、サブフォームを作成する。ウィザードでテーブルに連結したデータシートを作成 3、フレームのイベントコードを設定 Private Sub fra条件_AfterUpdate() Dim criteria As String Select Case Me!fra条件 Case 1: criteria = "市区町村よみ like '[ア-オ]*'" Case 2: criteria = "市区町村よみ like '[カ-コ]*'" Case 3: criteria = "市区町村よみ like '[サ-ソ]*'" Case 4: criteria = "市区町村よみ like '[タ-ト]*'" Case 5: criteria = "市区町村よみ like '[ナ-ノ]*'" Case 6: criteria = "市区町村よみ like '[ハ-ホ]*'" Case 7: criteria = "市区町村よみ like '[マ-モ]*'" Case 8: criteria = "市区町村よみ like '[ヤ-ヨ]*'" Case 9: criteria = "市区町村よみ like '[ラ-ロ]*'" Case 10: criteria = "市区町村よみ like '[ワ-ン]*'" Case 11: criteria = "市区町村よみ like '*'" End Select Me!sub結果2.Form.Filter = criteria Me!sub結果2.Form.FilterOn = True End Sub -------------------------------------------------------------------------------- 80、タブコントロールを使って「あかさたな」で表示 1、タブコントロール作成 2、非連結サブフォーム作成 3、新規クエリー作成「抽出条件」に Like[Forms]![フォーム]![条件テキストボックス] 4、非連結サブフォームのコントロールソースにクエリー設定 Private Sub tabフリガナ_Change() Select Case Me!tabフリガナ Case 0: Me!lbl条件.Caption = "[ア-オ]*" Case 1: Me!lbl条件.Caption = "[カ-コ]*" Case 2: Me!lbl条件.Caption = "[サ-ソ]*" Case 3: Me!lbl条件.Caption = "[タ-ト]*" Case 4: Me!lbl条件.Caption = "[ナ-ノ]*" Case 5: Me!lbl条件.Caption = "[ハ-ホ]*" Case 6: Me!lbl条件.Caption = "[マ-モ]*" Case 7: Me!lbl条件.Caption = "[ヤ-ヨ]*" Case 8: Me!lbl条件.Caption = "[ラ-ロ]*" Case 9: Me!lbl条件.Caption = "[ワ-ン]*" Case 10: Me!lbl条件.Caption = "*" End Select Me!sub結果.Requery End Sub -------------------------------------------------------------------------------- アクセスVBA覚書2 |
||||||||