No.1
- 回答日時:
>データ入力フォームからデータ検索をして同フォームに表示させる。
>一部書き換えた後新しいレコードとして登録したいのですがどうしても
>同じレコードが書き換わってしまいます助けてください。
データを検索して同フォームに表示させて、レコードの内容を修正すると
当然同じレコードが更新されます。
そこで、検索時に[レコードを[コピー]して、レコードを修正方法があります。
■方法A■ [追加クエリ]で追加後、修正する方法
1.検索フォームで選択したレコードを[追加クエリ]で[レコード]を追加します。
2.[フォーム]を開く時に、[レコードの移動]で"最後のレコード"にします。
3.その時点で選択したレコードが2つになりますので、"最後のレコード"を修正すればいいでしょう。
※レコードが複数ある場合は、この方法やめておいた方がいいでしょう。
※フォームの設定によっては、最後のレコードではうまく行かない場合があります。
■方法B■ [フォーム]で[レコード]を[コピー]して[貼り付け]し修正する。
1.[フォーム]を開いて、対象のレコードが選択されているとき、[編集]-[レコードの選択]をします。
2.[編集]-[コピー]します。
3.新しいレコードに移動し、[編集]-[貼り付け]します。
※[マクロ]や[イベントプロシージャ]で[コマンドボタン]等を作成すると楽でしょう。
※但し、[テーブル]・[フォーム]の設定によっては、貼り付けできないことがあります。
▲具体的な方法がわからなければ、要求してください。
この回答への補足
早速、具体的に要求することにしました。
方法Bがすごく知りたい情報です。マクロをトライしたのですが出来ませんでした。
すみませんが、方法で書いていただいたように詳しくお願いします。
自分も早く”こういう場合には出来ない可能性がある”と言えるぐらい理解したい。
No.3
- 回答日時:
元のテーブルを分けたらどうでしょう?
例)
(1)会員データ(個人情報)
(2)購入品データ(購入品の名前や単価)
(3)履歴データ(購入日等)
メインフォームへ(1)、サブフォームへ(2)と(3)のクエリーのフォームを作成します。
メインフォームで検索後、サブフォーム側(購入日等)へ入力すれば追加入力出来ます。
*メインとサブのリンクフィールドは会員番号
上記のようにテーブルを複数用意することで、データの集計も楽になると思いますよ。
回答有難うございます。
実はこの方法試したのですがクエリーが良くなかったせいか、検索が出来なくなってしまったことがあり苦手意識をもってしまいました。おそらくそんなに複雑なことではないのでしょうが素人には理解が困難でした。
でも、アクセスを使ってクエリーが分からないのは意味ないので今後努力しようと思います。
No.4ベストアンサー
- 回答日時:
>早速、具体的に要求することにしました。
>方法Bがすごく知りたい情報です。マクロをトライしたのですが出来ませんでし。
>すみませんが、方法で書いていただいたように詳しくお願いします。
■方法B■
●マクロでの記述方法を記載します。
1.レコードを選択
[アクション]に"コマンドの実行"[コマンド]に"レコードの選択"
2.レコードのコピー
[アクション]に"コマンドの実行"[コマンド]に"コピー"
3.レコードを貼り付ける
[アクション]に"コマンドの実行"[コマンド]に"追加貼り付け"
全て"コマンドの実行"アクションを使用します。
>[テーブル]・[フォーム]の設定によっては、貼り付けできないことがあます。
主キーやインデックスの問題がありますので追加貼り付けした時にエラーが
出た場合確認してください。
・主キーは多分オートナンバーなので大丈夫でしょう。
・インデックス(重複なし)→インデックス(重複あり)に変更する。
※複数のレコードをコピーしたい場合は、この方法はやめて追加クエリを
使用した方がいいと思います。
この回答への補足
レコードのコピー、解決しました。(遅くなり済みません)
関連でもう一つ教えてください。pcが古いので動きが遅く、レコードコーピーボタンを何度もクリックしてしまいます。
当然レコードも増えてしまうのでマクロに条件をつけました。
条件:(1)[フィールド名]Is Null アクション:メッセージ、マクロ中止
(2)[フィールド名]<>False アクション:メッセージ、マクロ中止
(3)[フィールド名]=True アクション:コマンドの実行×3
これだと検索は出来るのですが(2)メッセージも表示されてしまいます。
是非、この回避策も伝授してください。
No.5
- 回答日時:
もう、解決した頃でしょうか?
koutakaさんのマクロで十分なのですが
ウィザードの指示どおりにやっていくとできてしまいますので
その方法を記しておきます。
1.利用したいフォームをデザインで開く。
2.ツールボックスのコントロールウィザードを押下されている状態で
コマンドボタンを選択し、フォーム上の任意の場所に配置する。
3.コマンドボタンウィザードが開く。
種類:レコードの操作
ボタンの動作:レコードの複製 を選択
4.ボタンのデザインと名前を決めて完了。
ちなみに
私は個数だけ違うデータをいくつも入力しなければならない
伝票処理などにこのボタンを利用しています。
参考書籍は段階によるのでしょうが
右も左もわからないなら できるシリーズなど、
辞書代わりの ナツメ社の関数ハンドブック、
疑問個所で F1キー を押してヘルプ、使用例を見る。
ことで何とかなっております。
遅くなりすみません。本当にいろんな方法がありますね。imoさんはクエリー、マクロ、vb、どれが使いやすいですか?痒い所に手をつけるなら全部浅くでも知らないとダメですよね?参考書もいろいろ買ってみたのですが情けないことに同じようなのばかり揃ってしまいました。
まだ、解決していないことが山ほどあるのですが今回の質問ほど緊急性がないのでがんばって解いていきます。壁にぶつかったときはまた宜しくお願いします。
No.6
- 回答日時:
>条件:(1)[フィールド名]Is Null アクション:メッセージ、マクロ中止
> (2)[フィールド名]<>False アクション:メッセージ、マクロ中止
> (3)[フィールド名]=True アクション:コマンドの実行×3
>これだと検索は出来るのですが(2)メッセージも表示されてしまいます。
>是非、この回避策も伝授してください。
[フィールド名]というコントロールが良く分かりませんが、
新しく"Yes/No型"のレコードソースのない[フィールド名]を
作成したと考えていいのでしょうか?
それなら、いい考えだと思います。
■(2)、(3)の条件ですが、
”[フィールド名]<>False”は”[フィールド名]=False”ではないですか?
”[フィールド名]=True”と”[フィールド名]<>False”の結果は、同じになりますよ。
あと、PCが遅くレコードのフィールド数が多ければ、No.3 tamson さんの回答にも
あるように元のテーブルを分けたらどうでしょう?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) Dlookupにエラーがでてしまう 1 2022/10/31 14:35
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) Excel VBA 同じ名前のフォルダがあれば作成したブックを格納するマクロをつくりたい 2 2023/01/16 16:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レコードを保存するコード ア...
-
アクセスの自動保存解除はでき...
-
フィルタ後のフォームの件数の...
-
ACCESSでフォームを使って、テ...
-
Accessでレコードの保存をせず...
-
アクセスでフォームビューがみ...
-
レコードをダブルクリックする...
-
AccessVBA RecordSourceのリセ...
-
Access:フォームプロパティ「...
-
accessのフォームのレコードの移動
-
新規レコード行を非表示にしたい
-
アクセスのフォームで立ち上げ...
-
accessのクエリで、該当するデ...
-
Access 更新キャンセルするには?
-
レコード削除時に(サブ)フォー...
-
Accessでフォーム上に 直前の...
-
Access2010、値を入力したら自...
-
Accessでチェックボックスで抽...
-
アクセス帳票フォームのループ...
-
ACCESS起動時に所定フォームを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードを保存するコード ア...
-
ACCESSでフォームを使って、テ...
-
アクセスでフォームビューがみ...
-
新規レコード行を非表示にしたい
-
フィルタ後のフォームの件数の...
-
アクセスの自動保存解除はでき...
-
Accessで上の行を自動でコピー...
-
Accessでレコードの保存をせず...
-
AccessVBA RecordSourceのリセ...
-
ACCESS起動時に所定フォームを...
-
レコード削除時に(サブ)フォー...
-
Access2010、値を入力したら自...
-
Accessで一件の新規レコードの...
-
Accessでフォーム上に 直前の...
-
ACCESSフォームのリストボック...
-
Access サブフォームにフィルタ...
-
Accessで新しいレコードに規定...
-
Accessでのデータ消滅に...
-
Access:フォームプロパティ「...
-
Access レコード移動時イベント...
おすすめ情報