カテゴリー別アーカイブ: ADO

テーブルのデータをExcelのように管理する

AccessのテーブルのデータをExcelのように表計算として使う方法を解説します。
Accessの場合、集計をかけるときは集計クエリを使い、テーブルとは分けて考えるのが
一般的です。

集計クエリの致命的な弱点は縦の計算ができないことです。横の計算は得意ですが。。

縦計がでないとできないことが出てくるので、その点も含めて解説します。

とりあえず今回は横計の出し方です。

下の図のように簡単なテーブルを作ります。

これを元に簡単なフォームを作ります。

テキスト9は合計が表示されるようにコントロールソースに算式を入れます。

=Nz([A商品売上])+Nz([B商品売上])

これでフォームを表示させると、下の図のようになります。

テキストボックスには合計が表示されていますが、テーブルのデータには合計のデータがまだ入っていません。

合計のフィールドには、何かしらの仕掛けをしないとデータが入りません。
今回はコマンド11をクリックしたときに値が入るようにしたいと思います。

テーブルのフィールドに値を入れるときは、ADOというテーブルのデータを直接操作する
プログラミングを使います。

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

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

rs.Open “テーブル”, cnn, adOpenKeyset, adLockOptimistic

rs!売上合計 = Nz(A商品売上) + Nz(B商品売上)
rs.Update

rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing
End Sub

これでフォームのコマンドボタンをクリックすると、合計は入ります。

実行したときにエラーが出たときは、VBEの画面でツールの参照設定をクリックし、
下記のライブラリファイルにチェックを入れてOKを押してください。

これでエラーは回避されます。
要はこのデータベースではADOという技法を使いますと宣言をします。

========================================
今日は浦和に来ています。昨日本を通じて知り合った方とお会いしました。
これも何かの縁ですね。そういったご縁を大事にしていきたいと思います。

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

納品書の消費税を明細にレコードとして保存する①

納品書を作成する場合、サブフォームの納品明細に納めた商品と単価と数量を入れて
いくと税抜きの納品金額が計算されます。

その納品金額に消費税率をかけて消費税を計算します。
ただ消費税を納品書に表示するだけなら、テキストボックスに
=納品金額*0.08
で計算し、納品金額に消費税を足せば税込みの金額が計算できます。

続きを読む

明細行の削除~行番号を整える③

クエリで実行した内容をADOで実行します。
コードは以下の通りです。
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

rs.MoveFirst
Do Until rs.EOF
rs!順番2 = DCount(“*”, “納品書サブ”, “納品書NO=” & Forms!納品書メイン!納品書NO & “” & ” and ” & “順番< =" & rs!順番 & "") rs.Update →順番2に正しい順番に変更します。 rs.MoveNext Loop 続きを読む

明細行の削除~行番号を整える①

明細行を挿入した場合の処理を解説してきましたが、今回は削除した場合の処理です。
削除すると当然削除した明細番号が抜けてしまうので、再度番号を振り直す必要があります。

最初に納品書サブテーブルに「順番2」というフィールドを追加します。
2805021
このフィールドに正しい明細番号を振り直します。
続きを読む

明細行の挿入②

前回、明細行を追加する前段階まで解説しました。

あとはサブフォームに配置したコマンドボタンを押したときのVBAコードを入力します。

前回も解説した通り、主キーとなっている納品明細IDはオートナンバーなのでこれを使って
並べ替えはできないので、順番というフィールドを作ってその番号を変更して明細行を
挿入していきます。
続きを読む

明細行の挿入①

Excelでは明細行を挿入しようとするときは、右クリックですぐに挿入できますが
Accessでは残念ながらそんな簡単な動作さえ、プログラムを使わないとできません。

簡単な例で解説します。

簡単なメインサブフォームを作るので、テーブルを二つ作ります。
メインフォーム用のテーブル。
2804271
続きを読む

クエリで集計したデータを違うテーブルに掃き出す~期間を指定する①

前回まではテーブルのデータの全てを集計していましたが、ある一定の期間の売上データを
集計し、その集計したクエリのデータをテーブルに掃き出せるようにします。

通常期間指定をする場合、このようなクエリの設定をします。
2803221
日付はグループ化からWhere条件にしないと、任意の期間ではなく、日付毎の
集計になってしまいます。
続きを読む


1 / 41234