カテゴリー
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

VSCode+Markdownが便利!

Visual Studio Codeエディターを使ってMarkdownで書き、PDFにエクスポートがめっちゃ便利!
サクッとマニュアルや簡単な書類を作成したい時にめちゃ役立ちます。

まずVSCodeでMarkdown記法により内容を作成します。

元々プレビュー機能は備わってるようで、Windowsでは[Ctrl]+[K]→[V]で、Macでは[Comman]+[K]→[V]でサイドバーにプレビューを表示することができます。

さらに「Markdown PDF」という拡張機能をインストールすると、右クリックでエクスポートとするとすぐにPDFに変換することができます。

ソースコードを枠付きで表示させたりもできるので、結構使い勝手がいいです。
ぜひ、一度使ってみて下さい。

863 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,611 views

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

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

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

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

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

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

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

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

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

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

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

続きを読む…»

9,212 views

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

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

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

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

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

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

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

25,304 views