• ベストアンサー

「Me.Form」と「Me」の違いは?

アクセスのフォームで並べ替えをする時、 --------------------------------------------------------- Private Sub cmd_昇順_Click() With Me.Form .OrderBy = "フィールド1 ASC" .OrderByOn = True End With End Sub でも Private Sub cmd_昇順_Click() With Me .OrderBy = "フィールド1 ASC" .OrderByOn = True End With End Sub --------------------------------------------------------- でも出来ますが、 「Form」は必要なのでしょうか? あってもなくてもどっちでもいいなら、理由が知りたいです。

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

  • ベストアンサー
  • gungnir7
  • ベストアンサー率43% (1124/2579)
回答No.1

結論を言うとFormは要りません。VB.netではMe.Formはエラーになりました。 Meは常に実行中のインスタンスを返します。 ここを勘違いしているとMe=Formとなってしまいます。 MyClassというクラスを作り、その中でmeを使えばMyClassのインスタンスを指します。 VBを始め、Windowsプログラミングではフォームに対して記述していきますから Me=Formということでも基本的に間違いないのですが、Me.FormはVB.Netではエラーになります。 この差はAccessではMe.Formが使えないと困るからだと思われます。 少し試してもらいたいのは単に With Form として上手く動くかどうかです。VB.Netでは当然のごとくエラーになります。

AHWPYIGAWF
質問者

お礼

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

関連するQ&A

  • Access フォームから並び替えレポート

    お知恵をお貸しください。 Access2010 フォームでオプショングループを2種類用意しました。 規則グループ 昇順 降順 並び替えグループ ID ふりがな レポートに Private Sub Report_Open(Cancel As Integer) Select Case Forms!フォーム4!fra並べ替え Case 1 Me.OrderBy = "ID ASC" Me.OrderByOn = True Case 2 Me.OrderBy = "ふりがな ASC" Me.OrderByOn = True End Select End Sub 並び替えでは、昇順のみうまくレポートを行えますが。 規則で ID ふりがな を昇順 降順 に行えません。 なにを加えればよいのでしょうか。 よろしくお願いします。

  • サブフォームの並べ替えをVBAで指定したい

    親フォームを開くときにサブフォームの並べ替えを実行したいのですが 親フォームのフォームモジュールに Private Sub Form_Load() With Me.Controls("サブフォーム ") .OrderBy = "日時 DESC" .OrderByOn = True End With End Sub としてるのですが、 OrderByの部分で、 実行時エラー438になります。 サブフォーム名は「サブフォーム」です。 サブフォームの中に日時と言うコントロールは存在します。 なぜエラーになるのでしょうか? ちなみにOrderByをなくしても .OrderByOn = True で同じエラーが発生します。

  • レポート 並べ替えが出来ない フィルタもできない

    この状況と似てるのですが http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1255147152 クロス集計クエリを作り、そのクエリを基にレポートを作成しました。 クエリ内では並べ替えはできます。 ですが、レポートを開く際にはクエリで設定した並べ替えができません。 なので、 Private Sub Report_Open(Cancel As Integer) With Me .OrderBy = "大分類_Index ASC" .OrderByOn = True End With End Sub このように、レポートを開く時に並べ替えを設定したのですが無視されます。 空白以外のみ表示させたいので、 Private Sub Report_Open(Cancel As Integer) Me.Filter = "IsNuLL(大分類)=False" Me.Report.FilterOn = True End Sub もしたのですが、これも無視されます。 クエリでは並べ替えが有効なのに、レポートにすると無視される理由と、 対策をご教授いただければ助かります。 当方アクセス2010です。 よろしくお願いします。

  • ACCESSとVBAとレコード

    こんにちわ。 このサイトは何回も利用させて頂いてるのですが、今回も宜しくお願い致します。 環境はOS:Xp・Access2000です。 フォームを開くときにレコードを並べ替えたいのですが、単に「顧客コード」を昇順で並べ替えるには Private Sub Form_Load() Me.OrderBy = "顧客コード" Me.OrderByOn = True End Sub というのは解ったのですが、 何の関連付けもしてない、指定のテーブルの内容を並べ替えるにはどのように記述したらよいのでしょうか? 「Me」の箇所をそのテーブル名 (例えば、顧客テーブル.OrderBy = "顧客コード") のようにすれば良いのでしょうか? 宜しくお願いします。

  • Me.FilterOn = True は先でも後で

    Me.FilterOn = True は先でも後でも問題ないですか? アクセスのvbaでフォームにフィルタをかけるときに 今まで --------------------------------------- Private Sub コマンド2_Click() Me.Filter = "フィールド = '" & "test" & "'" Me.FilterOn = True End Sub --------------------------------------- とコードを書いていましたが --------------------------------------- Private Sub コマンド2_Click() Me.FilterOn = True Me.Filter = "フィールド = '" & "test" & "'" End Sub --------------------------------------- でも機能しました。 という事は、 Me.FilterOn = Trueは Me.Filter の前でも問題ないのでしょうか? Me.FilterOn = Trueは Me.Filter の後と習ったので疑問に思っています。 よろしくお願いいたします。

  • vb6.0のFormの遷移がうまくいきません。

    Form1からForm2に移動するときのプログラム Private Sub Command5_Click() Form2.Show With Form1 .Enabled = False .Visible = False End With End Sub です。 Form2からForm1に移動するときのプログラム Private Sub Command1_Click() Form1.Show With Form2 .Enabled = False .Visible = False End With End Sub Form1からForm2に移動し、Form2からForm1に移動する 事は出来たのですが。もう一度、Form1からForm2に 移動しようとするとBeep音が鳴り移動できません。 なぜ、2回目は失敗するのでしょうか? プログラムに問題はありますか?

  • フィルタの情報を保存したい

    Me.Form.Filter = "" Me.Form.FilterOn = を保存したいのですがどうすればいいでしょうか? フォームにテキストのフィールドと 抽出とクリアのコマンドボタンを設置して、フィルタをかけたり解除したりしています。 途中でフォームを閉じても最後にフィルタをかけたなら、 再度フォームを開いたときに最後に検索したワードでフィルタが開く用にしたいし フォームを閉じる前にフィルタを解除したのなら、 再度フォームを開いたときはフィルタが解除された状態にしたいです。 Private Sub cmd_クリア_Click() Me.Form.Filter = "" Me.Form.FilterOn = False DoCmd.Save acForm, Me.Name End Sub Private Sub cmd_抽出_Click() Me.Form.Filter = "フィールド2 like '*" & Me.txt_フィールド2テキスト.Value & "*" & "'" Me.Form.FilterOn = True DoCmd.Save acForm, Me.Name End Sub としてるのに、フィルタの情報が保存されてません。 再度開きなおしたときは、 必ず全レコードが表示されてしまいます。 フィルタの状態を保存する方法を教えてください。ご回答よろしくお願いします。

  • アクセスのレポートで3つの条件で並べ替えたいのですが(汗)

    皆さん こんばんわ いつもお世話になります。今日は、下記の構文に追加するなどしてレポートの並べ替えをしたいのですが、判りません。教えていただけたら嬉しいです。 以下  棚番号 枝番 小枝 の名前を付けたロケーション番号(3桁の数字)(棚番号 101 枝番 20 小枝 4)といった具合に割り振ったのですが印刷の時番号順に並べ替えがしたいです。簡単にできそうな気もするのですがよくわからないので教えていただきたいです。宜しくお願いいたします。 ちょっと本に載っていた構文を書きましたがもっと他にも有るようでしたらそう言うものでも良いです。 宜しくお願いいたします。 Private Sub Report_Open(Cancel As Integer) Dim stKey As String stKey = InputBox("昇順で並べ替えるキーを入力してください") Me.OrderBy = stKey Me.OrderByOn = True End Sub

  • accessのレポートの並べ替え条件

    こんにちわ。 いまaccess2000でレポートを作成しています。 そこでレポートの並べ替え条件(昇順/降順)を 呼び出し元であるフォームのある条件によって, 動的に変えたいと思い, レポートファイルのReport_Open()イベントで 下記のようにコーディングしました。 「 Me.OrderByOn = True If [グローバル変数] = "1" Then Me.OrderBy = " [ID] Desc " Else Me.OrderBy = " [ID] " End If 」 ところが実行すると上記の箇所が処理されているにもかかわらず, 並べ替え条件が正しく反映されません。 どうすれば並べ替え条件が正しく反映されるでしょうか? 教えてください。 宜しくお願いします。

  • Access フォームでの並べ替え OrderBy

    いつもお世話になっています。 フォームで「製品ID」が昇順に並べ替えられるよう下記のイベントを 設定しましたが、上手くいきません。 Private Sub Form_Open(Cancel As Integer) Me.OrderBy = "製品ID" End Sub お力添えよろしくお願いいたします。

専門家に質問してみよう