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

クエリ、フォーム、レポートを更新した場合

クエリ、フォーム、レポートを更新した場合、そもそもAccessデータベースのファイルが一つで
完結している場合は、そのままでいいのですが、
例えば他社がAccessデータベースを製作し、違うPCで違う人が使う場合、
どこかを直したり、新規にフォーム等を作った場合は、その修正等した部分を
実際に使っているAccessデータベースに反映させる必要があります。
その方法を解説します。

最初に更新した元のデータベースを開きます。

更新等をしたクエリ等(今回はフォーム)を右クリックし、
エクスポート→Accessを選択します。
2806011
続きを読む

データの競合②~競合を回避する方法2

片方のフォームをテキストボックスに変えることで競合を回避できましたが、
もう一つの方法を解説します。

それは一覧フォームから詳細フォームを開いたときに、一覧フォームを閉じる、
詳細フォームを閉じたときは一覧フォームを開くことで、両方変更できる状態を
回避することができます。

一覧フォームのコマンドボタンのプロパティのイベントタブのクリック時に
次のVBAコード入力します。
Private Sub コマンド5_Click()
DoCmd.OpenForm “車詳細2”, , , “車両NO=” & Me!車両NO & “”
DoCmd.Close acForm, “車一覧2”
End Sub
続きを読む

データの競合②~競合を回避する方法1

同じレコードの同じフィールドのデータを異なるフォームで同時に操作すると
データの競合が起こります。

同じデータを二つのフォームで編集可能な状態にしておくことに問題があるので、
解決策の一つとして、片方をテーブルのデータではなく、テキストボックスにして
しまいます。

車詳細フォームの車名のプロパティで、コントロールソースを空白にします。
2805281
コントロールソースを空白にすると、テキストボックスが非連結となります。
続きを読む

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

クエリで実行した内容を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 続きを読む

Accessで罫線を引く①

Accessで印刷をするときは、自分で罫線を引いて、一から全て設定する必要
があります。私の著書ではページの都合でExcelで作成した罫線を貼り付け
ましたが、あまりこの方法はお奨めできません。

そもそも見た目もイマイチですし・・

ですので、簡単に罫線をきれいにかける方法を解説します。

最初にデザインタブの直線を選択します。
2804291
続きを読む

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

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

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

明細行の挿入②

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

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

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

明細行の挿入①

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

簡単な例で解説します。

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