カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

ACCCESS レコード移動のエラー回避

ACCESSのフォームにレコード移動のボタンを追加し、前後のレコード移動が出来るようにするときのエラー回避についてです。
例えば、カレントレコードが最終レコードのときに次のレコードへ移動しようとするとエラーが発生します。
それを回避するために基本的には次のように処理します。

Private Sub 次へ_Click()
On Error Resume Next

    DoCmd.GoToRecord , , acNext

End Sub

On Error Resume Nextは「エラーが発生した場合、無視して次のコードへ進む」という意味です。

レコード移動のボタンには前述のようにエラーを無視するよう処理を記述しますが、
私はそれ以前に移動可能な場合のみボタンが押せるようにしています。

フォームのレコード移動時イベントに以下を記述します。

If Me.CurrentRecord = Me.Recordset.RecordCount Then
    次へ.Enabled = False
Else
    次へ.Enabled = True
End If

If Me.CurrentRecord = 1 Then
    前へ.Enabled = False
Else
    前へ.Enabled = True
End If

現在表示中のデータが最終レコードであれば「次へ」ボタンを押せないよう無効にし、
先頭レコードであれば「前へ」ボタンを押せないように無効にしています。

6,030 views

InputBoxのキャンセル

VisualBasicでInputBoxを使う際、キャンセルされた時は長さ0の文字列を返しますが、何も入力せずOKを押した時も同様に長さ0の文字列が返ってきます。

キャンセルの判定をして、それに伴った処理をしたい場合に困ってしまいます。
そんな時には以下のようにするとキャンセルの判定ができます。

Dim ans As String       'InputBoxの戻り値
Dim boolFlag As Boolean '判定フラグ
boolFlag = False
Do Until boolFlag = True
    ans = InputBox("入力してください")
    If StrPtr(ans) = 0 Then Exit Sub 'キャンセル時に終了
    boolFlag = True
Loop
2,610 views

Access レポートの罫線を指定した行まで表示する

Accessで納品書や各種明細、伝票などのレポートを作成した場合、ページ下部まで空行が表示されるようにしたいことがあります。
今回は経理で使う振替伝票を例にその方法をご紹介します。

まずは作成したいレイアウトをデザインしてください。

Accessの「グループ化と並べ替え」機能を使います。
振替伝票なので伝票番号でグループ化します。
ここでポイントは伝票番号のグループ化を二重にすることです。

二重にしたグループ化の設定を見ていきましょう。
下にあるほうが外側になりますので、上段が内側になります。

内側のグループはヘッダーなし、フッターありで設定します。

下段の外側グループにはヘッダー・フッター共にありで設定します。

上記のように設定するとこのようになります。

内側のグループのフッターがダミーのフッター、外側のフッターが本来のフッターになります。

本体のフッターにはセクションの後で改行するように設定しておきます。

例えば伝票の行数は12行に固定したい。データは6行分しかない。
この場合、詳細セクションを6行分、ダミーフッターを6行分表示してから本来のフッターを表示するという形になります。

続きを読む…»

9,209 views

リモートデスクトップ接続で音声入力できないとき

Windowsのリモートデスクトップ接続でデバイスの共有設定でサウンドに関するデバイスを有効にしているのに
リモート接続される側で見ると「入力デバイスが見つかりません」となるとき。
レジストリエディタで以下のキーの値を変更すれば解消できる場合があります。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp

ここにあるfDisableAudioCaptureの値を1から0に変更

レジストリエディタを開く方法

Win+Rを押し「ファイル名を指定して実行」を開きます。
ファイル名に「regedit」と入力しEnterを押すとレジストリエディタが起動します。

他に検索で探すことも可能です。

25,270 views

Micosoft Office Accessのファイルが壊れる

Windows7のサポートが終了して7ヶ月が経ちました。
皆さんはWindows10への移行はお済みでしょうか?

私も公私共にWindowsを利用しており、Windows10でほぼ問題なく使用出来ているのですが、一つだけ問題があります。
それはOfficeのAccessで作成しているデータベースファイルが壊れるということです。

壊れるといってもそのファイルが使えなくなるわけではありません。
データベースの内容に矛盾が生じ、修復の作業が必要になってしまうわけです。
データベースでは常に最適化する作業が必要になってくるのは当たり前なのですが、最近この状況が頻繁に発生するようになってしまいました。

ちなみにこのようなメッセージが表示されます。

初めは[Accessで発生するメモリー不足エラー]で紹介した事象が起こっていました。
解決したようにも思えましたが、しばらくすると壊れるようになってきました。
そしてその頻度も日を追うごとに頻繁に起こるように…。

それを解消するために色々とやってみました。
続きを読む…»

6,102 views