それからコピーの順序を変えました。コードが複雑になるのであっさりと。>あ、あと今気付いたのですが、メインレコードの>最後のレコードを削除してしまうと(IDに欠番が>出たすぐ後)サブレコードがコピーされないようです。>これは、メインレコードの最後のID+1(つまりメイン>レコードのコピー後のID)の値をいつも代入する、>のような感じですることは出来ますでしょうか。これはメインテーブルのIDがオートナンバーだからと思いますが。データの削除を伴う場合がるときは一般的には主キーこの場合はIDですが、を連続番号を発行するようにして対応します。いずれにしてもメインレコードだけを削除するのではなく、メインレコードに紐付けられたサブフォームのレコードも同時に削除しないと幽霊レコードがサブテーブルに残ることになります。>「i」とはどういった意味なんでしょうか。宣言しているように、数値型(長整数型)の変数でこれに数値を代入していろいろします。それでは以下、訂正したコードです。.EOFrs.AddNew'IDは必要ないと思われるのでコメントアウトしておきます。'必要なら先頭の'をはずしてください。rst![開始日]'以下、他に項目があるならその他の項目を置き換えてください。'必要なときは先頭の'をはずしてください'同様にして他の項目を追加してください。Subなお、レコードの削除と連続番号の発行方法については必要なら提案します。その場合はテーブルのIDフィールドのデータ型の変更、コードの追加と変更が必要になります。何回もとても親切に教えて頂いてありがとうございました。結果、別の方法で解決しましたが、piroin654様には大変お世話になりました。ありがとうございました。23:32No.11です。ありましたらお教え下さい。あ~・・・そういうことですか(汗)「サブテーブル」という名前に引っ掛かりを感じてはいたんですが、それはつまり、「サブフォームのレコードソースにしているテーブル」ということだったんですね。サブフォームの表示コントロールの名前が「サブテーブル」なのだと思っていました(汗)すみませんが、No.7の回答で「サブテーブル」になっているところは全て、サブフォームの表示コントロールの名前に置き換えてください。プロシージャ(P)」を指定して、置換ボタンをクリックして下さい。(検索条件などを間違えた場合は、置換ダイアログを閉じた上で、Ctrl+Zキーの同時押しで元に戻せます)・・・それと、No9の方への補足への横レスになりますが(汗)、そこでサブフォーム側のIDが1だけ小さくなっているのは、メイン側のレコードが、貼り付けただけで保存されていないのが原因です。対処方法としては、単純に代入値を+1するのではなく、メイン側の貼り付け後に「レコード保存」を追加するのが、根本的な解決策となります。acCmdSaveRecord」を入れているのもそのため)※DoMenuItemでの「レコードの保存」の引数がいくつになるかは、(RunCommandでやるのが正統ということもあり)調べていません。しないと、もしもメイン側とサブ側のそれぞれのIDにリレーションシップが組まれていて、参照整合性を設定していた場合(→今回の事例は本来そうされているべき事案かと)、恐らくエラーが発生するはずです。回答ありがとうございます!出来ました!!!!すごくうれしいです!!ありがとうございます(T▽T)この方法でしたら欠番も大丈夫ですね。あとひとつだけ良いでしょうか。コピー後にメインフォームの一番左上に画面を移動したいのですが、可能でしょうか?メインフォームには縦横にスクロールバーが出ていて、微妙に1画面に収まりきりません。画面が右下に寄っていて、その都度左上までマウスで移動してメインを入力する感じになります。左上が本当はいいのですが、難しければフォーカスの移動でもいいです。メインフォームの"ID"に移動など。19:20サブフォームのデータコピーのところです。うまくいきますように。すみません、最初のメッセージボックスで「キャンセル」を押してもコピーが実行されるようです。19:15>メインフォームのコピー後のIDより1つだけ小さい>IDでサブフォームがコピーされています。iの「i」とはどういった意味なんでしょうか。今後の為に覚えておきたいです。あと、コピー後の画面にて、サブフォームにはコピー前のIDのレコードが表示されてしまいます。メインのレコードを移動して戻ってくるとちゃんとコピー後のIDのレコードが表示されます。サブレコードの再読み込み?のようなことをすればコピー後にすぐ表示されるような気がするのですが、やりようはありますでしょうか。このままだと、コピー後すぐにサブレコードを編集してしまうと前のIDのものを編集してしまい、間違いのもとになりそうです。あ、あと今気付いたのですが、メインレコードの最後のレコードを削除してしまうと(IDに欠番が出たすぐ後)サブレコードがコピーされないようです。これは、メインレコードの最後のID+1(つまりメインレコードのコピー後のID)の値をいつも代入する、のような感じですることは出来ますでしょうか。それか他に解決方法がありますでしょうか。何回も度々恐れ入りますが宜しくお願いいたします。10:54No.7です。思うのですが、それで合っていますでしょうか。それで問題ないはずです。同じ「Err.Number=2465」のエラーが発生しましたので、「サブテーブル」という名前が、実際にフォームで使われているものと合っていない、ということで間違いないものと思います。ここで使用する名前は、サブフォームのプロパティシートの『その他』タブにある『名前』欄に表示されるものの方になります。『データ』タブの『ソースオブジェクト』欄に表示される方ではないので、ご注意下さい。Error~」の頭に「'」を追加して独自のエラー処理を無効にして、再度処理を実行してみてください。(エラーメッセージ内に表示される、『デバッグ』ボタンをクリックすることで、該当行を黄色表示させることができます:VBAに表示用のパスワードが掛かっている場合は、先に認証を通しておかないと、同ボタンは使用できないのでご注意下さい)※今回はメッセージ内で「サブテーブル」という名前が表示されているので、そこまでする必要はないかと思いますが、今後の参考まで。旧バージョンとはACCESSのことでしょうか。はい、Accessのことです。互換性を保つためにのみ、このバージョンに含まれています。Access97はAccess2000の前ですから、Access2000でも推奨されるのはRunCommandメソッドになりますので、置き換えました。サブフォームはデータシートでなければだめでしょうか。失礼、言葉が足りていませんでした(汗)「もしテーブルを直接使用していたなら、フォームで同様の見た目をしたものもあります(=データシート型)」という意味です。元からフォームを使用されているのでしたら、それで問題ありません。・・・長くなりましたが(汗)、以上です。回答ありがとうございます。>なお、ここで使用する名前は、サブフォームのプロパティシートの>『その他』タブにある『名前』欄に表示されるものの方になります。>『データ』タブの『ソースオブジェクト』欄に表示される方ではない>ので、ご注意下さい。こちらですが、サブフォームの表示コントロールのことでしょか?教えて頂いた式の中にサブフォームの表示コントロールを記載するところがありましたでしょうか?どこかにサブフォームの表示コントロールに置き換える場所がありましたらお教え下さい。01:14たぶん、データはコピーと表示ができると思いますが、フィールドが100あると聞いてあわててしまいました。必要なものも抜かしていたかもしれません。した回答で申し訳ないです。油断はできないのですが、何かあればメッセージを送ってください。00:51訂正しました。.EOFrs.AddNew'IDは必要ないと思われるのでコメントアウトしておきます。'必要なら先頭の'をはずしてください。rst![開始日]'以下、他に項目があるならその他の項目を置き換えてください。'必要なときは先頭の'をはずしてください'同様にして他の項目を追加してください。("サブフォームにレコードがありません。回答ありがとうございます。非常におしいです!メインフォームのコピー後のIDより1つだけ小さいIDでサブフォームがコピーされています。コピー前メインID=サブID=12659コピー後メインID=16989、サブID=16988おしいです!これの解決方法ありますでしょうか。00:14最初の回答の"この回答への補足"で、[サブフォームの表示コントロール]の名前をサブフォームと同じにした、ということですがこのようにすると何かと混乱のもとになるので例えば、サブフォームの名前がサブフォーム1ならば、コントロールの名前は違う名前、たとえばサブフォーム1subあるいはobjサブフォーム1のように変えてください。ときにはコードが動きません。サブフォームのデータが取れないのもそのあたりにあります。Me!サブフォーム表示コントロール名.Form.RecordsetCloneの部分も変更します。それから、>メインテーブルのフィールドが100を超える為、>教えて頂いたように行数を足していくのは>現実的ではありません。このようなことは最初に情報をくださいませ。du-samaさんが最初に提示したコードをそのまま利用して、以下のようにします。dbOpenDynaset)'サブフォーム表示コントロール名は変更してください。.EOFrs.AddNew'IDは必要ないと思われるのでコメントアウトしておきます。'必要なら先頭の'をはずしてください。rst![開始日]'以下、他に項目があるならその他の項目を置き換えてください。'必要なときは先頭の'をはずしてください'同様にして他の項目を追加してください。Subこの回答への補足メインフォームとサブフォームがコピーされましたが、'サブフォームのデータのコピーのところでIDをコピーしないようにすると、サブレコード自体はコピーされているようですが、IDが空白の為、コピー後のメインフォームに埋め込まれたサブフォームに表示されません。IDをコピーするように’を外したところ、やはりコピー前のIDと同じになってしまいました。メインコピー後のIDを代入する必要がありそうですが・・・。頂いた式で普通は出来るんですよね。ACCESS2000です。何か関係あるでしょうか。2003でサブフォームが更新されません。accessでコンボボックスとサブフォームでデータ表示したい。Access2007のサブフォームのRequeryで悩んでいます。回答数ランキングです。職業ビジネスアドバイザーこの専門家の回答をチェック他の専門家の回答をチェックこのQ&Aを見た人が検索しているワードフォームサブコピーデータACCESSこのQ&Aと関連する良く見られている質問QAccess:サブフォームのレコードのコピー(複数)Accessにて販売管理システムを構築しています。以下の構成にてテーブルがあります。------------------------------*主キーはすべてオートナンバーにて採番されるようにしています。T_見積伝票とT_見積明細がリレーションT_受注伝票とT_受注明細がリレーション実現したいことは、T_見積伝票&T_見積明細に入力された内容が実際に受注となった場合、「受注に転記」のようなボタンを設置しクリックすることで、T_受注伝票&T_受注明細に複製できればと思っています。T_見積伝票とT_受注伝票にはいくつか異なるフィールドがあるので、(見積日と受注日)対応するフィールドの内容のみコピーしたいです。逆にT_見積明細とT_受注明細は主キーとなってるIDのみ違うだけでそれ以外は全て同じフィールドにて構成されていますので全部コピーしたいです。調べた結果、追加クエリを使うといいみたいですが追加クエリ自体がよく分からず質問させて頂きました。Accessにて販売管理システムを構築しています。以下の構成にてテーブルがあります。------------------------------T_受注明細(サブ)・明細ID(主キー)...続きを読むAベストアンサー>この記述で複数の明細をコピーできるのでしょうか?出来ますよ。条件を満たすレコードを自動的に全て追加できます。1;上記の【選択】クエリで、複数のレコードが【選択】できますよね。これと同様に【追加】クエリなら、複数のレコードが【追加】されます。SQL(クエリ)の便利なところです。いう言語を非手続き型言語と言います。今回のプログラムでは、受注IDの問題があったので、前半はDAOのRecordsetを使って、手続き型の処理をしています。後半はSQLを使って非手続き型の処理をしています。他の回答も見るQAccessでレコードの複製Accessで、ボタンをクリックすると表示させているレコードをコピーして複製したいです。「コマンドまたはアクション”追加貼り付け”は無効です」となってしまいます。acCmdPasteに修正しても「コマンドまたはアクション”貼り付け”は無効です」となって、エラーになってしまいます。acCmdSelectRecordここで、手動で、ctrl+Vをすると、レコードのコピーができます。コードの書き方が間違っているのでしょうか?ご教授よろしくお願いいたします!Accessで、ボタンをクリックすると表示させているレコードをコピーして複製したいです。「コマンドまたはアクション”追加貼り付け”は無効です」となってしまいます。サブフォームのコピーでエラーになるとのこと。私の場合はその前の段階の、メインフォームのレコードのコピーでつまづいております・・・。方)は・メインをコピーした後で・サブフォームの元テーブルに対して該当レコードをコピーという流れになっています。サブフォームのコピーでエラーになるとのこと。私の場合はその前の段階の、メインフォームのレコードのコピーでつまづいております・・・。方)は・メインをコピーした後で・サブフォームの元テーブルに対して該当レコードをコピーという流れになっています。ac...続きを読む他の回答も見るQAccessでレコードの複製Access2010を使用して入力フォームを作成しています。「複製」ボタンを押すと、メインフォーム、サブフォームのレコードがコピーされるようにしています。メインフォームの元テーブルはJIKサブフォームの元テーブルはRENです。インデックス、主キー、またはリレーションシップで重複する値が生成されるためテーブルに要求した変更でした成功しました。フィールドまたは重複データが含まれている、インデックスを削除するフィールド内のデータを変更または重複するエントリを許可して、やり直してのインデックスを再定義します。このエラーは、レポートやレポートの生成に変更を保存するときに発生します。テーブルをインポートすると正常に動作します。テーブルをリンクさせる場合、レコードの複製は不可能なのでしょうか?VBAは以下のように記述してみました。Sub追加クエリは以下のように作成してみました。(((REN.事件ID)=[Forms]![MAIN]![txtCopy事件ID]));Access2010を使用して入力フォームを作成しています。「複製」ボタンを押すと、メインフォーム、サブフォームのレコードがコピーされるようにしています。メインフォームの元テーブルはJIKサブフォームの元テーブルはRENです。部分は、編集中なら保存してみて、まだ編集中なら何かあったんでしょう。新規レコードなんでしょう。コピーするものはないので抜けます。With部分がメインフォームに表示しているレコードのコピー処理になります。現在表示しているレコードに同調させます。「事件ID」はオートナンバなので値を設定しない様にします。追加したので、メインフォームでは追加したものがカレントになってます。いうことは、オートナンバ「事件ID」は新しく採番された値となります。Nothing部分がサブフォームの元になっているテーブル「REN」への追加になります。テーブル「REN」の「事件ID」が、元の「事件ID」と一致するものを抽出します。一致するものがなければ何もしません。これにより、フィールドの順が同じものが作られることになります。フィールド順が同じという事は、フィールド何番目を何番目に代入・・・・この、何番目が一緒になることを意味します。抽出条件に一致するものがあったら、何件かわかりませんが複製元を最後に移動します。前に向かって、抽出されたレコード数分フィールドの値を同じに(代入)していきます。SelectNextここでもメインと同様に、オートナンバ「連絡先ID」なら値を設定しない様に。「事件ID」は新しく採番された「Me.事件ID」を設定する様に・・・・(「Me.事件ID」は前述したように追加した後のものになっているので・・・)で、サブフォーム元のテーブルに追加した後、リンク親/子フィールドが設定されていたとすると、Me.Recalcで、フォーム内(メイン/サブとも)の表示が変わったと思います。最後に、フォームの表示抑止を解除します。専用の記述にすると、上記の様になるかと思います。少ない記述でできるものと思います。判別は、出現しない事になります。)のどちらかになると思います。今回は、前に前に・・・の方法を提示してみました。仕様変更等により、各テーブルのフィールド数に増減があったとしても修正しなくても良い(除外・更新する部分に変更あれば、修正は必要ですが・・・)参考にする/しない等々含め、自己責任でお願いします。(必要に応じて)このようなコメントは不要と思います。読んでわかるレベルのものならば、コメントはない方が良いかもコメントは、読んでもわからない理由を記述しておくものと思います。部分は、編集中なら保存してみて、まだ編集中なら何かあったんでしょう。新規レコードなんでしょう。コピーするものはないので抜けます。With部分がメインフォームに表示しているレコードのコピー処理になります。現在表示しているレコードに同調させます。サブフォームでの選択行の取得こんにちは。Access初心者です。選択された行を取得する方法はありますか?サボフォームの下の方に現在選択されているレコード数が表示されてますが、その値でかまいません。調べているのですが、なかなか検討がつきません。Aベストアンサーフォーム名がフォーム1、サブフォームコントロールの名前がサブフォーム1だとすると、Forms!フォーム1!サブフォーム1.Form.CurrentRecordで取得できます。(「Forms」と「Form」がありますのでご注意下さい)また、フォーム1にコードを記述する場合であればMe!サブフォーム1.Form.CurrentRecordサブフォーム1へのコード記述であればMe.CurrentRecordという構文によっても、それぞれ取得が可能です。他の回答も見るQAccessのRefresh・Requery・Repaintの違いRequeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。Repaintは、VBAでキャプションなどを変更したとき使っています。どんなときにどんなメソッドを使えばいいのでしょうか?詳しい方、よろしくお願いいたします。Aベストアンサーたびたびすみません。調べてたらこんなのがでてきました。初歩的な質問ですが困っています。表記の通りにAというテーブルへ入力フォームを使いデータ入力しています。そこでほぼ同じ内容の入力項目が数十件発生する時があります。そのために入力フォームで作成したデータをそのまま新規レコードへコピーしコピー後に手直ししようと考えています。すればよいのか妙案がうかびません。ヒントでもいいので教えてください。選択していたレコードを、新規レコードにコピーできると思います。フォームからサブフォームのデータを更新・入力したいtbl_プロジェクトというテーブルにIDとプロジェクトコード、プロジェクトの基本情報を持たせ、f_プロジェクトフォームからプロジェクトコード、件名、契約日等のデータ及び、f_テーマサブフォームにテーマを入力できるようなフォームを作成しています。フォームで入力したものをそれぞれのテーブルに保存したいのですがうまくいかない部分があります。フォームから入力すると、tbl_プロジェクトに所属する情報は更新されます。そのtbl_プロジェクトに所属するプロジェクトコードをサブフォームのtbl_テーマのプロジェクトコードにも反映したいのですがどのようにしたらよいでしょうか?そういったことは可能でしょうか?分かりにくい説明で申し訳ないですが教えていただけると助かります。(1件1件のIDとプロジェクトコードを持つ)(フィールド:P_ID、プロジェクトコード、件名、契約日など)tbl_テーマ(プロジェクト毎に関連のあるキーワードを持つ)(フィールド:P_ID、プロジェクトコード、テーマ)←これのプロジェクトコードにtbl_プロジェクトのデータが入るようにしたい。(f_プロジェクトフォームのプロジェクトコードにづきテーマを表示・入力するサブフォーム)リレーションはP_IDをキーに一対多で作成しています。フォームからサブフォームのデータを更新・入力したいtbl_プロジェクトというテーブルにIDとプロジェクトコード、プロジェクトの基本情報を持たせ、f_プロジェクトフォームからプロジェクトコード、件名、契約日等のデータ及び、f_テーマサブフォームにテーマを入力できるようなフォームを作成しています。フォームで入力したものをそれぞれのテーブルに保存したいのですがうまくいかない部分があります。フォームから入力すると、tbl_プロジェクトに所属する情報は更新されます。そのtbl_プロジェク...続きを読むAベストアンサーNo.4です。前回の回答は、「レコードの新規登録」のみを想定していました(汗)大変失礼致しました。【「メインフォーム」-「サブフォームの新規レコード」間の不一致について】(=No.4の補足での、2個目の「◆」の件)メインフォーム側の「レコード移動時」イベントで、『プロジェクトコード』の更新後イベントと同様の処理を行えば、解消すると思います。Form_Current()」となる他は、前回のVBAと全く同じなので、今回は省略します)【既存レコードでの『プロジェクトコード』の空白について】(=No.4の補足での、1個目の「◆」の件)対処法としては、a)更新クエリを使用して、tbl_テーマの『プロジェクトコード』を一括更新(→tbl_テーマに入力済みの『P_ID』の再確認が不要な場合)b)「メインフォーム上のプロジェクトコードを、サブフォームの全レコードに一括代入」するためのコマンドボタンを、メインフォームに追加(→tbl_テーマの『P_ID』が正しいかを目視確認してから代入する場合)の、2つの考え方があります。「a」については添付画像をご覧いただくとして、ここでは「b」について説明します。テーマを修正するとフォーム上では10001が入力される。tbl_テーマには反映されない。件も解消すると思います。(但し、別のレコードに移動したり、メニューから「レコード(R)→レコードの保存(O)」を選択する等して、レコードが保存してからでないと、テーブルには反映されないので、確認の際はご注意下さい)・・・以上です。前回の回答は、「レコードの新規登録」のみを想定していました(汗)大変失礼致しました。【「メインフォーム」-「サブフォームの新規レコード」間の不一致について】(=No.4の補足での、2個目の「◆」の件)メインフォーム側の「レコード移動時」イベントで、『プロジェクトコード』の更新後イベントと同様の処理を行えば、解消すると思います。Subこれをすると、実行時エラー2498指定した式は、いずれかの引数とデータ型が対応していません。i但し、「Requery前後でのレコード移動の回避」が目的の場合は、Requeryの対象を「親フォームまたはサブフォームのFormオブジェクト」ではなく「サブフォームコントロール」とすればOkです。<現状・例1>Forms("Form").SetFocusDoCmd.Requery<現状・例2>Forms("Form").Requery<現状・例3>Forms("Form").Controls("SubForm").Form.Requery<代替策>Forms("Form").Controls("SubForm").Requery※「現状・例3」との違い(→途中の「.Form」の有無)に注意。実行時エラー2498このエラーの直接の原因は、GotoRecordメソッドの第2引数に指定している「Forms("Form").Controls("Subform")」の部分です。ここに指定するのはオブジェクト名になりますが、そのデータ型は文字列型です。「~.Controls(~)」の形で指定した場合、取得できるのはa)オブジェクトそのものb)そのオブジェクトのデフォルトプロパティのどちらかです(→状況によって変化します)。型のプロパティではないため、「型が一致しない」とのエラーとなります。サブフォームのコントロール名を取得する場合は、Forms("Form").Controls("SubForm").Nameというように、Nameプロパティを明示的に指定する必要があります。「サブフォームのレコード移動」の場合、明示的に「Name」プロパティを指定しても解決には至りません(汗)これは、GotoRecordメソッドの第2引数には、直接開いているオブジェクトの名前のみが有効なためで、サブフォームを直接的に指定することはできない、ということです。iなお、これも冒頭に書きましたが、サブフォームのRequeryの仕方には幾つか方法がありますが、Requeryの対象を「コントロールとしてのサブフォーム」にすれば、レコード移動が発生しませんので、GotoRecord自体が不要になります。i但し、「Requery前後でのレコード移動の回避」が目的の場合は、Requeryの対象を「親フォームまたはサブフォームのFormオブジェクト」ではなく「サブフォームコントロール」とすればOkです。<現状・例1>Forms("Form").SetFocusDoCmd.Requery<現...続きを読む他の回答も見るQメインフォームとサブフォームのレコードを複製(昨日同じ質問をあげましたがカテゴリが間違っていたのでこちらにあげなおしました)メインフォーム「MAIN」にサブフォーム「REN」を埋め込んでいます。【メインフォームMAIN】テーブル名:JIKID:事件ID【サブフォームREN】テーブル名:RENID:連絡先ID(・事件ID)ボタンをクリックすると、メインフォームで表示させているレコードを複製させたいです。以下を参考に、そのとおり(のつもり)に作ってみたのですが(メインフォーム「MAIN」に「txtCopy事件ID」という名前のテキストボックスも作成しました)「コマンドまたはアクション”追加貼り付け”は無効です。」とエラーメッセージが出てしまいます。...ちなみに追加クエリだけを実行すると表示させているメインフォーム「MAIN」のレコードに、サブフォーム「REN」のレコードが追加され、サブフォーム「REN」のレコードが2倍になりました。以下追加クエリとコードです。Subよろしくお願いいたします!(昨日同じ質問をあげましたがカテゴリが間違っていたのでこちらにあげなおしました)メインフォーム「MAIN」にサブフォーム「REN」を埋め込んでいます。【メインフォームMAIN】テーブル名:JIKID:事件ID【サブフォームREN】テーブル名:RENID:連絡先ID(・事件ID)ボタンをクリックすると、メインフォームで表示させているレコードを複製させたいです。以下を参考に、そのとおり(のつもり)に作ってみたのですが(メインフォーム「MAIN」に「txtCopy事件ID」という名前のテキストボックスも作...続きを読むAベストアンサーメインフォーム側の方は解決しました様で良かったです。ぶどう項目名は左からID1(オートナンバー)、コード、品名とします。項目名は左からID2(オートナンバー)、ID1(数値)、コード、品名、産地とします。青森という感じの動作になるかと思うのですが(間違っていたらお恥ずかしい限りですが。^^;)この時サブフォームの「ID1」(=事件ID)は同じ値が複製されるので、主キーが設定されているとキー違反になってしまうかと思われます。サブフォーム側の「事件ID」に主キーが設定されていたら、そちらは主キーを外して「連絡先ID」の方に主キー設定して下さい。_)mメインフォーム側の方は解決しました様で良かったです。これをそっくりそのまま質問者様の仕様に置き換えるとメインフォーム→MAIN事件ID→オートナンバー型(主キー)・・...続きを読む他の回答も見るQAccessで別テーブルの値をフォームに表示したい初めてのAccessで分からない事があり質問させてください。単純にテーブル[会社]のみでフォームを作成し、社員表示用テキストボックスを追加。DBLookup()を使っています。これで、クエリを用意しなくても目的を達成できます。かかるユーザ関数を標準ライブラリに登録したくない場合、1、"社員ソートクエリ"を作成します。社員.ソート番号;2、コントロールソースに次のように書きます。[会社ID])http://office.microsoft.com/ja-jp/access-help/HA001228825.aspxDLookup()については、マイクロソフトの解説を参照されてください。節を指定する引数が用意されていません。しても、"社員ソートクエリ"を作成するという手間が必要となります。そこで、SQL文を引数とするDBLookup()をVBAで書けば、その手間を省けるという算段になります。この辺りは、好みと趣味の問題。どっちでも良いと思います。DBLookup()を紹介しておきます。ADOは、つぎのように参照設定しないと利用できません。文の実行時にエラーが発生しました。Function単純にテーブル[会社]のみでフォームを作成し、社員表示用テキストボックスを追加。DBLookup()を使っています。これで、クエリを用意しなくても目的を達成できます。かかるユーザ関数を標準ライブラリに登録したくない場合、1、"社員ソートクエリ"を作成します。Inc.Q質問する(無料)Q&A検索goo検索gooIDで新規登録・ログイン新規登録する(無料)会員の方はこちら外部サービスのアカウントで新規登録・ログインYahoo!で新規登録・ログインGoogleで新規登録・ログインTwitterで新規登録・ログインFacebookで新規登録・ログインdアカウントで新規登録・ログイン※各種外部サービスのアカウントをお持ちの方はこちらから簡単に登録できます。お客様の許可なしに外部サービスに投稿することはございませんのでご安心ください。会員でない方、会員になるとあなたも質問や回答ができるようになります!!親切・丁寧な回答が集まる場30分以内に回答がもらえ回答数は平均3件!匿名(ニックネーム)での投稿なので。