Microsoft Access Club Access超初心者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトル単票フォームでのレコード複製について
記事No83280
投稿日: 2018/03/18(Sun) 22:47
投稿者stal
解決済: ON
OS: WINDOWS 10
Access Version: 2016

@単票フォームに"複製ボタン"を配置
A当該ボタンをクリックすると現在開いている単票フォームの任意のフィールドの内容のみを複写した状態で新たなレコードが作成された単票フォームが開かれる

上記のような挙動が行われるボタンを作りたいのですがどのように行ったらよいかわからず困っております。
何か良い方法はございますでしょうか?

ボタンクリック後に追加クエリでパラメーターが起動しフォーム内にある任意のコード(数字4桁)を入力しレコードを追加させることも考えたのですがユーザーが誤ったコードをパラメータとして流すと全く別のレコードが追加される可能性があるため、良い方法とはいえませんでした。

不勉強で申し訳ありませんがお知恵拝借できれば幸いです。

タイトルRe: 単票フォームでのレコード複製について
記事No83281
投稿日: 2018/03/19(Mon) 09:51
投稿者hatena
解決済: ON
いろいろな方法が考えられますが、下記が一番シンプルで自由度が高いかな。

@の複製元用のフォームと、
Aの新規レコード用のフォームを別に作成して、
Aのフォームの「データ入力用」プロパティを「はい」にしておく。

「複製ボタン」のクリックで、Aのフォームを開く。
任意のフィールドを@からAに代入する。
任意のコードはAのフォームの方で入力する。

入力データに問題がなければ、「保存」ボタンでレコード保存する。
保存ボタンの設計は下記を参考に。
レコード入力時に「保存」コマンドボタンでのみレコード保存できるようにする - hatena chips
https://hatenachips.blog.fc2.com/blog-entry-162.html


あるいは、Aのフォームは非連結フォームにしておいて、必用なデータは@から代入。
保存ボタンで、追加クエリかDAOまはたADOでテーブルに追加、でもいいでしょう。

タイトルRe^2: 単票フォームでのレコード複製について
記事No83282
投稿日: 2018/03/19(Mon) 12:28
投稿者stal
解決済: ON
HATENAさん 

大変助かります。
誠にありがとうございます。

質問させてください。
初歩的な大変質問で申し訳ありませんが「任意のフィールドを@からAに代入する。」
の方法がわかりません。
どのような挙動で最終的に複写されるのかは理解できたいのですが
複写元の任意の値を代入するにはどのように設定したらよいでしょうか?
申し訳ありませんがご教示いただけますと幸いです。


> いろいろな方法が考えられますが、下記が一番シンプルで自由度が高いかな。
>
> @の複製元用のフォームと、
> Aの新規レコード用のフォームを別に作成して、
> Aのフォームの「データ入力用」プロパティを「はい」にしておく。
>
> 「複製ボタン」のクリックで、Aのフォームを開く。
> 任意のフィールドを@からAに代入する。
> 任意のコードはAのフォームの方で入力する。
>
> 入力データに問題がなければ、「保存」ボタンでレコード保存する。
> 保存ボタンの設計は下記を参考に。
> レコード入力時に「保存」コマンドボタンでのみレコード保存できるようにする - hatena chips
> https://hatenachips.blog.fc2.com/blog-entry-162.html
>
>
> あるいは、Aのフォームは非連結フォームにしておいて、必用なデータは@から代入。
> 保存ボタンで、追加クエリかDAOまはたADOでテーブルに追加、でもいいでしょう。

タイトルRe^3: 単票フォームでのレコード複製について
記事No83283
投稿日: 2018/03/19(Mon) 14:14
投稿者hatena
解決済: ON
> 初歩的な大変質問で申し訳ありませんが「任意のフィールドを@からAに代入する。」
> の方法がわかりません。
> どのような挙動で最終的に複写されるのかは理解できたいのですが
> 複写元の任意の値を代入するにはどのように設定したらよいでしょうか?
> 申し訳ありませんがご教示いただけますと幸いです。

Aのフォーム名を「F_複製」、任意のフィールド名を「フィールド1」「フィールド2」「フィールド3」として、「複製」ボタンのクリック時に、下記のようなコードでいいかと。

DoCmd.OpenForm "F_複製"
Forms!F_複製!フィールド1 = Me!フィールド1
Forms!F_複製!フィールド2 = Me!フィールド2
Forms!F_複製!フィールド3 = Me!フィールド3

タイトルRe^4: 単票フォームでのレコード複製について
記事No83284
投稿日: 2018/03/20(Tue) 00:18
投稿者stal
解決済: ON
hatena様

ご返信おそくなりましてすみません。
まさに自分が思い描いていた挙動を実装することができました。
本当にありがとうございました!!


> > 初歩的な大変質問で申し訳ありませんが「任意のフィールドを@からAに代入する。」
> > の方法がわかりません。
> > どのような挙動で最終的に複写されるのかは理解できたいのですが
> > 複写元の任意の値を代入するにはどのように設定したらよいでしょうか?
> > 申し訳ありませんがご教示いただけますと幸いです。
>
> Aのフォーム名を「F_複製」、任意のフィールド名を「フィールド1」「フィールド2」「フィールド3」として、「複製」ボタンのクリック時に、下記のようなコードでいいかと。
>
> DoCmd.OpenForm "F_複製"
> Forms!F_複製!フィールド1 = Me!フィールド1
> Forms!F_複製!フィールド2 = Me!フィールド2
> Forms!F_複製!フィールド3 = Me!フィールド3

タイトルRe^5: 単票フォームでのレコード複製について
記事No83294
投稿日: 2018/04/03(Tue) 12:36
投稿者stal
解決済: ON
haten様

こちらのトピックについて再度質問させてください。

以下をやろうとしたのですがうまくいきません。

@.フォームの表形式ですべてのレコードを表示
A.@の表の各レコードにボタンを配置し、ボタンをクリックすると複製元の単票フォームが表示される
B.複製元の単票フォームに配置している「複製」ボタンをクリック
C.新規フォームが開かれて複製したいCONTROLの値が代入される

Bの時点で「このオブジェクトに値を代入することはできません」というエラーが表示され、デバッグの対象になってしまいます。

上記、@Aの動きを省略し、BからCを行う場合にはエラーは表示されないのですが何故か@Aの動作を介在させるとエラーになってしまいます。

古い案件で申し訳ありませんがお知恵をお借りできれば大変ありがたいです。



> hatena様
>
> ご返信おそくなりましてすみません。
> まさに自分が思い描いていた挙動を実装することができました。
> 本当にありがとうございました!!
>
>
> > > 初歩的な大変質問で申し訳ありませんが「任意のフィールドを@からAに代入する。」
> > > の方法がわかりません。
> > > どのような挙動で最終的に複写されるのかは理解できたいのですが
> > > 複写元の任意の値を代入するにはどのように設定したらよいでしょうか?
> > > 申し訳ありませんがご教示いただけますと幸いです。
> >
> > Aのフォーム名を「F_複製」、任意のフィールド名を「フィールド1」「フィールド2」「フィールド3」として、「複製」ボタンのクリック時に、下記のようなコードでいいかと。
> >
> > DoCmd.OpenForm "F_複製"
> > Forms!F_複製!フィールド1 = Me!フィールド1
> > Forms!F_複製!フィールド2 = Me!フィールド2
> > Forms!F_複製!フィールド3 = Me!フィールド3

タイトルRe^6: 単票フォームでのレコード複製について
記事No83295
投稿日: 2018/04/03(Tue) 19:11
投稿者hatena
解決済: ON
下記の情報を提供してください。

> @.フォームの表形式ですべてのレコードを表示
> A.@の表の各レコードにボタンを配置し、ボタンをクリックすると複製元の単票フォームが表示される

このボタンのクリック時のイベントプロシージャのコード

> B.複製元の単票フォームに配置している「複製」ボタンをクリック

この「複製」ボタンのクリック時のイベントプロシージャのコード


> C.新規フォームが開かれて複製したいCONTROLの値が代入される

タイトルRe^7: 単票フォームでのレコード複製について
記事No83296
投稿日: 2018/04/04(Wed) 12:45
投稿者stal
解決済: ON
Hatena様

いつもお世話になっております。
色々と試行錯誤したところ表形式のボタンクリック時のWhere条件が正しく指定されていなかったので
バグが発生していたようです。
無事解決致しました。

お忙しいところ誠にありがとうございました。
お騒がせしまして申し訳ありません。


> 下記の情報を提供してください。
>
> > @.フォームの表形式ですべてのレコードを表示
> > A.@の表の各レコードにボタンを配置し、ボタンをクリックすると複製元の単票フォームが表示される
>
> このボタンのクリック時のイベントプロシージャのコード
>
> > B.複製元の単票フォームに配置している「複製」ボタンをクリック
>
> この「複製」ボタンのクリック時のイベントプロシージャのコード
>
>
> > C.新規フォームが開かれて複製したいCONTROLの値が代入される

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る