Accessのコントロールのメソッドについて

このQ&Aのポイント
  • アクセス-VBAにおいて、コンパイルエラーが発生する原因と対応方法について質問です。
  • コントロール名の後に「.」を入力しても、メソッドやプロパティのリスト入力ができない場合にどうすればよいかお知りになりたいです。
  • 動作環境がWindows 7でAccess 2015の場合、ライブラリの参照設定をどうすれば良いか教えてください。
回答を見る
  • ベストアンサー

Accessのコントロールのメソッドについて

質問です。 Access-VBAで下記の記述をしました。 Me.品目コード.SetFocus Me.品目名.Value = "AAAA" これでコンパイルすると、エラーが発生します(メソッドまたはデータメンバーが見つかりません)。 コントロール名の後に「.」を入力すると、メソッドやプロパティのリスト入力ができるようになりますが、その中にSetFocusやValueがありません。 ライブラリの参照設定の問題なのでしょうが、どれを参照すれば分かりません。 動作環境は以下の通りです。  ・OS : Windows 7  ・Access : 2015 どのように対応すればよろしいでしょうか? 回答、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

「品目コード」と「品目名」はテキストボックスでしょうか? 本当にその名前になってますか? 今一度、プロパティシートでご確認ください。 レコードソースのフィールド名なんじゃないでしょうか? コントロールの名前を「txt品目コード」「txt品目名」に変えて 再度お試しください。

melon8888
質問者

お礼

ありがとうございます。 確認してみたところ、どちらのコントロールもテキストボックスではなくて、ラベルになっていました。 これでは、setfocusもvalueも使えなくて当然ですよね。 私のような初級者に迅速に回答頂き、ありがとうございました。

関連するQ&A

  • Access2002 わからないことだらけ。

    うまくいってたのにエラーになりだしました。 あせってしまって解決方法がわかりません。 基礎の基礎で簡単なことだと思いますがお笑いにならず教えてください。 Dim ds As Databases Dim rs As Recordset Set ds = CurrentDb Set rs = ds.OpenRecordset("テーブル") コンパイルエラー メソッドまたはデータメンバが見つかりません と、メッセージが出ます。 デバッグすると、ds.OpenRecordset でスットップします。 意味を教えてください。 もう一つ別の質問ですが,VBAのメニューの[ツール]→[参照設定]→[参照可能なライブラリー]はどれどれ選べばいいのですか? また優先順位はどうすればいいのですか? よろしくお願いします。

  • Openメソッドについて

    ブックAのSheet1にあるセルのデータをブックBのSheet1のセルにコピーするために、以下のようにOpenメソッドを使ったVBAを記述してみたのですが、エラーコード1004「指定されたファイルが存在しません」のようなエラーメッセージが出てきました。Openメソッドが使われている例を見ているとどうやらブックのあるフォルダを指定しているような感じがするのですが、Openメソッドは具体的に該当のブックのある場所を指定しなくてはならないのでしょうか??(私がVBAを記述するにあたり参考にしたインターネットのVBAを紹介するページでは、ブックのある場所を指定せず、私が記述したように直にブック名を入力していました。) お忙しい中申し訳ないのですが、どなたかご教授いただけると、とても嬉しいです!よろしくお願いいたします。 Sub ブックAのデータをブックBに() With Workbooks.Open("ブックA.xlsx")  .Sheets("Sheet1").Range("E8").Value = _ ThisWorkbook.Range("C2").Value End With End Sub

  • アクセスのコントロールの移動について教えてください

    Win2000、アクセス2000を使用しています。 日付を入力するテキストボックスの更新後処理に以下のVBを組みました。 Private Sub 発送日_AfterUpdate() If Me![発送日] < Me![受注日] Then MsgBox "受注日より前の日付を入力しています。" & vbNewLine & "訂正してください。", _ vbOKOnly + vbExclamation, "発送日" End If Me!発送日.SetFocus End Sub ところが、[発送日]のテキストボックスではなく、次のテキストボックスにカーソルが行ってしまいます。 ちなみに[発送日][受注日]ともプロパティで「g ee\.mm\.dd」という書式を設定しています。 書式の設定とは関係ないと思いますが… よろしくお願いします。

  • Showメソッド

    VBA初心者です。 ユーザーフォームから他のユーザーフォームにボタンで移動するのに、 オブジェクト名.show で、移動しません。移動できたのとできなかったのがあるので、ユーザーフォームの設定が違うのでしょうか?エラーは、 「メソッドまたはデータメンバが見つかりません。」 で、「.show」にラインが入っていました。

  • Accessのコンボボックスのデフォルト表示

    Access初心者です。 フォームのコンボボックスですが、ウェブフォームでよく見られるように、未選択時に「---選択してください---」というコメントを表示できないでしょうか。 「---選択してください---」はデータとして入らないような解決法でお願いします。 VBAでMe!コンボボックス名.Value = "AAA"というふうにやってみましたが、どうもValueはテーブルのデータ型と同じでないとダメみたいです。テーブルの当該フィールドには例えば都道府県IDのように、数値だけしか格納しない予定ですので、これでは「このフィールドに入力した値が正しくありません」というエラーが出ます。 なお使っているのは2013です。いい解決法がないでしょうか。よろしくお願いたします。

  • プロパティやメソッドなどの入力補助

    何と呼ぶのか分からないのですが、VBにはプロパティやメソッドなどが 自動で出力される入力補助がついていますよね? 例えば Text1. と打つと、[Alignment][Appearance]・・・と選択肢が自動で出力されたり dim Value as Boolean と設定して Value = と打つと、[True][False]が自動で選択できるようなったりもしますよね。 そういうのが急に一切でてこなくなりました。 全部自分で入力しなければならないのも面倒なのですが、 このような入力補助があると、変数の宣言やコントロール名が間違っていないか、 なども視覚的に意識できたのでラクでした・・・。 設定などを触った覚えもないのですが、急に出なくなりました。 VBやパソコン自体を再起動しましたがダメでした。 どうしたら元に戻るでしょうか? よろしくお願いします。

  • Access97VBAにてオブジェクトの説明欄の内容を取得したい

    ACCESS97のVBAにて開発をしています。 データベースウィンドウに表示される、各オブジェクトの説明欄の値(テーブルやフォームなど、オブジェクトを右クリック-プロパティにて、「説明」という欄に入力したもの)を取得したいのですが、指定の仕方がわかりません。 前提としては、Microsft DAO 3.5 Object Libraryを参照設定に追加してあります。 テーブル名やフォーム名は、DocumentオブジェクトのNameプロパティにて取得できたのですが・・・ ご存知の方がいらっしゃいましたら、是非教えてください。

  • ActiveWorksheet上のオプションボタンを操作したい。

    Excel VBAです。 ブックOriginalBookのデータに基づき、ブックTargetBookのワークシート上に貼り付けてあるオプションボタン(Button1, Button2)を操作したいです。 Book1に以下のVBAをコーディングしています。 TargetBook.Activate Set TargetSheet=TargetBook.Worksheets("target") TargetSheet.Activate if ( value=1 ) then TargetSheet.Button1.Value=TRUE else TargetSheet.Button2.Value=TRUE endif こんな感じにしているのですが、「コンパイルエラー:メソッドまたはデータメンバが見つかりません」のメッセージが出ます。 参照の仕方がおかしいのだと思いますが、手持ちの本では分かりません。 アドバイスいただけると嬉しいです。 よろしくお願いします。

  • Access2000 でのコンパイルエラーについて

    Access2003で修正しているプログラム(元は、別の担当者が作ったプログラム)を Access2000が入っている端末で動かしたいのですが、 コンパイルエラーが出て、原因が分かりません。 プログラムは、EXCELを出力する処理を追加し、 Microsoft Excel 11.0 Object Library を参照するようにしました。 これが、Access2000の端末にコピーすると参照不可になっていたため、チェックをはずし、 Microsoft Exce 9.0 Object Library にチェックを入れました。 参照はできるようになりましたが、 「コンパイルエラー:引数の数が一致していません。または不正なプロパティを指定しています。」 というエラーがとれません。 データベースユーティリティでのデーターベースの変換が必要なのかと思いましたが、 Access2000がグレーになっているため、もともとはAccess2000だったのか、 変換の必要はなさそうです。 コンパイルエラーをとる方法を教えていただきたいです。

  • Access2002_メソッドまたはデータメンバが見つかりません

    社員情報を入力・変更していくためのフォームがあります。 そのフォームが立ち上がる際  ・新規入力画面を表示させる  ・フォーカスを[データ入力更新日]テキストボックスに合わせておく という操作をさせたく下記のようなコードを書きました。 Private Sub Form_Open(Cancel As Integer)  DoCmd.GoToRecord Record:=acNewRec  Me.txt_データ入力更新日.SetFocus End Sub フォームを立ち上げようとすると「.txt_データ入力更新日」が反転されタイトルで書いたエラーメッセージが表示されます。 試しに他のテキストボックスにフォーカスがいくよう変更してみるとエラーは起こらず 指定したテキストボックスにフォーカスが置かれてフォームが開きました。 [txt_データ入力更新日]の名前はプロパティからコピペしているので間違っておりません。 名前が違っている以外にどんなことが考えられるでしょうか? よろしくお願い致します。 テキストボックスの名前は間違いありません。

専門家に質問してみよう