• ベストアンサー

accessvba タブのページ名を取得したい

フォームの上にタブを置いていて、 タブをクリックしたらタブの名前(ページ名)を取得したいのですが Debug.Print Me.Pages(Me.Value).Caption これだと間違っているようです。 タブにはページ1、ページ2・・・とあります。 アクティブタブのページ名を取得する方法を教えてください。

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

ページ名が Name / Caption どちらの事かわからないので・・・ タブコントロール名を「tb1」と仮定すると 1)ページを辿る   Dim pg As Page   With Me.tb1     For Each pg In .Pages       If (pg.PageIndex = .Value) Then         Debug.Print pg.Name, pg.Caption         Exit For       End If     Next   End With 2)For しないで   With Me.tb1.Pages(Me.tb1)     Debug.Print .Name, .Caption   End With

NMIQMARX
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • URL名を取得するには?

    アクセスのフォームに Web Browserを設置して、 Me.WebBrowser1.Navigate "http://www.yahoo.co.jp/" としました。 その時、サイト名(名前)を、タブに表示したいのですが、まず名前の取得ができません。 http://www.yahoo.co.jp/の名前は「Yahoo! JAPAN」です。 Sub a() Debug.Print Form_フォーム1.WebBrowser1.Navigate.Name Debug.Print Form_フォーム1.WebBrowser1.url.Name End Sub どちらもエラーになってしまいます。 ご教授よろしくお願いします。

  • 現在アクティブなフォーム名を取得するには

    アクセスの標準モジュールでのプロシージャーで、現在アクティブなフォーム名を取得したいです。 フォームモジュールなら、Me.Nameでイケますが、すべてのフォームから使えるように、 標準モジュールで作りたいのですが、どうすればいいでしょう? Debug.Print ActiveForm.Name とすると、コンパイルエラーになります。 Debug.Print ActiveForms.Nameでも同じです。ご回答よろしくお願いします。

  • 現在アクティブなタブのページ名を取得したい

    アクセス2007のVBAについて質問します。 図のようにフォームにタブとコマンドボタンを設置しました。 コマンドボタンを押すと、現在アクティブなページ番号を表示させたいです。 今は Private Sub コマンド5_Click() Dim i As Long MsgBox "現在アクティブなタブはページ" & i & "です。" End Sub としていますが どういうVBAコードを書けば 現在アクティブなタブのページ名を取得できるのでしょうか? アドバイスよろしくお願いします。

  • タブの上にタブを乗せるには?

    アクセス2007です。 タブの上にタブを乗せたいのですがうまくいきません。 フォームに1個目のタブ0は問題なく乗せられるのですが ページ1の上に、更にタブ3を乗せたいです。 しかし、ページ1の上に新しくタブ3を乗せたつもりが、 ページ1をクリックしてもページ2をクリックしても新たに乗せたタブ3が見えます。 と言う事は、ページ1の上にタブ3が乗っかっているわけではなく、 フォーム1の上にタブ3が乗っかっているんだと思います。 そうではなく、ページ1の上にタブ3を乗せて、 ページ2に切り替えた時は、タブ3は表示しないようにするにはどうすればいいでしょうか? VBAでVisibleで切り替える事は考えてません。 ご回答よろしくお願いします。

  • 任意のタブのページをアクティブにするには

    アクセス2007です。 フォームにタブコントロール(タブ0)を置きました。 テキストボックス(テキスト_ページ番号)とコマンドボタン(コマンド_移動)も置いたのですが、 コマンドボタンをクリックしたら、 テキストボックスに入ってる値のページ番号に移動するプログラムを組みたいのですが コードが分かりません。 例えば、テキストボックスに「2」と入力して、コマンドボタンを押したら、 ページ2が選択され前面に表示されるようにしたいです。 Private Sub コマンド_移動_Click() Me!タブ0.Pages(Me.テキスト_ページ番号.Value).SetFocus End Sub としてみたのですが、エラーになってしまいます。 ご回答よろしくお願いします。

  • 「サブフォーム」の名前を取得したい

    アクセスのフォームの中にサブフォームが2つあります。 このうちの一つのサブフォームをクリックした時に 自身のフォーム名をVBAで取得したいのですが、 サブフォームのモジュールで Debug.Print Screen.ActiveForm.Name をすると、 親フォームが取得されます。 Forms("親フォーム").Controls("サブフォーム").Form.Controls("担当者").Value の部分の、「親フォーム」が取得されます。 「サブフォーム」の部分を取得するコードはありますか?

  • 全てのサブフォーム名を取得したい

    オフィス2007です。 Sub test() Dim obj As AccessObject For Each obj In CurrentProject.AllForms Debug.Print obj.Name Next End Sub --------------------------------- 上記のコードでデータベースのすべてのフォーム名は取得できますが フォーム1に乗っかっている複数のサブフォームを取得するにはどうすればいいのでしょうか? サブフォームに独自の名前を付けて、IFステートメントを使うしかないですか?

  • AccessVBA:フィールドの標題名を取得したい

    いつもお世話になっております WindowsXP SP1 Access2002を使用しております。 あるテーブルのフィールド名をイミディエイトウィンドウに出力するプログラムを以下のように作成しました '--------------------------------------------------- 'ADO結果セットのフィールド名をイミディエイトウインドウに出力 '--------------------------------------------------- Sub test()   Dim testcnt As Long   Dim gDb_User  As ADODB.Connection   Dim Rst   As ADODB.Recordset      Set gDb_User = New ADODB.Connection   Set gDb_User = CurrentProject.Connection   Set Rst = New ADODB.Recordset      Rst.Open "select * from テーブル1 ", gDb_User, adOpenKeyset, adLockOptimistic      Debug.Print "FieldName"   Debug.Print "--------------"        For testcnt = 0 To Rst.Fields.Count - 1     Debug.Print Rst.Fields(testcnt).name   Next      Debug.Print "--------------"   Debug.Print "End"      Rst.Close   Set Rst = Nothing   gDb_User.Close   Set gDb_User = Nothing    End Sub '--------------------------------------------------- 実行すると、フィールドは出力されるのですが 各フィールド名の標題も取得したいと考えております。 標題のプロパティ等をどのように抽出すればよろしいでしょうか? ご教示のほど、何卒よろしくお願いいたします。

  • ACCESS2003 タブコントロール ページ名3

    度々失礼いたします。 ACCESS2003で、のタブコントロールのページ名の表示について、下記の通りご質問させていただいておりました。 1回目 http://okwave.jp/qa/q7373426.html 2回目 http://okwave.jp/qa/q7381264.html おかげさまで起動時にサブフォームにあるテキストがページ名として表示されるようにはなったのですが、うまく動きません。 詳細をご説明いたしますと、 ページが8ページあり、それぞれ部屋1、部屋2、部屋3…という名前を付けています。 タブコントロール名は「料金タブ」、 各サブフォーム内にあるページ名として表示させたいテキストボックス(コンボボックス)名は「部屋名」です。 まずはじめに部屋1のページにあるサブフォーム内に下記コードを書き足すと、うまく動きました。 Private Sub 部屋名_BeforeUpdate(Cancel As Integer) Me.Parent.ActiveControl.Parent.Caption = Nz(Me.部屋名) End Sub Private Sub Form_Current() Me.Parent.Controls("料金タブ").Pages(部屋3).Caption = Me!部屋名 End Sub 同じように部屋2にもPagesの()内だけを書き換えていくと、 今度は部屋2のサブフォーム内にあるテキストが、部屋1のページ名として表示されるようになりました。 試しに部屋3に同じことをしても同様の結果で、部屋1のページ名として表示されてしまいます。 初心者のため、どうすればよいか全く分からずじまいです…。 恐れ入りますが、お教えいただけますでしょうか。 宜しくお願い致します。

  • 10レコード目の主キーの値を取得したい場合

    Debug.Print Me.Form.CurrentRecord これで現在のレコードが取得でき、 Debug.Print Me.Form("主キー").Value これで現在のレコードの主キーの値が取得できるのですが、 例えば、10レコード目の主キーの値を取得したい場合は、 どのようなコードになるのでしょうか? よろしくお願いします。

専門家に質問してみよう