ACCESS VBA 余りを求める方法

ACCESSの計算式では、割り算の余りを利用するケースがあります。
ACCESS VBAでの余りの計算は、Modを利用します。
今回は、ACCESS VBAで余りを求める方法をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。
余りを求めるMod演算子
ACCESSで余りを求める際には、Mod演算子を利用します。
Mod演算子は以下のように利用します。
割られる数 Mod 割る数
非常にシンプルですね。
以下にいくつかMod演算子の利用例を示します。
式 | 結果 | 備考 |
---|---|---|
10 Mod 3 | 1 | |
10.8 Mod 3 | 2 | 小数点以下は四捨五入 |
-10 Mod 3 | -1 | 負の数でも計算可能 |
9 Mod 3 | 0 | 割り切れる場合は0 |
VBAで余りを求めるコード
VBAで余りを求める場合は、あまりの値によって条件分岐をさせたり、あまり回数だけループ処理をさせたりするケースが多いと思います。
以下は、あまりの回数だけレコード追加処理をループさせ、常にレコード数を12の倍数にするというプロシージャです。
Public Sub record_add()
Dim i As Long
Dim gyo As Long
'変数にADOオブジェクトを代入
Set cnn1 = CurrentProject.Connection
Set rst1 = New ADODB.Recordset
rst1.CursorLocation = adUseClient
'レコードセットを取得
rst1.Open "元テーブル", cnn1, adOpenKeyset, adLockOptimistic
i = 12 - rst1.RecordCount Mod 12
'最初から12の倍数であればレコード追加処理なし
If i = 12 Then
Exit Sub
End If
'レコード数が12の倍数でない場合、12の倍数になるよう空白レコードを追加
rst1.MoveLast
Do Until i = 0
rst1.AddNew
rst1!ID = ""
rst1!商品名 = " "
rst1.Update
i = i - 1
Loop
'終了処理
rst1.Close: Set rst1 = Nothing
cnn1.Close: Set cnn1 = Nothing
End Sub
以上、ACCESS VBAで余りを求める方法をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に200以上のACCESSデータベースの開発・修正実績のあるはこにわガジェット(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

最後までお読みいただき、ありがとうございました。