データ入力フォームからデータ検索をして同フォームに表示させる。一部書き換えた後
新しいレコードとして登録したいのですがどうしても同じレコードが書き換わってしまいます
助けてください。

具体例:
登録フォーム”A”に入力項目がID(主キー、オートナンバー)会員番号、名前、購入品、
購入日時等があります。”A”フォームから会員番号で名前を抽出して他の項目内容を
新たに入力し、追加レコードとして登録したい。
”A”フォームにデータ抽出は出来るのですがレコード内容の書き換えになってしまいます。

回答よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

>早速、具体的に要求することにしました。


>方法Bがすごく知りたい情報です。マクロをトライしたのですが出来ませんでし。
>すみませんが、方法で書いていただいたように詳しくお願いします。

■方法B■
●マクロでの記述方法を記載します。
1.レコードを選択
[アクション]に"コマンドの実行"[コマンド]に"レコードの選択"
2.レコードのコピー
[アクション]に"コマンドの実行"[コマンド]に"コピー"
3.レコードを貼り付ける
[アクション]に"コマンドの実行"[コマンド]に"追加貼り付け"
全て"コマンドの実行"アクションを使用します。


>[テーブル]・[フォーム]の設定によっては、貼り付けできないことがあます。
主キーやインデックスの問題がありますので追加貼り付けした時にエラーが
出た場合確認してください。
・主キーは多分オートナンバーなので大丈夫でしょう。
・インデックス(重複なし)→インデックス(重複あり)に変更する。

※複数のレコードをコピーしたい場合は、この方法はやめて追加クエリを
使用した方がいいと思います。

この回答への補足

レコードのコピー、解決しました。(遅くなり済みません)
関連でもう一つ教えてください。pcが古いので動きが遅く、レコードコーピーボタンを何度もクリックしてしまいます。
当然レコードも増えてしまうのでマクロに条件をつけました。
条件:(1)[フィールド名]Is Null アクション:メッセージ、マクロ中止
   (2)[フィールド名]<>False アクション:メッセージ、マクロ中止
   (3)[フィールド名]=True  アクション:コマンドの実行×3
これだと検索は出来るのですが(2)メッセージも表示されてしまいます。
是非、この回避策も伝授してください。

補足日時:2001/05/30 12:50
    • good
    • 0

>条件:(1)[フィールド名]Is Null アクション:メッセージ、マクロ中止


>   (2)[フィールド名]<>False アクション:メッセージ、マクロ中止
>   (3)[フィールド名]=True  アクション:コマンドの実行×3
>これだと検索は出来るのですが(2)メッセージも表示されてしまいます。
>是非、この回避策も伝授してください。

[フィールド名]というコントロールが良く分かりませんが、
新しく"Yes/No型"のレコードソースのない[フィールド名]を
作成したと考えていいのでしょうか?
それなら、いい考えだと思います。
■(2)、(3)の条件ですが、
”[フィールド名]<>False”は”[フィールド名]=False”ではないですか?
”[フィールド名]=True”と”[フィールド名]<>False”の結果は、同じになりますよ。

あと、PCが遅くレコードのフィールド数が多ければ、No.3 tamson さんの回答にも
あるように元のテーブルを分けたらどうでしょう?
    • good
    • 0
この回答へのお礼

良く見なおした結果、何とか壁を超えることが出来ました。本当に有難うございました。

お礼日時:2001/05/31 12:38

もう、解決した頃でしょうか?


koutakaさんのマクロで十分なのですが
ウィザードの指示どおりにやっていくとできてしまいますので
その方法を記しておきます。

1.利用したいフォームをデザインで開く。
2.ツールボックスのコントロールウィザードを押下されている状態で
 コマンドボタンを選択し、フォーム上の任意の場所に配置する。
3.コマンドボタンウィザードが開く。
 種類:レコードの操作
 ボタンの動作:レコードの複製 を選択
4.ボタンのデザインと名前を決めて完了。

ちなみに
私は個数だけ違うデータをいくつも入力しなければならない
伝票処理などにこのボタンを利用しています。

参考書籍は段階によるのでしょうが
右も左もわからないなら できるシリーズなど、
辞書代わりの ナツメ社の関数ハンドブック、
疑問個所で F1キー を押してヘルプ、使用例を見る。
ことで何とかなっております。
    • good
    • 0
この回答へのお礼

遅くなりすみません。本当にいろんな方法がありますね。imoさんはクエリー、マクロ、vb、どれが使いやすいですか?痒い所に手をつけるなら全部浅くでも知らないとダメですよね?参考書もいろいろ買ってみたのですが情けないことに同じようなのばかり揃ってしまいました。
まだ、解決していないことが山ほどあるのですが今回の質問ほど緊急性がないのでがんばって解いていきます。壁にぶつかったときはまた宜しくお願いします。

お礼日時:2001/05/30 13:37

元のテーブルを分けたらどうでしょう?



例)
(1)会員データ(個人情報)
(2)購入品データ(購入品の名前や単価)
(3)履歴データ(購入日等)

メインフォームへ(1)、サブフォームへ(2)と(3)のクエリーのフォームを作成します。
メインフォームで検索後、サブフォーム側(購入日等)へ入力すれば追加入力出来ます。

*メインとサブのリンクフィールドは会員番号

上記のようにテーブルを複数用意することで、データの集計も楽になると思いますよ。
    • good
    • 0
この回答へのお礼

回答有難うございます。
実はこの方法試したのですがクエリーが良くなかったせいか、検索が出来なくなってしまったことがあり苦手意識をもってしまいました。おそらくそんなに複雑なことではないのでしょうが素人には理解が困難でした。
でも、アクセスを使ってクエリーが分からないのは意味ないので今後努力しようと思います。

お礼日時:2001/05/26 01:28

先にデータ検索をして得たレコードを新しいレコードに貼り付ける


操作をしてからデータの変更をしてください。

コマンドボタンのビルドのなかに
レコードの複製 があるはずです。

この回答への補足

そうなんです、これなんです。自分のやりたいことがこれなんですが、レコードの複製というのが分からないんです。ど素人なので具体的の教えてもらえませんか?

あと、経験者が薦める参考書などもあったら教えてください。

補足日時:2001/05/26 00:00
    • good
    • 0

>データ入力フォームからデータ検索をして同フォームに表示させる。


>一部書き換えた後新しいレコードとして登録したいのですがどうしても
>同じレコードが書き換わってしまいます助けてください。

データを検索して同フォームに表示させて、レコードの内容を修正すると
当然同じレコードが更新されます。
そこで、検索時に[レコードを[コピー]して、レコードを修正方法があります。

■方法A■ [追加クエリ]で追加後、修正する方法
1.検索フォームで選択したレコードを[追加クエリ]で[レコード]を追加します。
2.[フォーム]を開く時に、[レコードの移動]で"最後のレコード"にします。
3.その時点で選択したレコードが2つになりますので、"最後のレコード"を修正すればいいでしょう。
※レコードが複数ある場合は、この方法やめておいた方がいいでしょう。
※フォームの設定によっては、最後のレコードではうまく行かない場合があります。

■方法B■ [フォーム]で[レコード]を[コピー]して[貼り付け]し修正する。
1.[フォーム]を開いて、対象のレコードが選択されているとき、[編集]-[レコードの選択]をします。
2.[編集]-[コピー]します。
3.新しいレコードに移動し、[編集]-[貼り付け]します。
※[マクロ]や[イベントプロシージャ]で[コマンドボタン]等を作成すると楽でしょう。
※但し、[テーブル]・[フォーム]の設定によっては、貼り付けできないことがあります。

▲具体的な方法がわからなければ、要求してください。

この回答への補足

早速、具体的に要求することにしました。
方法Bがすごく知りたい情報です。マクロをトライしたのですが出来ませんでした。
すみませんが、方法で書いていただいたように詳しくお願いします。

自分も早く”こういう場合には出来ない可能性がある”と言えるぐらい理解したい。

補足日時:2001/05/26 00:13
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccess2000のフォームでのフォームのIMEが、2度目以降変更してしまう。

アクセス初心者です。
Accsss2000のフォームでのデータ入力を楽におこなうために、例えば名前ならばテキストボックスのプロパティシートのその他タブから、IME入力モードをオンにしてかつIME変換モードを人名/地名に変更したのですが、1回目の入力はIMEが全角・人名モードになるのですが、2度目以降は半角カタカナ・人名/地名モードになってしまいます。全角ではありません。なぜでしょうか?
また上のタブにIME入力モード保持というのもありますが、どういう時に利用すればよいのでしょうか?

Aベストアンサー

> 1回目の入力はIMEが全角・人名モードになるのですが、
> 2度目以降は半角カタカナ・人名/地名モードになってしまいます。

恐らく、1回目の入力から2回目に当該テキストボックスへの移動までの
間に、半角カタカナを指定したテキストボックス(またはコンボボックス)を
経由しているのではないでしょうか。
(或いは『IME 入力モード』が「オフ」や「使用不可」、または英数系?)

ともあれ、回避策としては、『IME 入力モード』を、現在の「オン」から
「ひらがな」に変更します。
(「オン」は、「ひらがな/全角カタカナ/半角英数」などのモードを特に指定
 しない場合に使用します。そのため、特定モードで固定したい場合は、
 それに合わせた設定値(ここでは「ひらがな」)を指定する必要がある、
 ということです)


> 上のタブにIME入力モード保持というのもありますが、どういう時に
> 利用すればよいのでしょうか?

私自身はこの設定は使用していないのですが・・・(汗)

例えば、取引情報を入力する場合、『企業略称』テキストボックスには
「アルファベットの略称」や「漢字の略称」、「カタカナの略称」がそれぞれ
連続することになります。
このとき、同テキストボックスの『IME 入力モード』を「ひらがな」などに固定
してしまうと、アルファベットやカタカナの略称のデータを入力する際には
毎回手動で「全角カタカナ」や「半角英数」に切り替える・・・という使い方を
する方もいる可能性があります。
『IME 入力モード保持』は、恐らくそういう場合を想定した機能ではないかと
思います。
(もちろん、ひらがなからの変換で全角カタカナや半角英数に変換するように
 している人の場合は、切替は不要ですので、この設定は使用しなくても
 かまわないことになります)

> 1回目の入力はIMEが全角・人名モードになるのですが、
> 2度目以降は半角カタカナ・人名/地名モードになってしまいます。

恐らく、1回目の入力から2回目に当該テキストボックスへの移動までの
間に、半角カタカナを指定したテキストボックス(またはコンボボックス)を
経由しているのではないでしょうか。
(或いは『IME 入力モード』が「オフ」や「使用不可」、または英数系?)

ともあれ、回避策としては、『IME 入力モード』を、現在の「オン」から
「ひらがな」に変更します。
(「オン」は、...続きを読む

QAccessで、フォームAからダイアログモードで立ち上げたフォームBを開き、フォームBを閉じた時にフォームA側でマクロを実行したい

タイトルのままなのですが、

フォームA(メインとなる画面)と
フォームB(コードの検索画面)があり、
フォームAからフォームBをダイアログモードで開いている状態から、
フォームBを閉じたときに、フォームA側でマクロを実行したいと思っています。

具体的には、フォームAにコード入力用のテキストボックスがあり、コード検索のためにフォームBを立ち上げ、コードを選択した後フォームAのテキストボックスにそのコードを入れて、そのコードの値を元にフォームAにあるコンボボックスの再クエリを行いたいのです。

コンボボックスの再クエリの方法等は理解しているのですが、
上記のような場合に、どのイベントがキックされるのかが分かりません。
どのようにすれば(どのイベントを選んでマクロを指定すれば)適切に実行できるでしょうか。

Aベストアンサー

フォームBの処理
「値の代入」
「オブジェクトの選択」
  オブジェクトの種類:フォーム
  オブジェクト名:フォームA
「再クエリ」
  コントロール名:コンボボックス名
でいかがでしょうか?

Qフォーム等入力時においてIMEが働かない(?)

よく起こる現象で、インターネットでフォーム入力や、Yahooとかの検索入力で日本語入力をしたいときに、IMEが働かない現象が起きています。半角英数のみ入力ができます。私の環境だけでしょうか‥。
キーボードの「半角/全角」キーが効かないので、IMEツールバーを出して、マウスで日本語入力の「あ」にしても入力画面では半角英数に戻ったりします。
Wordやメモ帳を起動すると、正常に働くので、メモ帳を立ち上げてそこへ入力して、コピーしてペーストをしたりして対処をしています・・。
常にメモ帳を立ち上げておけば解決とかの意味ではありません。
IEをアクティブウィンドウにした場合、IMEが働くなくのです。

Aベストアンサー

確かIEのバグだったと思います。

対処法のリンクを貼っておきますので、参考にしてください。
http://www.tku.ac.jp/~densan/local/ie7-ime/ie7-ime.html

QExcel フォームで入力・登録後、各項目の消去の仕方は?

VBA初心者ですm(__)m
Excelで商品一覧表を作成し、フォームを作りました。
登録ボタンを押すと、商品名等が各セルに入力されますが、
それと同時にフォーム内の各項目をすべて削除して、次の入力ではまたまっさらなフォームの状態から入力できるようにするには、どうしたらよいでしょうか?
よろしくお願いします。

Aベストアンサー

Dim i As Integer
For i = 1 to 10
Me.Controls("TextBox" & i).Value = ""
Next i

のようにしてクリアする方法がありますが、
手っ取り早いのは、

UnLoad UserForm1
UserForm1.Show 0
のようにする方法です。

QWebフォームのIMEモードを入力項目毎に自動切替

ある人と話していて、議論になったので質問します。世の中にはたくさんのウェブフォームがあって、名前や住所、電話番号などの登録情報を入力することが多々あります。あまり深く考えたことはなかったのですが、私はなんとなく、「名前や住所のテキスト入力時には自動的にIMEの入力モードが日本語(ひらがな)になり、電話番号やメールアドレスのテキスト入力時には英数になる」ものだと思っていました。自分でIMEを操作することなく、テキストフィールドにタブで移動したりもしくはマウスをクリックしたときにアプリケーション側で制御されるものが大半だと思っておりました。それを聞いてある人は「そんなことはない、世の中の大半のアプリはそんなことを制御していない、「普通」は自分でIMEで制御しながら入力するものだ」、と言っていたので議論になりました。これからウェブサイトを作ろうと思っているので、最終的にはこの議論はアプリ側にそのような実装をするかどうかというところに帰着するのですが、まずは「一般的にどうなのか」というところでご意見を頂きたいと思います。ちなみに、日本のメジャーなサイト(航空会社、ポータル、携帯電話、電気屋)10個でユーザ登録フォームを確認したところ、名前欄をクリックしてもいずれもIMEのモードはひらがなに変更されませんでした。そこで今は友人が正しくて、僕が間違っていたどころか、「そもそも、名前入力時に自動的にひらがなにモード変換されるようなサイトって本当にあるのだろうか。。」というような状態になっております。どなたか、教えてください。よろしくお願いします。

ある人と話していて、議論になったので質問します。世の中にはたくさんのウェブフォームがあって、名前や住所、電話番号などの登録情報を入力することが多々あります。あまり深く考えたことはなかったのですが、私はなんとなく、「名前や住所のテキスト入力時には自動的にIMEの入力モードが日本語(ひらがな)になり、電話番号やメールアドレスのテキスト入力時には英数になる」ものだと思っていました。自分でIMEを操作することなく、テキストフィールドにタブで移動したりもしくはマウスをクリックしたときにア...続きを読む

Aベストアンサー

IMEのON/OFFができるスタイルシート「ime-mode」は、Internet Explorerが独自に追加した仕様で、Internet Explorerでは入力モードが切り替わりますが、その他のブラウザでは保証されません。
http://www.htmq.com/style/ime-mode.shtml

今、確認したところ、IE8はもちろん切り替わり、Firefox 3.6も切り替わりましたが、Google Chromeは切り替わりませんでした。
Opera,Safari,Sleipnir…等は試してません。

大手のサイトでは「より多くのブラウザで表示できること」が求められますので、独自仕様の「ime-mode」を使っているところは少ないのではないでしょうか。
逆に「Internet Explorerしか表示できなくて良い」と割り切ってるサイトや、社内だけに公開するようなページは「ime-mode」が使われていると思います。

QACCESSのフォーム内のレコードへのサブフォーム内のレコードの表示

いつも色々な方々に大変お世話になっております。
今回は見積書というフォームの中に、得意先一覧というサブフォームがあり、その得意先一覧にはもちろん得意先の名前があります。
現時点では、見積書フォーム内の得意先名レコードにコンボボックスを設置して選べるようにしてあります。
これを得意先一覧サブフォームの中から、見積書フォーム内の得意先レコードに表示させたい、得意先名をダブルクリックすると転記されるようするのは可能でしょうか?
宜しくお願いします。

Aベストアンサー

> 得意先名をダブルクリックすると転記されるようするのは可能でしょうか?
サブフォームの得意先名をということですよね?

Me.Parent!得意先レコード = Me!得意先名
のように、サブフォームのイベントに記述すれば、親フォームのコントロールを指定できます。

QACCESS フォーム上 テキストボックスを移動するごとに文字の入力モードが戻ってしまう

ACCESSでフォーム上で入力をしています。
テキストボックスを移動するごとに半角英数になってしまい非常に不便です。

テーブルではIME入力モード:ひらがな、IME返還モード:一般としています。
テーブルのデザインビューの状態では指定している通りのひらがなで入力できるのが、フォームになると半角英数の状態です。
フォームのプロパティから何か設定を変更しなければいけないのでしょうか?
よろしくお願い致します。

Aベストアンサー

maigo-no-konekoさん
ACCESS2000では次の機能があります。
テーブルの項目定義のIMEの設定内容が引き継がれる仕様なのか
否か不明ですが、フォームの定義画面でテキスト項目やコンボボックス
など入力項目毎に指定します。
(ただし、シフトキーを押しながらマウスクリックすることで
複数選択できます)

1)テキストポックスのプロパティ画面を呼び出します。
2)その他 タブにIME関連の項目があります。
  IME入力モード保持 直前に入力した項目のIMEの入力設定
  状態を引き継ぐ場合は「はい」にします。直前の入力項目の
  設定によらない場合は「いいえ」にします。
  IME入力モード オンまたはひらがな等にします。
           ここでご希望の入力方法を選択します。
  IME変換モード 一般(人名や地名などを入力す場合は
  人名/地名)にします。

Qアクセス検索フォーム【大項目→中項目→小項目と絞り込みながら検索】する方法を教えてください。

アクセス初心者です。
このサイトや手持ちのテキスト等でしばらく調べてがんばってみましたが、いろいろ試した不要なデータであふれかえってしまい拉致があかず、私が初心者であることからアクセス構築の考え方そのものにも不安があり、不勉強でお恥ずかしいのですがご質問させていただくことにしました。
お詳しい方ご教授願います。

やりたいことは、在庫管理のようなことで該当する在庫がいまどこにおいてあるのかを検索フォームを使って検索できるようにしたいのです。

在庫は大項目、中項目、小項目と分類しております。

検索フォームでコンボボックスなどを3つ配置し、大項目を一つ目のコンボボックスなどから選ぶと、次の二つ目のコンボボックスからは選んだ大項目から該当する中項目のリストが自動で選べ、中項目を選ぶと三つ目のコンボボックスからは選んだ中項目に該当する小項目のリストが自動で選べるような形にしたいと思っています。

大項目表テーブル
1 大項目1
2 大項目2
3 大項目3
というものを作って、

大項目1の中項目表テーブル
11 中項目A
12 中項目B
13 中項目C   このような中項目表テーブルは大項目1~3で3つ。
さらに、

中項目Aの小項目表テーブル
21 小項目あ
22 小項目い
23 小項目う   このような小項目表テーブルは中項目A~Cで9つ。

一応上記のような表は用意しました。


何年か前にマイクロソフトのMOS試験のアクセス2000には合格しましたが、それ以来アクセスをあまり触っておらず、いよいよ必要に背回れて困ってしまいました。不勉強で申し訳ありませんがよろしくお願いします。

アクセス初心者です。
このサイトや手持ちのテキスト等でしばらく調べてがんばってみましたが、いろいろ試した不要なデータであふれかえってしまい拉致があかず、私が初心者であることからアクセス構築の考え方そのものにも不安があり、不勉強でお恥ずかしいのですがご質問させていただくことにしました。
お詳しい方ご教授願います。

やりたいことは、在庫管理のようなことで該当する在庫がいまどこにおいてあるのかを検索フォームを使って検索できるようにしたいのです。

在庫は大項目、中項目、小項目...続きを読む

Aベストアンサー

この辺を参考に。
■コンボボックス作成の応用講座-1:SampleFile192
http://www.accessclub.jp/samplefile/samplefile_192.htm
■コンボボックス作成の応用講座-2:SampleFile193
http://www.accessclub.jp/samplefile/samplefile_193.htm

QAccess フォームのテキストボックスに半角英字のみで入力する設定は

IME入力モードをテーブル・フォームともオフにしたのですがひらがな入力モードになってしまいます。
フォームのテキストボックスに半角英字のみで入力する設定としてプロパティのIME入力モードをオフにするやり方自体が間違っているのでしょうか。
それともATOKを使っているなど利用するパソコン側の問題でしょうか

Aベストアンサー

IME入力モードを「使用不可」にしましょう。

Qアクセスでテーブル入力用のフォームを他のテーブルのレコードを参照しながら入力するには

こんにちわ
アクセスでテーブルのレコードを作成するのに
他のテーブルのレコードを引っ張ってきて
フォーム上で表示したいのですが
うまくいきません

たとえば、社員名テーブル(従業員番号と名前)
配属テーブル(従業員番号と営業所コード)
支社テーブル(支社名と営業所コードの上2桁)
営業所テーブル(営業所名と営業所コード)を作成しておきます

退職者が出るたびに
退職者テーブル用のフォームに
従業員番号を入力すると
フォーム上にその人の名前・支社名・営業所名が表示され
それを確認してから
その他のデータをその同じフォームに
入力したいのです
今、試しに作ったのは
テーブルに一度上書きしないとデータを引っ張ってこないの不便なのです

よろしくお願いします

Aベストアンサー

従業員番号・名前・営業所コード・支社名・営業所名を表示するクエリを作りそれを基にコンボボックスをフォーム内に作ります。
そのコンボボックスをコンボ1と名前を付けたとしてフォーム上の名前・営業所コード・支社名・営業所名の各フィールドにコンボボックスに表示される内容を出したい場合。
(従業員番号はコンボボックスを作る時に次のフィールドに保存するのところで従業員番号を指定しておいて)

Private Sub コンボ1_AfterUpdate()
名前 = コンボ1.Column(1)
営業所コード = コンボ1.Column(2)
支社名 = コンボ1.Column(3)
営業所名 = コンボ1.Column(4)
End Sub
上記の記述を更新後処理にすれば出来ます。
試してみてください。


人気Q&Aランキング

おすすめ情報