アプリ版:「スタンプのみでお礼する」機能のリリースについて

アクセスで、一覧表のフォームにボタンを取りつけています。レコードの内容を変更したら、ペンの形のマークが現れますね。これは変更中ということですが、そこでボタンを押しても変更は確定されないから、更新確定させたいのです。

それで、DoCmd.Requery を最初の行に入れてみたら、元の一覧表は最初のレコードに飛んでしまう。

元の一覧表の位置を動かさないために、Ctrl+Enter キーを押して更新確定させたような状態をVBAで実現する方法あるのでしょうか?

よろしくお願いします。

A 回答 (4件)

No1 です。


今回の場合には
Docmd.RunCommand acCmdSaveRecord の方が良かったですね
文字通りレコードを保存します。
Requery に引きづられてしまいました (^_^;)

Recalc、Refresh、Requery の使い分けは下記が参考にはなりますか?
http://www.nurs.or.jp/~ppoy/access/access/acF007 …
    • good
    • 1
この回答へのお礼

nicotinismさん

更に新しい用法ありがとうございます。
それに詳しい解説のついたURLもよかったです。

他者の変更したレコードの反映もよく分かりました。
もっと、色々な場面も踏んで様々なケースに対応出来るようにしていきたいと思います。

よろしくお願いします。

お礼日時:2006/06/25 10:34

>Recalcメソッド


フォームのすべての演算コントロールを更新します。
>Refreshメソッド
指定したフォームまたはデータシートに含まれるレコードを更新してデータへの変更を反映します。
カレントレコードセットに加えられた変更だけです。

詳しくはVBのヘルプを参照してみてください。
    • good
    • 1
この回答へのお礼

O_cyanさん

Recalc と Refresh の解説ありがとうございました。
はい、ヘルプも参照しておきます。

もっと、色々勉強していきます。

お礼日時:2006/06/25 10:31

>DoCmd.Requery を最初の行に入れてみたら、元の一覧表は最初のレコードに飛んでしまう。


最初の行?Requeryは通常は処理の後に再クエリをして表示しなおすような場合に使いますが。
Requeryは再クエリなので最初のレコードに移動します。
コントロールの更新後後処理に
Me.Refresh
とすればレコードは移動しません。
こういう事ではないのでしょうか。
    • good
    • 0
この回答へのお礼

O_cyanさん

早速の回答ありがとうございます。

最初の行というのは、ボタンを押した後にまず、更新確定させるためにRequery してみた訳ですが、この場合は適切ではないようですね。分かりました。

さきほどのNo.1さんのいうMe.recalc とMe.Refresh の違いを調べてみようと思います。ありがとうございました。
(出来れば、Recalc と Refresh の違いというか用法を教えて頂ければ助かります。)

お礼日時:2006/06/24 16:53

me.recalc


では?
    • good
    • 0
この回答へのお礼

nicotinismさん

早速の回答ありがとうございました。

me.recalc を入れてみたら出来ました。
recalc は始めてみるものです。調べてみます。

お礼日時:2006/06/24 16:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A