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

店舗ごとの収支集計表を作る①

店舗や部門ごとの収益の集計表を作ります。

一見難しそうに感じるかもしれませんが、やることは至って単純です。
売上と経費を店舗ごとに入力すれば、あとの展開はAccessの仕組みで回します。

経費の入力はこんなフォームから入力していきます。

続きを読む

行間にレコードを追加するときの注意点

行間に追加したときは、次の注意点があります。

①レコードの並び方を指定しておきます。


折角順番を付けているので、並び替えは順番を選択します。

これでVBAでクエリを実行したときに、順番通りに並べ替えられます。
何も設定しないと、オートナンバーで表示されるので、順番通りになりません。
注意してください。

②絶対にレコードを入れなければいけないフィールドがある場合

クエリはリレーションシップで、商品明細の商品CDを商品テーブルの商品CDと関連付けをした場合、
商品CDにデータがない状態ではレコードの追加ができません。

そんなときは、VBAコードを次のように変更します。
rs.AddNew
rs!順番1 = a
rs!商品CD = 1
rs!納品書NO = Forms!納品書!納品書NO
rs.Update
仮の商品CDを入れる必要があります。

当然後から正しい商品CDをいれないといけません。
それ以外にテーブルの設定で「値要求」が「はい」になっているレコードについても
仮で何か値を入れる必要があります。

注意点はこれくらいです。

納品書等を作る場合、やはり行間にレコードを追加できるようにしておく必要があると
思います。こんな感じで参考にしてもらえればと思います。

サンプルファイルを上げておきますので、必要であればダウンロードしてください。

======================================
コロナワクチン1回目打ってきました。
1回目は特に副反応はありません。(今のところ)
問題は2回目だな。
家族に走ることを止められて、それがストレスです。。

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

レコードを行間に追加する

前回はレコードを削除した場合の行番号を整えました。

今回は、行と行の間にレコードを追加する場合のやり方です。

Accessを使っていてなんでこれが簡単にできないんだろうというものの一つが
行の挿入です。Excelでは簡単ですよね。右クリックで行の挿入、これで終わりです。

AccessではVBAを使わないとできません。

下の画面の1と2の間と2と3の間にレコードを挿入します。

コマンドボタンを作って、そこに以下のVBAコードを入れます。

Private Sub コマンド13_Click()
Dim a As Integer

Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset

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

rs.Open “納品明細”, cnn, adOpenKeyset, adLockOptimistic

a = Me!順番1

rs.MoveFirst

Do Until rs.EOF
If rs!納品書NO = Forms!納品書!納品書NO Then
If rs!順番1 >= a Then
rs!順番1 = rs!順番1 + 1
rs.Update
End If
End If
rs.MoveNext
Loop

rs.AddNew
rs!順番1 = a
rs!納品書NO = Forms!納品書!納品書NO

rs.Update

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

Forms!納品書!納品明細.Form.Requery
End Sub

このプログラムを実行すると、下記のようになります。

無事レコードを挿入して、番号もそろえることができました。
データベースの構造上、常に一番下にレコードが追加されていくので、これの入力順を
変更することは不可能です。ですので順番というフィールドを作って、これで操作して
いきます。

テーブルを見るとこんな感じですね。

ちなみにIDはオートナンバー型です。

Excelばかりつかっているとこの考え方を理解するのに手間取るかもしれませんが、
大事な考え方なので、是非分かってあげてください。

=======================================
9月になりました。
やっと明後日にワクチン1回目です。
いろいろ不安はありますし、打たなくてよければ打ちませんが、仕方がありません。
副反応が少なければいいなあ。。

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

請求明細から請求書を作る④~請求明細データを追加する

Excelからテーブルにインポートしたレコードから明細を作り直します。

最初に請求明細を入れるテーブルを用意します。
フィールドの設定はこんな感じです。インポートしたときはたくさんのフィールドが
ありましたが、必要最低限のものでいいと思います。

続きを読む

請求明細から請求書を作る③~請求書のメインデータの作成

出力する請求書は次の通りです。一般的な請求書ですが、では何件の請求書を作成すれば
いいのでしょうか?

それは当たり前ですが、明細に出てくる請求先の数の分だけ請求書の頭を作る
必要があります。

では請求書の枚数をどう数えたらいいのでしょうか?

請求明細の顧客名もしくは顧客CDをグループ化することで、何枚の請求書が
必要かわかります。

Q名前の実行結果です。

全部で336件の得意先の明細があるのでその分請求書も作ります。

このQ名前を使って請求書を追加クエリで作ります。
下の図のようにクエリの設定をします。追加先はT請求書です。
(事前にT請求先を作っておいてください。)
T請求書の設定内容

Q請求書追加として保存します。

Q請求書追加クエリを実行すると次のようにT請求書にデータが作成されます。

Q名前の実行結果とT請求書のレコードの数が一致していることを確認してください。

とりあえず請求書の頭と、明細のデータができたので、次はこれをリンクさせます。

========================================
人間ドックでγGTPの値が三桁に跳ね上がっていたので、家飲みを禁止にして
2か月が経過しました。
ビールを飲まなくなり、その分摂取カロリーも減り、たまに痩せた?
と聞かれます。
確かに2キロぐらい痩せましたが、マラソンのトレーニングのお陰で元々痩せ型の体形なので
そう言われても嬉しくありません。
逆にそう見られないように体重を維持しないと。。

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