2017-08-26 23 views
-3

これが解決された場合はお詫び申し上げますが、今は徹底的に検索する時間がありません。部分的に私は仕事のためにやっているから。私は電話から尋ねるので、スクリーンショットなどはできません。レコードの通知に関する問題が更新されました

私はAccess 2016で構築されたデータベースを持っており、問題が発生しています。

私は入力したwhatsに基づいてテーブルを更新するフォームを持っていて、クエリを開いて結果をスクロールせずに、テーブルで実際に更新されたものがあるかどうかを確認したいと思います。

私は、特定のフィールドの値に基づいて別のクエリを実行する '更新'ボタンをクリックしたときに実行するマクロを設定しました。 I.

"フィールド= 6、によってRunQueryのupdate6場合" 私は& を "レコードが変更され、" [ AffectedRowsの=は のMsgBox CStr関数(AffectedRows)をCurrentDb.RecordsAffected文字通り

あるRecordsChangedと呼ばれるVBAの事で機能を書きました]

私はここから取得した場所: How to show how many records were updated by an update query?

がまとまり終了するには、メッセージボックスが表示されますが、常に0のレコードが変わっ言ってもそこWA場合1つが変更されました。私はマクロの最後にRunCodeアクションを持って、レコードチェンジを呼び出すフォームのボタンにフックします。

誰にでもアドバイスや説明をいただけますか?

+0

"runquery update6"と言うと、 "update6"はAccessデータベース内に保存されている更新クエリの名前ですか? –

+0

Gord - はい。文字通りの名前ではありませんが、私はそれを意味しています。基本的には、マクロで設定されています:もし特定のフィールド= 6ならば、runquery update6 – D34DL0CK

+0

私はそれを少しでも使いこなしました。問題は私がCurrentDbを適切に設定しなかったか、任意のレコードが更新され、クエリが技術的に終了しました。うーん... – D34DL0CK

答えて

1

私が知る限り、VBAのDAO.Database.RecordsAffectedプロパティは、DAO.Database.Executeメソッドで実行されるSQLクエリにのみ適用されます。あなたは

あなたのマクロが

を行うだろう
Public Function RunMyUpdateQuery(queryName As String) 
    Dim cdb As DAO.Database 
    Set cdb = CurrentDb 
    Dim qdf As DAO.QueryDef 
    Set qdf = cdb.QueryDefs(queryName) 
    qdf.Execute dbFailOnError 
    Dim affected As Long 
    affected = qdf.RecordsAffected 
    Set qdf = Nothing 
    Set cdb = Nothing 
    MsgBox affected & " record(s) affected." 
End Function 

、例えば、あなたはより良い運がDAO.QueryDefオブジェクトを使用してVBAでクエリを実行し、そのRecordsAffectedプロパティを使用していて、とにかくあなたのマクロからVBA関数を呼び出しているので、

+0

私は仕事を辞めようとしているので、明日はまずチャンスを取るつもりです。明確にするために、私はアクセス自体にクエリを書いてみました(私はSQLでうまくいきます)。 "update6"として保存して、VBAに提供したものをコピー/ペーストします。私の混乱はVBの構文から来ていると思います。長いコメントと申し訳ありがとうのために申し訳ありません。 – D34DL0CK

+0

答えは、すでにupdate6という名前の保存された更新クエリがあるという前提に基づいていました。保存されたクエリがまだない場合は、実際にクエリを作成する必要はありません。 VBAコード 'cdb.Execute'にSQLを設定し、' cdb.RecordsAffected'を使用してカウントを取得することもできます。 –

+0

遅れて申し訳ありません。私はスーパービジーだった。 ありがとうございました。私はそれをわずかに変更しましたが、それは私が持っていた問題で、querydefオブジェクトrecordsaffectedを使用していませんでした。魅力のように動作します。 – D34DL0CK

関連する問題