
アクセス初心者です。よろしくお願いいたします。No.1834440で質問したものですが、私の質問の表現不足のせいと理解不足のせいで、いただいたご回答をいまだに研究しています(現在進行中)が、なかなか把握することができません。ご迷惑をおかけして申し訳ありません。
【やりたいこと】:
★フォームでフィールド名《氏名》をリスト式で選びたい。右済の▼マークを押すと氏名が表示され、それを選ぶことで氏名入力済のレコードに移動し、他のたくさんある未入力のフィールドにデータを入力したいのです。
★フォームの《氏名》の上で双眼鏡マークの検索(例:「山*」)をして選んで、レコード移動するイメージに近いのですが、上記のことにこだわりたいのは、私が異動でいなくなっても後任者(もっともっとアクセス超初心者)に引き継げるように便利でシンプルなものにしたいのです。
★そこで、今回、できればVBAを使わずにそのようなことが可能なのかどうか、可能ならどのようにすればよいのかをご指導お願いいたします。
よろしくお願いいたします。前回ご回答くださった方含めて広くご指導いただけましたら幸甚です。
No.3ベストアンサー
- 回答日時:
操作上ではマクロもVBも使わない方法です。
1.新規にフォームをテーブル氏名を基に作成します。
→単票形式・テーブル氏名を選択→OK
2.もう1個検索するためのフォームを作成します。
(1)このフォームにコンボボックスを張付けます。
→テーブル/またはクエリの値を表示する→氏名のテーブルを選択→選択可能なフィールドを選択(氏名)
→次に、コンボボックスのプロパティ→その他タブ→名前を「氏名検索」
⇒これでコンボボックス(右隅の▼マークを押すと氏名が表示されます)ができます。
(2)このフォームにサブフォームを張付ける
→「既存のフォームを使用する」をチェック→1.で作成したフォームを選択
3.コンボボックスとサブフォームを関連付けします。
→サブフォームを右クリック→プロパティ→データタブで
リンク子フィールド サブフォームのデータ項目名を「氏名」
リンク親フィールド コンボボックスの名前を「氏名検索」入れます。
これで「コンボボックスで選択した「氏名」と合致した内容をサブフォームに表示し、未入力のフィールドにデータを入力変更できます。
お試しください。
この回答への補足
たびたび、失礼します。もう一度お世話いただきたいのです。^^;お助けください。
(1)保存をかけるときに、
「プロパティの設定値として指定した値が正しくありません。プロパティの有効な設定については、オンラインヘルプの各プロパティのトピックスで確認してください」
と出ます。フォームビューで入力等したあとだけなら保存するときになんの問題もないのですが、一度デザインビューにしてフォームビューに戻したときに保存しようとすると、そのメッセージが出ます。どのように対応すればよろしいでしょうか?あるいは、入力担当者がデザインビューを触る必要はないので、無視してよいものでしょうか?
(2)サブフォームの下部のレコード移動バーのようなもの(正式にはなんと表現すればよいのかわかりません^^;)を表示しないようにすることはできますでしょうか?
アクセスは、XPです。よろしくお願いいたします。お待ちしています^^
はじめまして、sanbitさん、ありがとうございます。とてもシンプルな方法ですが、理想のフォームができました。心からありがとうございましす^^。締め切るのは他のご回答を頂いた方の内容を研究しますのでもう少しお時間ください。では、感謝を込めて。
No.4
- 回答日時:
>(1)保存をかけるときに、エラーメッセージが出ます。
デザインで修正で保存しましたが再現できません。ただし2000です。
以前(現役時代)にこのようなやり方で2000で作成したDBはXPで問題ありませんでした。フィールド名、ボックス名が半角混在の場合、全角に統一したことがあります。フイールド名ボックス名を確認ください。
申し訳ありません。「プロパティの設定値として指・・・・」よく分かりません。
>(2)サブフォームの下部のレコード移動バーのようなもの
⇒移動ボタン:コンボボックスで選択したデータが複数あるとき選択します。
⇒消し方:サブフォームの基になっているフォームをデザインモードで開く
→プロパティ→書式タブ→移動ボタンを「はい」を「いいえ」に。
この回答への補足
さっそくのご回答、アドバイスをありがとうございます。
私もアクセス2000の入った他のPC端末で試したところ、そちらでは全くエラーはでませんでした。
デザインからフォームビューに切り替えさえしなければ(フォームビューだけの入力で終始するならば)このエラーがでないことから、いっそのこと、
◆他の入力担当者にさわれないようにフォームビューからデザインビューに切り替わらないようにロックをかける方法があるならばお教えくださいませんか?(たびたびの追加質問をお許しください)
◆サブフォームのレコード移動はOFFにできました。
ありがとうございました。
No.2
- 回答日時:
> マクロok、クエリokということでご指導いただけない
> でしょうか?
えっと、了解です。
個人差がありますので、試してみて使用感が良さそうな物を使用してください。
最初に、クエリーで制御して、条件に合うものだけ出して移動したようにみせかけるパターンです。
これは、実際移動しているわけではありません。
ここの利点は検索結果なしだと新規レコードとなります。
では、手順に、
1.テーブルを作成します。
テーブル名:Tbl名簿
フィールド:氏名 テキスト型
フィールド:・・・略・・・
2.フォームを作成します。
レコードソース:Tbl名簿 (後で訂正します)
レコードからのフィールドのコントロール類を設定し、
コンボボックス:ctl氏名検索 (コントロールソースなし)
値集合ソース:
SELECT Tbl名簿.氏名
FROM Tbl名簿
ORDER BY Tbl名簿.氏名;
と、コントロールを追加します。
で、一旦保管して終了
ここで、フォームをコピーして置いておくと、マクロで検索するときにも使えます。
3.フォームをデザインビューで開いて、「ctl氏名検索」の更新後処理に、マクロで「再クエリ」だけマクロに入れて保管終了。
4.フォームをデザインビューで再度開き、フォームのレコードソース「Tbl名簿」の後ろの方の「・・・」の部分をクリック、クエリービューが表示されるので、SQLビューに変更して下記のSQL文をコピー&ペースト
SELECT Tbl名簿.*
FROM Tbl名簿
WHERE Tbl名簿.氏名 Like [Forms]![フォーム名]![ctl検索];
で、デザインビューにすると、どう言うことだか判ります。
で、保管して終了。以上で完了です。
最初にフォームビューで開くと、新規レコードになってます。コンボボックスを変更するとフィルタで選択した氏名だけレコードに表記されます。
で、先ほどの3.からマクロで検索へ移行します。
5.フォームをデザインビューで開いて、「ctl氏名検索」の更新後処理に、マクロで
コントロールの移動:「氏名」のコントロール名、単純に行くと氏名
レコードの検索 :
検索データ =[Forms]![フォーム1]![ctl検索] (「=」から入れてください)
検索条件 フィールド全体
大小文字区分 はい
検索方向 すべてのレコード
表示書式で検索 いいえ
カレント・・・ はい
先頭から検索 はい
で、設定すれば移動します。
こっちの利点は本当にレコード間の移動と言うことですが、逆に検索結果が存在しない場合、移動しない。と言う問題が・・・マクロで条件を追加すればメッセージボックスでエラー表示も可能です。
で、とりあえずマクロ、クエリ可の場合です。
とりあえずは、がんばってみてね。
Dxakさん、ありがとうございます。
初心者レベルの私に懇切丁寧な再三のご回答を心より感謝いたします<(_ _)>
結論としてですが、私のレベルではDxakさんのご指導内容を理解できませんでした。申し訳ありません。m(_ _)m。マクロOK,クエリOKと申し上げてておきながら・・・。きっとまとを得たすばらしいご回答内容だと思うのですが、私の理解力とスキルの低さのためにお時間をとらせてお付き合いいただきましたことをお詫びとともに心より感謝申し上げます。ご回答内容は無駄にならないように勉強してみます。本当にありがとうございました。
No.1
- 回答日時:
こんです~
VBA無であれば、ほかにマクロも不可でしょうか?
クエリー側で条件を追加して「再クエリ」(フィルタを使用)か、マクロ側で「レコードの検索」(前回のVBAと内容は一緒)とか?
どちらも、マクロと言う形ですが、VBAと実施している内容は同じになります。
こちらも不可であれば、ダミーテーブルを作成し、親フォームとサブフォームで連結って言うのもありますが・・・、私的には使用感に違和感があります。
どうされます?
この回答への補足
こんばんは^^。どうもありがとうございます。マクロok、クエリokということでご指導いただけないでしょうか?よろしくお願いいたします。本日は退社しますので、月曜以降の閲覧になるかもしれませんが、どうか、どうか、よろしくお願いいたします^^;
補足日時:2005/12/16 19:19お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) Accessフォームで複数条件でフィールドの値を表示する方法 4 2022/07/21 10:47
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS2003 タブコントロール...
-
Access2003 入力フォームの表...
-
アクセス2003で入力フォー...
-
Access2002でクエリで抽出され...
-
フィルタ後のフォームの件数の...
-
レコード削除時に(サブ)フォー...
-
ACCESSでフォームを使って、テ...
-
アクセスでフォームビューがみ...
-
アクセスでフォームの作り方、...
-
ACCESSフォームのリストボック...
-
Access フォームで入力した番...
-
レコードを保存するコード ア...
-
Access フォーム入力で、一度に...
-
Accessで上の行を自動でコピー...
-
アクセス フォームでの行追加
-
ACCESSのクエリで抽出したデー...
-
アクセスのフォームが見れない...
-
Access2003で現在時刻の自動取...
-
ユニオンクエリについて質問です
-
ACCESS / 抽出条件によってレポ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードを保存するコード ア...
-
新規レコード行を非表示にしたい
-
アクセスでフォームビューがみ...
-
レコード削除時に(サブ)フォー...
-
Accessで上の行を自動でコピー...
-
AccessVBA RecordSourceのリセ...
-
アクセスのフォームで立ち上げ...
-
ACCESSフォームのリストボック...
-
アクセスの自動保存解除はでき...
-
アクセス:フォーム入力で、最...
-
Accessで一件の新規レコードの...
-
フィルタ後のフォームの件数の...
-
アクセス データの競合を非表...
-
Access:フォームプロパティ「...
-
Access2010、値を入力したら自...
-
レコードをダブルクリックする...
-
Accessでのデータ消滅に...
-
ACCESSでフォームを使って、テ...
-
Accessでフォーム上に 直前の...
-
アクセスでの警告について教え...
おすすめ情報