• ベストアンサー

アクセス コンロール名が勝手に変わります

フォームにテキストボックスをぐいってやって、名前を「テキスト.1」にしました。 そして、VBAで、 「me.テキスト」と打つと、 me.テキスト_1に変わっています。 「.」と名前を付けたのに、勝手に「_」に変わっています。 本当の名前(コントロール名は)テキスト.1だけど、 Private Sub Form_Load() Me.テキスト_1.Value = "aaa" End Sub を実行したら問題なく出来ました。 どういうことでしょうか?勝手に名前が変わるようになってるのですか?

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

元々、. (ドット(ピリオド))は、 ご自身でも Me.テキスト_Value とされているように プロパティなどのメンバーの取得や設定に使われています。 なのでオブジェクト名にドットが含まれていると Accessが誤解して不可思議なエラーになる危険がありますので避けてください。 フィールド名またはオブジェクト名の一部に、次の記号を使用することはできません。 http://support.microsoft.com/default.aspx?scid=kb;ja;286335 ※一番最後に載っています。

FPQH398547
質問者

お礼

ドットはオブジェクト名には使えない文字なのですね。 リンク先見ました。 ドットは予約語ではないけど使わない方が良いとの事なので以後気を付けます。ありがとうございました。

関連するQ&A

  • vbaで帳票フォームで開きたい アクセス

    vbaでフォームを開くときに 既定のビューを指定してるのですが 指定したとおりになりません。 Private Sub Form_Load() Me.DefaultView = 1 '帳票フォーム End Sub としてもデータシートビューで開かれてしまいます。 Private Sub Form_Load() Me.DefaultView = 1 '帳票フォーム MsgBox Me.DefaultView End Sub とすると、1が返るのに やっぱりデータシートビューになってしまいます。 なぜでしょうか? エラーにもなりません。

  • PickFolder アウトルックとアクセス連携

    アクセスのフォームに テキストボックスとコマンドボタンを置きました。 VBAでoutlookに参照設定をして、 Private Sub コマンド2_Click() Dim myNaSp As NameSpace Set myNaSp = GetNamespace("MAPI") Me.テキスト0.Value = myNaSp.PickFolder Set myNaSp = Nothing End Sub としました。 テキストボックスには、 Private Sub テキスト0_AfterUpdate() MsgBox Me.テキスト0.Value End Sub としました。 しかしoutlookのフォルダ名をPickFolderでテキストボックスに入れても テキストボックスの更新後処理のイベントは発動しません。 しかしテキストボックスにはちゃんとフォルダ名が入っています。 Private Sub テキスト0_Change() MsgBox Me.テキスト0.Value End Sub にしても同じです。 Private Sub コマンド2_Click() Me.テキスト0.Value = "aaa" End Sub にしてコマンドボタンをクリックすると、 Private Sub テキスト0_Change() MsgBox Me.テキスト0.Value End Sub は、発動します。 PickFolderでフォルダ名を選択して値をテキストボックスに入れても イベントを発動させる方法を教えてください。

  • Access レコードのロック

    Access2000 フォームを読み込んだとき,テキストボックス"受付No."欄が 入力されている場合,テキストボックス"件名"欄をデータの変更が 出来ないようにロックを掛けたいのです。 下記のイベントプロシージャを組んだのですが,全くロックされません。 VBA初心者なので多分とんでもない間違いをしていると思いますが, どこが違うのかご指摘下さい。 Private Sub Form_Load() If Me.受付No. <> "" Then Me.件名.Locked = True Me.件名.Enabled = False End If End Sub

  • アクセスについてです(レポート)

    フォームからレポートを開く時に、 VBAでコントロールにコントロールソースを指定したいのですが どうやらエラーになってしまうようです。 フォームからではなく手動でレポートを開く場合は エラーにはなりません。 レポートのレコードソースは、T_testを指定していて、 その上にあるコントロールは非連結で指定したコントロールソースをvbaで入れたいです。 なので、レポートのLoadイベントで Private Sub Report_Load() Me.テキスト0.ControlSource = "8月" End Sub として、手動でレポートを開く分には問題ないのですが このコードのまま、フォームから Private Sub コマンド0_Click() DoCmd.OpenReport "レポート1", acViewPreview End Sub とすると、Me.テキスト0.ControlSource = "8月"で、 実行時エラー2191 印刷プレビュー時または印刷を開始した後は コントロールソースプロパティを設定できません。 のエラーが発生します。 フォームから Private Sub コマンド0_Click() DoCmd.OpenReport "レポート1", acViewDesign End Sub とすると、レポートのLoadイベントが発生しませんでした。 ご回答よろしくお願いします。

  • #008000が&H8000に変化する

    vbaで色設定したいのですが、勝手に色コード(?)が変化します。 テストとして、フォームを開いた時にフォームの色を変えようと思うのですが Private Sub Form_Load() Me.詳細.BackColor = &H008000 End Sub これにしてエンターを押すと Private Sub Form_Load() Me.詳細.BackColor = &H8000 End Sub になってしまいます。 もともと#008000は緑なのですが、&H8000に変化すると黒になります。 #008000のコードは使えないのでしょうか?

  • Access2010 SetFocusが当たらない

    Access2010です。 VBAにて、あるフォームの、デザイン上、「詳細」の中に存在しているテキストボックスにSetFocusでフォーカスを当てようと思ってます。 1 フォームロード時、フォームの「詳細」は非表示(当然、テキストボックスも非表示) 2 ボタンクリック時、フォームの「詳細」を表示し、テキストボックスにフォーカスを当てる という動作をしているのですが、2でテキストボックスにフォーカスがフォーカスが当たりません。どうしたらフォーカスが当たるのでしょうか? 以下、コードです。 Private Sub Form_Open(Cancel As Integer) Me.詳細.Visible = False End Sub Private Sub cmdボタン_Click() Me.詳細.Visible = True 'テキストボックスにフォーカスを当てる Me.txtテキスト.SetFocus End Sub よろしくお願いいたします。

  • アクセス ActiveXカレンダーがおかしい

    教えてください。 アクセスのフォームにカレンダーコントロールを貼り付けて、 フォームの読み込み時にカレンダーの規定値に今日の日付が選択されるように以下のコードを記述したのですが、なんどやってもうまくいきません。 カレンダーのプロパティの日付は空にしています。 他のアクセスファイルではうまくいくのですが、ファイルがこわれているのでしょうか? 同じ現象で解決された方がいらっしゃいましたら教えてください。 Private Sub Form_Load() Me!avxCal.Value = Date End Sub

  • フォームを表示してからメッセージボックスを表示する

    メッセージボックスが表示される前に、フォームを表示させたいです。アクセスです。 ナビゲーションウインドウからフォームをダブルクリックしてフォームを開くのですが、 今のままだとメッセージボックスが表示されてからフォームが表示されてしまいます。 フォームを表示してからメッセージボックスを表示するにはどうすればいいでしょう? Private Sub Form_Open(Cancel As Integer) MsgBox "Form_Open" End Sub だと、先ほど述べたように、メッセージボックスが表示されてからフォームが表示されてしまいます。 フォームを開いたときのイベントは複数あるようで、 Private Sub Form_Activate() MsgBox "Form_Activate" Debug.Print "Form_Activate" End Sub Private Sub Form_Current() MsgBox "Form_Current" Debug.Print "Form_Current" End Sub Private Sub Form_GotFocus() MsgBox "Form_GotFocus" Debug.Print "Form_GotFocus" End Sub Private Sub Form_Open(Cancel As Integer) MsgBox "Form_Open" Debug.Print "Form_Open" End Sub Private Sub Form_Load() MsgBox "Form_Load" Debug.Print "Form_Load" End Sub をすると、 ・Form_Load ・Form_Activate ・Form_GotFocus ・Form_Open ・Form_Current の順に開きますが、やはりフォームが最後に表示されてしまいます。 どうにかして先にフォームを表示させる方法はないでしょうか? ご回答よろしくお願いします。

  • 「Form_フォーム1.テキスト1.Value = "" 」がうまくいかない。

    VBAについての質問です。(オフィス2003) フォーム1にテキストボックス1を作成しました。 Module1に Sub test() If Form_フォーム1.テキスト1.Value = "" Then MsgBox "空白です" End If End Sub とコードを書き、テキストボックス1を空白の状態でtestを実行しても何も起こりません。 F8で一行づつ実行してみてみたら Form_フォーム1.テキスト1.Valueのところにカーソルを当てると Form_フォーム1.テキスト1.Value=Nullとなります。 どうすればテキストボックス1が空白なら「空白です」と表示させることが可能でしょうか? よろしくお願いします。

  • アクセスのMeについて

    アクセスの本の中で,Meが出てきました。 問題は,フォームに得点と結果のテキストボックスを作成します。そして,テキストボックスに得点を入力します。コマンドボタンに次のイベントで,得点が合格か不合格かを判定し,結果のテキストボックスに出力するものです。フォームにMeを入力していないのですが,VBAで突然現れてきました。このMeは,どんなときに使うのでしょうか。教えていただければ幸いです。 Private Sub 実行_Click() If Me.得点 >= 100 Then Me.結果 = "合格" Else Me.結果 = "不合格" End If End Sub

専門家に質問してみよう