2016-11-07 11 views
0

これは私が必要とするものと類似しているため、別の投稿から切り捨てました。 me.IDなどを使用する代わりに、別の表のフィールドを参照する必要があります。具体的には、[書式]をブリーフ・シートという表で参照します。レコードを追加する前に重複レコードを探します

私は、適切な構文になりますどのような表などの多くのバリエーション、「ブリーフシート」.Formdateが、運

を試してみましたか?

rst.FindFirst "[ID] <> " & Me.ID & _ 
" AND [TitleText] = '" & Me.TitleText & _ 
"' AND [UnitCode] = " & Me.UnitCode & _ 
" AND [AcademicYear] = " & Me.AcademicYear & _ 
" AND [Titleofchapterjournalarticle] = '" & Me.Titleofchapterjournalarticle &  "'" 
+0

はのDLookup https://support.office.com/en-ie/article/DLookup-Function-8896cb03-e31f-45d1-86db-bed10dca5937 – Fionnuala

+0

あなたのフィールドがレコードセットにしておく必要があります考えてみましょう - あなたが何をしますかレコードセットクエリは今のように見える?それがそこにあるなら、他のフィールドと同じ '[Formdate]'を使うだけです。 – dbmitch

答えて

1

Dlookupを使用します。あなたが投稿したスニペットでは、コーダーはすでにレコードセットをインスタンス化しており、レコードセットメソッドを使用してレコードセットを検索しています。あなたがしたかったことは、実際には少しシンプルです。

以下は、テーブルから日付の値を取得する方法を示すテスト手順です。

"Brief Sheet"の表から適切なFormDateを選択するために使用する基準を明確にしていないので、ID = 3のFormDateレコードを選択する "ID = 3"を含めました。必要に応じて調整してください。

また、テーブル名が実際に "ブリーフシート"で、名前を変更する機能がある場合は、最初にスペースを入れずにテーブルの命名規則ルールを確立することを強くお勧めします。 Brief_Sheetでさえ、あなたの人生を容易にするでしょう。

Public Sub Test1() 

    'dimension a variable to hold the date value  
    Dim datFormDate As Date 

    'fill the variable with the value you need to reference 
    datFormDate = DLookup("FormDate", "Brief Sheet", "ID = 3") 

    'Print the value to the "immediate" pane (just for testing) 
    Debug.Print datFormDate 

    'If you're running this code from within your form module, you can assign 
    'the value in your variable to a field in your table as such: 
me.DateFieldtxtbx = datFormDate 

    End Sub 
+0

値が見つからないとdlookupはnullを返すので、 'Dim datFormDate As Date'は問題になります。 – Fionnuala

+0

良い点、Fionnuala。 FormDateをバリアント "Dim varFormDate as variant"としてディメンション化するか、DlookupステートメントをNz()関数でラップすることができます。 –

関連する問題