質問: アクセスで作られたツールがあり、その中にある入力用のフォームにボタンを追加したいのですが、 上手くいかずに困っています。 ☆やりたいことは以下になります。 追加したボタンを押すと、CSVをインポートして、 インポートしたレコードを加工するクエリの結果のレコード数だけ以下を繰り返す。 ・それぞれのフィールドにクエリの値をセット ・次へボタンを押す(レコードソース:次のレコードに移動) ☆困っている点は以下になります。 入力フォームは、以下のように作られているので、 ・レコードソースにテーブルが設定されている ・フィールドのイベント時(フォーカスの取得時、喪失時、更新後処理など)&ボタンを押した時に マクロが使われる ⇒それぞれのフィールドにクエリの値をセットする際に、 既存のイベント処理をおこなわせたいので、フォーカスしたいが、エラーになる 「DoCmd.RunMacro」はエラー「コントロール'フィールド名'にフォーカスを移動することはできません」 フィールドの「仕様可能」プロパティは「はい」です。 「.SetForcus」はエラー「オブジェクトは、このプロパティまたはメソッドをサポートしていません」 ⇒フォームのレコードソースが次のレコードに移動できずエラーになる クエリの値を各フィールドにセットして、レコード数だけ繰り返すことはできているのですが、 レコードが追加されていない 「DoCmd.GoToRecord acDataTable, "レコード名", acNewRec」はエラー 「DoCmd.GoToRecord acDataTable, "フォーム名", acNewRec」はエラー 「DoCmd.GoToRecord acDataForm, "レコード名", acNext」 はエラー 「DoCmd.GoToRecord acDataForm, "フォーム名", acNext」 はエラー お手数をおかけいたしますが、お力添えいただけますと幸いです。 何卒、よろしくお願いいたします。
回答: 「.SetForcus」はエラー「オブジェクトは、このプロパティまたはメソッドをサポートしていません」 SetFocus できるのはフォーム上のコントロール(テキストボックスなど)で、フィールドとは違うということは理解できてますか。フィールド名.SetFocusとしているのでは。 Me.テキストボックス名.SetFocus としてください。 ⇒フォームのレコードソースが次のレコードに移動できずエラーになる クエリの値を各フィールドにセットして、レコード数だけ繰り返すことはできているのですが、 レコードが追加されていない 新規レコードへ移動してデータを入力したい(レコード追加)ということなら、 DoCmd.GoToRecord acDataForm, "フォーム名", acNewRec でいいはずです。 次レコードなら、 DoCmd.GoToRecord acDataForm, "フォーム名", acNext これでうまくいかないなら、現状のコードを提示してください。