AccessVBAメモ

AccessVBAで作ったサンプルコード集

2017-01-01から1年間の記事一覧

AccessVBA バーコード用コードにチェックデジットを追加する NW7

Accessレポート上で、バーコードを標準表示できますが、access2010まではチェックデジット付きのバーコードを表示することができないようです。 またNW7の場合、数字のみで構成されるコードは標準機能で表示されるものの、以下のリンク先にあるようなNW7を構…

AccessVBA フィールド内の指定文字を目印に分割する

「123456-01」といったコードなどをハイフンを境に前と後ろで分割して取得したい、 「田中 太郎」といった姓と名をスペースで区切って分割して取得したいなど、 指定した文字などを目印にそれ以降と以前で分割して別のフィールドに保存したいケースなどに使…

AccessVBA 処理結果に応じてテーブルのフィールド名を変更する

例えば、日付、Field1、Field2と3つのフィールドがあるテーブルがあるとします。 計算結果によっては、Field1が商品A、ある時には商品Bなど、状況によって、Field1と2に表示したいフィールド名が可変になる場合があります。 計算元のテーブルやクエリをクロ…

AccessVBA フィールド名を探索して処理を分岐する

テーブルに特定のフィールド名があるかどうかを確認して、ある場合に処理をするというコードを書いてみました。 他のアクセスファイルやEXCELファイルなどから、インポート操作を行った場合に 状況によって特定のフィールド名があったりなかったりする場合に…

AccessVBA フィールド内の数値のみを取り出して編集する

例えば、IDやコードNoなどで、「01234-0」や「A01234」といったように 数値と文字や記号混じりの文字列から、「数値」のみ を取り出して編集したい場合などで使えるコードです。 サンプルコードでは、[テーブル名]というテーブル内にあるIDフィールドから数…

AccessVBA テーブル内のフィールド名を検索して処理

テーブル内に同じカテゴリーのフィールドが複数ある場合があります。 例えば、氏名1、氏名2、氏名3 といったようにフィールド名の末尾に数字をつけて登録しているようなケースです。 このようなケースで、同じカテゴリーのフィールドに同一の処理を行う場合…

AccessVBA 常に直近◯ヶ月のデータを自動で抽出する設定を行う

日付の入ったテーブルから、その日付を元に例えば直近3ヶ月間など常に一定期間のデータを抽出したい場合があります。 フォーム画面で抽出期間を設定し、コマンドクリック時に抽出することも可能ですが、常に一定期間の場合、手動で期間を設定する手間を省く…

AccessVBA 自身のファイルサイズを取得し処理をストップさせる

アクセスのファイル容量が2GBを超えるとファイルが破損してしまいます。 大容量のデータをインポート実行後、或いは大容量のデータ処理を行なった直後など、一時的にファイル容量が大きくなってしまいます。 ファイルを閉じる際に最適化をするにチェックを入…

AccseeVBA Excelエクスポート 決まったファイル名で上書き保存する

AccessからエクスポートしたEXCELファイルが何のファイルだったか分からなくなってしまうのを避けるため、毎回決まったファイル名(一定のルールのもとで作成されたファイル名)をエクスポートする仕様を作ってみました。 繰返し同じ処理を行う可能性を考慮…

AccessVBA Access2010のナビゲーションウィンドウ・クイックアクセスバーの表示切り替え

Access2000(.mdb)ファイルの場合には、Shift+Enter起動に制限をかけることで、 テーブルなどのファイル内容閲覧に制限をかけることができます。 ※参考サイト 上記サイトを参考にAccess2000ではデータベースウィンドウを非表示にすることができました。 自…

AccessVBA 元データにグループ毎の集計結果(演算結果)を挿入する(配列変数)

元データのグループごとの合計値を元データに挿入する。 大量レコードを処理する場合は動作が遅くなるようだが(1000〜2000レコードくらいまで?)、配列変数を使って作成してみる。 <元データ> 値が全て0になっている総数のフィールドに商品ごとの合計値…

AccessVBA Do Loop グループ内のナンバリング(連番)設定 共有ロックエラー退避含む

元のレコード内のグループ内で連番を設定する。 新たなテーブルに連番を降ったレコードを追加してみた。 <元データ> <追加後の完成イメージ> 商品ごと日付ごとに順位付けを行い、連番を振ったフィールドを追加した。 回数フィールドに追加した連番を記述…

AccessVBA Do Loop 処理回数をレコード内容によって繰返し処理を行う

レコード内容によって処理(追加)を繰り返し行う。 Do〜Loop構文を使って行ってみた。 <元データ> <追加後の完成イメージ> ここでは数量フィールドの内容によって、例えば数量=1だと1回、数量=2だと2回レコードの追加処理を行っている。 繰り返し追加…