
お世話になります。
アクセスでVBAにチャレンジしながら見積書作成に似たシステムを作ろうとしています。
作りたいイメージは、あらかじめ登録してあるサブレコードとリレーションでつながったテンプレートから、必要なレコードを複数個選択(実際はレコードを表示したリストボックス)してボタンを押すと、作成フォームのほうへコピーされるというものです。
追加クエリを使って、1レコードのコピーはできるようになったのですが、テンプレートから一気に複数個コピーするというものがどうしてもできません。
方法(できればコードも)をご教示いただければありがたいです。
1レコードのコピーは、
1.F_作成フォームにあるリストボックス(テンプレートのレコードを表示しています)からコピーしたいレコードを選択して、コマンドボタンをクリック
2.テンプレートフォームと同じフィールドが用意されたF_作成フォームに内容を転記
3.追加クエリにて、ID(主キー)によってリンクされたサブレコードをF_作成のサブフォームにコピー
というものをVBA+追加クエリで作りました。
素人作成で大変お恥ずかしいですが参考に作成したコードを下記に示します。
ちなみにコードの中でFor~Nextを使っているのは、新しいレコードを記入すると自動採番されて、番号というフィールドに登録され、番号の小さいもの順に並べられるようにしたもので、下記コード中の小項目選択リスト.Column(1)が、テンプレートのレコードを示すものです。実際は複数行あります。また、Forms![F_作成]![F_小項目の内訳]がサブフォームとなっていて、ここにサブレコードをコピーしたいです。
Dim B1, B2, re As Long
'番号の自動採番
B1 = Forms![F_作成]![F_小項目].Form![番号]
B2 = Format(DCount("番号", "Q_小項目"))
For i = B1 To B2
Forms![F_作成]![F_小項目].Form![番号].SetFocus
Forms![F_作成]![F_小項目].Form![番号] = i + 1
Forms![F_作成]![F_小項目].Form.Recordset.MoveNext
Next i
'レコード転記
Forms![F_作成]![F_小項目].Form.Recordset.AddNew
Forms![F_作成]![F_小項目].Form![中項目ID] = Forms![F_作成]![中項目リスト値]
Forms![F_作成]![F_小項目].Form![番号] = B1
Forms![F_作成]![F_小項目].Form![名称] = 小項目選択リスト.Column(1)
Forms![F_作成]![F_小項目].Form.Recordset.MoveFirst
Forms![F_作成]![F_小項目].Requery
'追加クエリ(サブフォーム用)
'---------------------------------------------------------
DoCmd.SetWarnings False
DoCmd.OpenQuery "Q_小項目詳細追加"
DoCmd.SetWarnings True
Forms![F_作成]![F_小項目の内訳].Requery
'---------------------------------------------------------
Forms![F_作成]![F_小項目].SetFocus
DoCmd.GoToRecord , , acGoTo, B1
まずは、リストボックスを複数選択できるようにして、選択されたレコードをTPFからACFへコピーして、リレーションで対応するレコードをサブフォームにコピーするって感じだと思うのですが。
以上、よろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Access サブフォームでの選択行の取得
その他(データベース)
-
ACCESSのサブフォームコピーについて
その他(Microsoft Office)
-
Access サブフォームでの複数行選択
その他(プログラミング・Web制作)
-
-
4
メインフォームとサブフォームのレコードを複製
Access(アクセス)
-
5
access2000:フォームで入力した内容を新規レコードにコピー
その他(データベース)
-
6
Accessでレコードの複製
Access(アクセス)
-
7
Access:サブフォームのレコードのコピー(複数)
Access(アクセス)
-
8
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
-
9
Accessのフォームにて、詳細行のボタンを行の内容により、表示/非表
その他(Microsoft Office)
-
10
(ACCESS)条件に応じて、テキストボックスを表示・非表示設定
その他(データベース)
-
11
access追加クエリ実行時の重複を防ぎたい
その他(コンピューター・テクノロジー)
-
12
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
13
アクセスのfilter、複数条件の記述方法を教えてください。
Access(アクセス)
-
14
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
15
アクセスのレポートに、フォームで算出した数字を表示させたい
Access(アクセス)
-
16
アクセスのフォームで、文字を中央揃えにしたい
Access(アクセス)
-
17
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
18
アクセスVBAのMe!と[ ]
Access(アクセス)
-
19
ACCESSのフォーム、開くんですが、見えないようにするには
Access(アクセス)
-
20
アクセスで特定のレコードのみのレポートを印刷したいのですが。
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイルメーカー・・片方の空...
-
Accessでの計算
-
ACCESS 複数のフォームから同一...
-
ACCESSで帳票形式のレポ...
-
Accessの「Form_AfterUpd...
-
Accessでレコードの複製
-
Access サブフォームでの選択行...
-
エクセルで、抽出したデータだ...
-
X-Ripperというフリーウェアに...
-
Accessでデータを更新したらそ...
-
前のレコードの値を自動で入れたい
-
入力した値をコンボボックスに...
-
ACCESSでVBAから選択クエリの抽...
-
エクセルで近似値を特定の行か...
-
PDFファイル/抽出許可され...
-
ACCESSのクエリー抽出条件にIIF...
-
サブフォームの切り替え方を教...
-
Accessクエリでの複数の抽出条...
-
ACCESS サブフォームのフィール...
-
Access2010クエリ抽出条件(Like)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESS 複数のフォームから同一...
-
AccessのRefresh・Requery・Rep...
-
Accessでレコードの複製
-
Accessで経過日付に応じて色を...
-
ACCESSフォーム入力後の確定
-
Accessフォームで詳細内の任意...
-
accessでオートナンバーを使わ...
-
アクセエスのレコードの更新をV...
-
access の 最終レコードの判定...
-
DoCmd.SearchForRecord が動か...
-
MSAccess ロック状態かどうかを...
-
Accessの「Form_AfterUpd...
-
アクセスで複数レコードを1レ...
-
アクセスのコンボボックスの内...
-
Access 指定したレコードへ移動
-
docmd.gotorecordを起動するには
-
Accessでの計算
-
アクセスのフォームビューの帳...
-
ファイルメーカーで重複してイ...
-
アクセスのフォームで自動連番...
おすすめ情報