2017-11-02 6 views
0

RecordSourceを変数にすることができるサブフォームデータシートがあります。私のデータベースは、ユーザーの選択(各クエリで異なる列のコレクション)に基づいてSQLクエリを構築します。結果のクエリは、サブフォーム上のデータシートのRecordSourceを対象としています。 (読み取り専用ユーザーのビューを)MS Access:サブフォームのデータシート - 変数レコードソース

問題:自分の
上で実行した場合

様々なクエリがデータシートのレコードは、(なし列/行いかなる結果が得られないとして、結果のクエリを設定し、望ましい結果をもたらします)

結果を見るために、クエリの属性をサブフォームに挿入する必要があると思われます(メニューストリップの[Add Existing Fields]とよく似ています)。

質問:

私を正方形から外してくれるポインタはありますか?

ありがとうございました!ここで

答えて

1

は、サブフォームオブジェクトからデータシートフォームを取り外し、空のソースオブジェクトのプロパティを残します。 新しいクエリを作成し(sqlは問題ではありません)、qryTemp(または好きなもの)という名前を付けます。 サブフォームのソースを設定するときはいつでも、これを使用してください

CurrentDb.QueryDefs("qryTemp").SQL = "<your new sql here>" 
<yoursubformobject>.SourceObject = "Query.qryTemp". 
+0

AVG - 素敵で簡単です - ありがとう! –

0

は、私は、サブフォームを移入するために使用する例です。

Private Sub cmdFind_DisplayName_Click() 
    Dim dbs As Database, rstPatient As Recordset 
    Dim txtDisplayName, strQuote As String 
    strQuote = Chr$(34) 
    On Error GoTo ErrorHandler 

    Me.OrderBy = "DISPLAYNAME" 
    Me.OrderByOn = True 

    Set dbs = CurrentDb 
    Set rstPatient = Me.RecordsetClone 
    txtDisplayName = Trim(InputBox("Please Enter Patient Name ", "Patient Find By Name")) 
    txtDisplayName = UCase(txtDisplayName) & "*" 
    If IsNull(txtDisplayName) Then 
     MsgBox ("No Patient Name Entered - Please Enter a Valid Patient Name") 
    Else 
     rstPatient.FindFirst "[DISPLAYNAME] Like " & strQuote & txtDisplayName & strQuote 
     If Not (rstPatient.NoMatch) Then 
      Me.Bookmark = rstPatient.Bookmark 
      Me.Refresh 
     Else 
      MsgBox ("Patient Not Found - Please Enter a New Patient Name") 
     End If 
    End If 

    GoTo Exit_cmdFind_Click 

    ErrorHandler: 
     MsgBox LTrim(RTrim(Me.NAME)) + "." + "Patient Find By Display Name - " + "Error: " + AccessError(Err.Number) 

    Exit_cmdFind_Click: 
     rstPatient.Close 
     Set dbs = Nothing 
     Set rstPatient = Nothing 
End Sub 
関連する問題