カテゴリー
SugiBlog ホームページ制作・システム開発|大阪

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

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

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

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

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

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

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

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

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

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

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

続きを読む…»

0
135 views

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

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

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

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

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

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

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

0
430 views

Chr関数で表現する制御文字

vbCrLfやvbTabなど、定数が使用できないときにChr関数を使って表現します。

Chr関数の書式

Chr([ASCIIコード])
定数 Chr関数での表記
vbTab Chr(9) タブ
vbCr Chr(13) キャリッジリターン
vbLf Chr(10) ラインフィード
vbCrLf Chr(13) & Chr(10) キャリッジリターン+ラインフィード

ACCESSのクエリでは定数が使用できないので、知っておくと便利です。

0
309 views

Accessで発生するメモリー不足エラー

Accessで「メモリー不足です」という正体不明のエラーが出て困っています。
使用環境はWindows10 Pro 64bit、Access2016・2013です。

これまでも平常通り行ってきた業務をしていたら、上記のように「メモリー不足です」というエラーが発生し、データ元のAccessファイルが壊れてしまうという現象が発生しました。
原因としては多々あるようですが、原因の1つとして分かったことがあったので共有させていただければと思います。

原因の究明

まず、エラーが出るPCと出ないPCがあること。
出るPCと出ないPCの差を見つける。

発見した原因

積んでいるメモリーの差
エラーが出るPC、出ないPCの差を見たところ、OSはどちらもWindows10 Pro 64bit、CPU等も特に目立った違いがない。
記事の最後にリンクを貼っているMicrosoftのページにあるレジストリの値も全て同じ設定でした。
その他で唯一違ったのが積んでいるメモリー容量で32GBと16GBでした。

エラー解消…ではない

先ほど見つけたのがメモリーの違いということで、エラーが発生するPCの32GBのメモリーを16GBに変更しました。
すると明らかにエラーの発生する頻度が激減!

ただし、激減なので全く出なくなったわけではありません。
完全に解消したいとことなのですが、エラーが出ないPCもあるため、原因の究明はかなり難しいものと思われます。

下記URLも参考にさせて頂いたので、同じように悩まれている方がいらっしゃれば参考にしていただければ幸いです。

参考URL:
Access2010およびAccess2019で謎にエラー、「メモリ不足」でクエリー停止、ちょっとだけ解決
Access でメモリ不足エラーが発生する現象の対処策について

0
568 views

ナビゲーションウィンドウを非表示にする

ACCESSにて、コードでリンクテーブルを設定した時など、非表示にしていたナビゲーションウィンドウが表示されてしまうことがあります。
以下のコードを実行するとナビゲーションウィンドウを再び非表示にすることができます。

DoCmd.NavigateTo "acNavigationCategoryObjectType", ""
DoCmd.RunCommand acCmdWindowHide

また、逆に表示したいときは以下のようにします。

DoCmd.NavigateTo "acNavigationCategoryObjectType", ""
DoCmd.RunCommand acCmdWindowShow
0
2,342 views

データ競合のエラーを無視する

ACCESSで発生したデータ競合のエラーを無視するにはエラーイベントに
以下のような記述をします。

Private Sub Form_Error(DataErr As Integer, Response As Integer)

    If DataErr = 7787 Then
         Response = acDataErrContinue
    End If

End Sub

「7787」はデータ競合エラーのエラー番号

定数「acDataErrContinue」の値は「0」です。

これで競合エラーを無視した場合は、[他のユーザーによる変更を反映]を
選択したのと同じ扱いになります。

0
2,348 views

ACCESS フィルター VBA

よく使うので覚書

Private Sub Search()
On Error Goto Exception

    Dim Coll  As Collection
    Dim SQL() As String

    Set Coll = New Collection


    If Not IsNull([検索テキスト]) Then
        Coll.Add "[フィールド1] Like '*" & [検索テキスト] & "*'"
    End If

    If [検索チェック] = -1 Then
        Coll.Add "[チェックフィールド] = " & [検索チェック]
    End If

    If [検索チェック2] = 0 Then
        Coll.Add "[チェックフィールド2] = 0"
    End If


    If Coll.Count > 0 Then
        For i = 1 To Coll.Count
            ReDim Preserve SQL(i - 1) As String
            SQL(i - 1) = Coll(i)
        Next i
        DoCmd.ApplyFilter , Join(SQL, " And ")
        'Debug.Print Join(SQL, " And ") '確認用
    Else
        Me.FilterOn = False
    End If

Exit Sub
Exception:
    MsgBox Err.Description
End Sub
0
1,419 views

CSVエクスポートでのテキストデータのNull値について ACCESS

AccessでCSVをエクスポートする際、テキスト型のフィールドがNullだった場合、
「,””,」とならず「,,」となってしまいます。
※前後にフィールドがあるとしています。

他のソフトやプログラムで該当ファイルを使用するときに、ダブルクォーテーション「”」が
必要な場合があります。

そういう時はNz関数を使います。
Nz関数はNullを別の文字列に置き換えしてれくる関数です。

データがNullだった場合、「,””,」という結果にするためには、Nullを長さゼロの文字列に置き換えます。

Nz([フィールド名],"")

もちろん、指定したフィールドのデータがNullでない場合はそのデータを返します。

0
7,537 views

Accessからはできないフリガナの割り付け

WindowsXPでは[Excelオブジェクトを使用してフリガナ入力]で紹介しているように、Accessだけで可能だったフリガナ変換が、Windows7では出来なくなっていました。
色々と方法を模索してはみたものの、解決策が見つかっていませんでした。

そして今日、なんとなく改めて挑戦してみると…なんと!(それほど大したことではありませんが;)方法が見つかりました!
といっても結局、Accessだけではできない、というのが結論です。
つまりExcelを使って実装することになります。

PHONETIC

まず、Excelの「PHONETIC」という関数。
これはセルに入力した文字のフリガナを取得することができます。

例としてこのようなExcelを用意してみます。
001
続きを読む…»

0
2,687 views

便利なApplicationメソッド ACCESS

DLookupやDCount等はよく使うのですが、他にも便利なメソッドがあったのでご紹介します。

DAvg

指定した数値フィールドの平均値を取得します
返り値は倍精度浮動小数点型(Double)です

DCount

レコード件数を取得します

DFirst

先頭レコードの指定フィールドの値を取得します

DLast

最終レコードの指定フィールドの値を取得します

DLookup

指定したフィールドの値を取得します

DMax

指定フィールドの最大値を取得します

DMin

指定フィールドの最小値を取得します

DSum

指定フィールドの合計値を取得します


書式

DLast(Expr, Domain, Criteria)
続きを読む…»

0
1,584 views