• ベストアンサー

アクセス2000の基本的用語2

フォーム内文章プログラムで使用する、”Me!”と”Me.”の意味の違い・使い分けを教えて下さい 例:Me!TEXT1=RST1   Me.TEXT2=RST2

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

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

以下参考になると思います。 Access VBA における . 演算子 Vs ! 演算子 http://www.f3.dion.ne.jp/~element/msaccess/AcTipsVbaDotVsBangOperator.html

zoro180
質問者

お礼

早々の回答ありがとうございました。サイトの後半は、とても分かりやすく笑えました。

その他の回答 (1)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

Me.とMe!の違いについて http://www.accessclub.jp/bbs/0079/beginers29374.html 参考にしてください。

zoro180
質問者

お礼

早々の回答ありがとうございました。とても助かりました。

関連するQ&A

  • アクセス2000の基本的用語1

    モジュール内の定義文で使用する、”Global”と”Public”の意味の違い・使い分けを教えて下さい 例:Global A as Intger   Public B as Intger

  • Access2000 ADOを使ってフォーム上のデータをテーブルに書き込む

    質問させていただきます。 フォーム(帳票)上の複数レコードを「コマンドボタン」をクリックしたときにテーブルに書き込みたいのですが・・・以下のようなコード(一部省略)では1件目しか書き込みできません。繰り返しフォーム上の最後のレコードまで書き込むにはどうすれば良いでしょうか?ご教授願います。 RST.AddNew RST!計上日付 = Me![計上日付] RST!原料コード = Me![原料コード] RST!入庫数 = Me![発注数] RST!単価 = Me![単価] RST!金額 = Me![金額] RST!消費税 = Me![消費税] RST!LotNo = Me![LotNo] RST.Update MsgBox "処理が終了しました。", vbInformation

  • Access2000 ADOを使ってフォーム上のデータをテーブルに書き込む

    質問させていただきます。 帳票形式フォームの反復しているレコードをコマンドボタンのクリックでテーブルに書き込みたいので今朝からいろいろ試しているのですが、以下のコードを書いてみました(一部省略)。 DoCmd.RunCommand acCmdRecordsGoToFirst Do Until Me.NewRecord DoCmd.RunCommand acCmdRecordsGoToNext With RST RST.AddNew RST!日付 = Me![日付] RST!原料コード = Me![原料コード] RST!入庫数 = Me![発注数] RST!単価 = Me![単価] RST!金額 = Me![金額] RST!消費税 = Me![消費税] .Update End With Loop 結果は・・・テーブルには2行目から書き込まれる。「コマンドまたはアクション’次のレコードへ’は無効です」が出る。 どうすればエラーも出ず、フォーム上のすべてのデータが書き込めるでしょうか?

  • 異なるフォームに属する関数間でACCESSのレコードセットを受け渡しする。

    msAccess2000のVBAコードの質問です。 元々、全てを理解しているわけではないのにVBAコードを書いているのが無茶なんですが、無茶を承知でプログラミングしています。 あるクエリの結果を、あるフォームで帳票表示しています。この帳票の一レコードにボタンをつけて、クリックイベントで、そのレコードを取得しようとしています。フォームはこの後、閉じられた後、呼び出された親にその、レコードを渡したいのです。 フォームは、親フォームのボタンクリックイベントから、DoCmd.Openformメソッドによって呼び出されるので、戻り値は使えません。 しょうがないので、広域変数rst(DAO.Recordset型)で、受け渡そうと思ったのですが、recordset型は、どうやら参照のようで、フォーム(クエリ?)を閉じると、レコードが壊れてしまうようなのです。 Module1で、 public rst as DAO.recordset として、 Private Sub コマンド34_Click() set Module1.rst=me.recordset ' この中では、rst.fields(*)で、フィールドの値を使えるのですが・・・ END Sub 呼び出した親フォームでは、module1.rst.fields(*)を使用できません。 質問は二つあります。 1)広域変数rstは、上記のような宣言・使用法で問題ないですか? 2)sub またはfunction間にわたって、レコードを渡す、いい方法はないですか?

  • アクセス特有の書き方?

    Access2003のVBAで疑問に思ったことがあります。 VBA自体はVB6のサブセット?だと理解していますがAccess独特の記述の仕方があり、 まだ理解しておりません。 各変数や、オブジェクトへのアクセスの仕方でわからないことがありました。 'Meはフォーム 'text_nameはフォーム上の0番目のテキストオブジェクトです。 'テキストオブジェクトに書かれているデータを取得しています。 dim data as string data = Me.text_name '--- A これでも動作していたのですが、Aの部分で以下の書き方があるのですがAも含めて どれが正しく、どれが一番お勧めの書き方なのでしょうか? data = Me.texst_name.Value data = Me!texst_name.Value data = Me![texst_name].Value data = Me("texst_name").Value data = Me(0).Value あと、Access特有?のOption Privateステートメントは、皆さんどういう時に 使っていますか?

  • Access2010 「演算子がありません」エラー

    フォーム上に別フォームを開くボタンがあるのですが、クリックすると実行時エラーが表示されます。 実行時エラー 3075 クエリ式”コード IN(○○,××)の構文エラー 演算子がありません。 コードを数値型からテキスト型に変更したのが原因だと思います。 エラーが出ない方法を教えていただければ助かります。 よろしくお願いいたします。 Dim rst As Recordset Dim strWhere As String Set rst = Me.RecordsetClone With rst If .RecordCount = 0 Then Beep Exit Sub End If .MoveFirst strWhere = "" Do Until .EOF strWhere = strWhere & IIf(Len(strWhere) > 0, ",", "") & !コード .MoveNext Loop .Close strWhere = "コード IN (" & strWhere & ")" End With DoCmd.OpenForm "フォーム", , , strWhere

  • ACCESS2000VBAでエラー「型が一致しません」

    ACCESS2000で、フォーム上にボタンを作り、そのボタンをクリック時に 以下のイベント プロシージャを実行させています。 Dim dbs As Database Dim rst As Recordset Set dbs = CurrentDb Set rst = dbs.OpenRecordset("採番_相談者") Dim Number rst.MoveFirst Number = rst!相談者番号 Number = Number + 1 Me.相談者NO = Number '相談者NOはフォーム上のテキストボックスです。 で上記 Set rst = dbs.OpenRecordset("採番_相談者") の所で、「実行時エラー 13 型が一致しません」とエラーになります。 テーブル:採番_相談者は、オートナンバー型のIDフィールドと相談者番号という7桁のテキスト型で ”1000001”が入っています。(ちなみに、数値型に変えても同じエラーでした。) 詳しい方教えてください。お願いします。

  • 用語の使い分けについて

    (1)「この辺(あた)り」で終わります。=「辺り(あたり)は場所を示す場合に使うのが普通ではないか。 (2)「この辺(へん)」で終わります。=時間的経過を示す場合で、正しい用法だと思いますが・・・・・・ (1)と(2)の使い分けについて具体例を挙げて、その用法の違いをご教示下さい。

  • Access2003について

    いつも大変お世話になっています。 この度 Access2003で作業することになったのですが、 今まで、Access2000 か 97、95 でのみ作業経験があります。 Access2000と2003では大きな違いは無いように思うのですが、 モジュールコーディングやフォームのテキストのコントロールソースの指定など 2000で出来たものが2003では出来なくなってしまいました。 例:フォームオブジェクトの値の参照 Ver.2000 If IsNull(Me!テキスト1.Value) = True Then '.ValueはつけなくてもOKだが、つけても問題ない End if Ver.2003 If IsNull(Me!テキスト1) = True Then '.Valueをつけるとエラーになる End if といった大きな差異とはあまり思ってないのですが、 その他になにか違いがあるなら知っておきたいと思いました。 WEBで検索しましたところ、特に見当たらず、 経験などで構いませんので教えていただけると嬉しいです。 又、Access2003 をメインにしているおすすめのサイトなどがありましたら これも教えていただけると嬉しいです。 自分なりにも実際にVer.2003をいじりながら覚えていきたいと思っています。 よろしくご教授お願いいたします。

  • MSアクセス2010と2003

    アクセスの帳票フォームで入力用チェックボックスが84個(ck1からck84)あります。表示データは10個程度ですが、このチェックマークの更新前処理で、同じ場所へのダブリが発生しないような処理をしています。フォームフッターにテキストボックスを84個配し(Text1~Text84)、Text1はCk1の合計を、Text2はCk2の合計を出すようにしておき、CK1の更新前処理に Select Case Me![Text1] Case "" If (Me![ck1]) = -1 Then MsgBox "Please wait" Cancel = True Me.Undo End If Case "-1" If (Me![ck1]) = -1 Then MsgBox "Already used." Cancel = True Me.Undo End If End Select またチェックマークを入れることにより、計算処理をして結果をチェックボックスの下に表示しているためme.Refreshを更新後処理に入れております。アクセス2003+Office2003SP3では問題なく動きますが、アクセス2003+Office2003SP1、アクセス2010+Office2010SP1では次のチェックボックスにチェックを入れるのに5~6秒程掛かります。(アクセス2003+OfficeSP3ではチェックマークをつけて次のチェックマークを付けるのに待ち時間はありません。)したがって使い物になりません。何か考えられることはありますでしょうか。

専門家に質問してみよう