今回事務所で今抱えている業務を共有するために簡単なやることリストを作りました。
実はこれが一番簡単なAccessの使い方なのかもしれません。
こんな感じです。
続きを読む
テーブルの設定をしたら、次はフォームを意識して
クエリを作成します。
作る主なフォームは、
F経費入力
F経費集計表
F経費集計
F店舗売上
F売上計上
F経費入力確認
最後にFスタート
の7つのフォームを作ります。
続きを読む
行間に追加したときは、次の注意点があります。
①レコードの並び方を指定しておきます。
折角順番を付けているので、並び替えは順番を選択します。
これで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回目です。
いろいろ不安はありますし、打たなくてよければ打ちませんが、仕方がありません。
副反応が少なければいいなあ。。
本日も最後までお読みいただきありがとうございます。
レコードを削除すると、当然順番は変わりません。
そして削除してレコードを追加すると、順番が重なります。
上の4は、削除する前にあったレコードです。
下の4は、削除後追加したレコードです。
続きを読む
軽減税率への対応②でクエリで消費税を集計し、DLookupで参照する流れを解説
しましたが、この方法は分かりやすいのですが、フォームを開いたときの動作が
遅いという欠点があります。それを解消する方法を解説します。
今回の解説は、
著書 経理業務のための Accessマクロで作るデータベース入門のサンプルデータを元に解説します。
納品書に、
・軽減税率の売上と消費税
・軽減税率適用外の売上と消費税
を集計するフィールドを作ります。
こんな感じです。
続きを読む
ただ単に縦計を出すだけでは使い勝手が悪いので、少し手直しします。
データに修正があった場合、合計が訂正できるようにします。
最初にテーブルに摘要のフィールドを作り、ここに合計のデータである
旨をテキストで入力します。
続きを読む
横計の次は縦計を出します。
フォームに縦計のコマンドボタンを作って次のVBAコードを入力します。
今回も直接テーブルのデータを加工するADOを使います。
続きを読む
AccessのテーブルのデータをExcelのように表計算として使う方法を解説します。
Accessの場合、集計をかけるときは集計クエリを使い、テーブルとは分けて考えるのが
一般的です。
集計クエリの致命的な弱点は縦の計算ができないことです。横の計算は得意ですが。。
縦計がでないとできないことが出てくるので、その点も含めて解説します。
とりあえず今回は横計の出し方です。
下の図のように簡単なテーブルを作ります。
続きを読む