3

私は、仕事/タスクの詳細を含むレポートと、そのレポートに向けてデータの大部分を提供するフォームを持っています。レポートはデータの全体像を見るのに適した方法であり、フォームはデータを編集するための最良の方法であるため、行をクリックして、関連するレコードを開くことができるようにしたいと思います。フォームビュー。

誰かがVBAを介してこれを行う方法を知っていますか?私の考えでは、Accessのオブジェクトに関する知識は限られていますが、それは可能であるはずです。

アップデート

レポートに次のコードを実装しました。

Private Sub Edit_Click()

  Dim EntityName As String
  Dim DocName As String

  DocName = "Entity: Overview"

  strWhere = "[Entity Name]='" & Entity & "'"
  DoCmd.OpenForm DocName, acNormal, , EntityName

End Sub

正しいフォームを正常に開き、正しいエンティティ名も取得しますが、適切にフィルタリングされていません。コードの問題がわかりません。

4

3 に答える 3

3

Edit_Click()手順では、WhereConditionパラメーターEntityNameとして.OpenForm

  DoCmd.OpenForm DocName, acNormal, , EntityName

ただし、 には何も割り当てていないEntityNameため、空の文字列です。WhereConditionstrWhereとして使用する必要があると思います。

Private Sub Edit_Click()
  Dim strWhere As String
  Dim DocName As String

  DocName = "Entity: Overview"
  strWhere = "[Entity Name]='" & Me.Entity & "'"
  DoCmd.OpenForm DocName, acNormal, , strWhere
End Sub

はコントロールの名前であると想定しました。Entityここで、構築する値を取得しますstrWhere。レポートに という名前のコントロールがない場合、元のクエリにEntityがあってもコードは機能しません。Entity

于 2012-07-04T07:13:18.410 に答える
1

レポートの詳細セクションにOn Clickイベントを追加し、VBA ハンドラに次のようなものを追加できるはずです。

DoCmd.OpenForm "MyForm", acNormal, "", "ID=" & ID.Text

(ここで、MyFormはターゲット フォームであり、IDは現在のレコードを識別するレポート内の非表示または表示のコントロールです)。

于 2012-07-03T05:25:42.097 に答える
1

レポートと言いますが、レポートではなく、連続フォームまたはデータシートを使用する必要があります。次に、ユーザーを狂わせたくない場合は、任意の行の任意のコントロールにイベントを追加し、ダブルクリックイベントを追加できます。ユーザーにとってより明確になる場合はコマンド ボタンを追加するか、「リンク」テキスト ボックスをフォーマットして下線を引くこともできます。@dbaseman によって示されるアクションによって開かれたレコードは、フォーカスのあるレコード (現在のレコード) も開きます。そして、それはあなたが連続した形でできることとできないことを発見することにつながります:D

于 2012-07-03T08:56:39.117 に答える