カテゴリー別アーカイブ: Access(アクセス)

軽減税率とそれ以外の売上の表記について①

軽減税率への対応②でクエリで消費税を集計し、DLookupで参照する流れを解説
しましたが、この方法は分かりやすいのですが、フォームを開いたときの動作が
遅いという欠点があります。それを解消する方法を解説します。

今回の解説は、
著書 経理業務のための Accessマクロで作るデータベース入門のサンプルデータを元に解説します。

納品書に、
・軽減税率の売上と消費税
・軽減税率適用外の売上と消費税
を集計するフィールドを作ります。
こんな感じです。

続きを読む

宛名ラベルの印刷② 宛名位置の指定

宛名ラベルを印刷すると、かなりの高い確率で余りが出てしまいます。
特に20枚印刷で21枚となると、1枚の宛名ラベルに宛名シートが1枚必要になってしまいます。
それで余ったシートが使えなくなるのはあまりにももったいないので、
続きから印刷できるよう、印刷位置を指定して印刷出来るようにします。

最初にこのような住所録を作ります。ラベル印刷にチェックがついている人だけ
ラベルが印刷されます。

住所録をコピーして、ラベル印刷のフィールドを削除し、テーブルの名前を
「印刷データ」に変更します。ここのレコードが印刷対象です。

このような印刷データをレコードソースにして、次のような簡単な
レポートを作ります。作り方は宛名ラベルの印刷で確認してください。

次に簡単なフォームを準備します。

このコマンドボタンのイベントタブ・クリック時に次のVBAコードを入力します。
Private Sub コマンド2_Click()
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset

Dim cnn1 As ADODB.Connection
Dim rs1 As ADODB.Recordset

Set cnn = CurrentProject.Connection
Set rs = New ADODB.Recordset

Set cnn1 = CurrentProject.Connection
Set rs1 = New ADODB.Recordset
Dim a As Integer

rs.Open “印刷データ”, cnn, adOpenKeyset, adLockOptimistic
rs1.Open “住所録”, cnn1, adOpenKeyset, adLockOptimistic

On Error Resume Next
rs.MoveFirst

Do Until rs.EOF

rs.Delete
On Error GoTo 0
rs.MoveNext
Loop
On Error GoTo 0

For a = 1 To Me!テキスト0 – 1
rs.AddNew
rs!会社名 = Null
rs.Update
Next a

Do Until rs1.EOF
If rs1!ラベル印刷 = -1 Then
rs.AddNew
rs!会社名 = rs1!会社名
rs!氏名 = rs1!氏名
rs!〒 = rs1!〒
rs!住所 = rs1!住所
rs!敬称 = rs1!敬称
rs.Update
End If
rs1.MoveNext
Loop

rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing

rs1.Close
Set rs1 = Nothing
cnn1.Close
Set cnn1 = Nothing
DoCmd.OpenReport “ラベル印刷印刷位置指定”, acViewPreview
End Sub

最初にレコードが重複しないように、印刷データのすべてのレコードを削除します。
次にフォームのテキストボックスに入力した「数値-1」の空白のレコードを先に作り、
そのあとに印刷するレコードを追加します。

実行後の印刷データのレコードです。

空白のレコードの分だけ、スタート位置をずらせます。

プレビュー画面です。

空白のレコードを利用することで、宛名シールを無駄なく使うことができます。
サンプルファイルはこちらから。

最近はずっとマクロを使っていましたが、VBAも便利ですね。
細かいことろに手が届くのがVBAのいいところです。

==============================
個人的な話ですが、若い時から白髪が目立ち、今まで染めていたのですが、
43にもなるし、もういいかなと思って染めるのをやめました。
人からどう見られているのか気になって、なかなか踏ん切りがつかなかった
のですが、もう気にするような年でもないので、自然体でこれからは
過ごします。

本日も最後までお読みいただきありがとうございます。

レポートを用紙に合わせる

レポートの設計をしている場合、横幅が問題になる場合があります。

このように1ページに収まらない場合、警告が出ます。

これがどういう理屈で出るのかというと、A4サイズの横幅は210mmとなっています。
では210mmまでに収めればいいのか?というとそういうわけではありません。

印刷には余白が必要です。
続きを読む

入金額から手数料を自動計算する②

今回は得意先テーブルに事前に手数料を登録しておくやり方です。
この方が一度決めてしまえば、ほぼ間違いない手数料のデータをつくることができる
と思います。

最初に得意先テーブルに3万円を超える場合と3万円以内の場合の手数料を入れる
フィールドを作ります。

続きを読む