2016-11-07 6 views
0

Ich habe dies aus einem anderen Beitrag abgeschnitten, da es ähnlich ist, was ich brauche. Anstatt me.ID usw. zu verwenden, muss ich auf ein Feld in einer anderen Tabelle verweisen, insbesondere auf [Formdate] in einer Tabelle namens "Brief Sheet".Suchen Sie nach doppelten Datensätzen, bevor Sie einen Datensatz hinzufügen

ich viele Variationen, wie Tabelle „Kurzschrift“ .Formdate aber kein Glück

Was wäre die richtige Syntax versucht?

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

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

+0

Ihr Feld in der Datensatz sein muss - was tut Ihr Recordset-Abfrage wie jetzt aussehen? Wenn es dort ist, benutzen Sie einfach '[Formdate]' selbe wie andere Felder. – dbmitch

Antwort

1

Verwenden Sie Dlookup. In dem von Ihnen geposteten Snippet hat der Coder bereits ein Recordset instanziiert und verwendet Recordset-Methoden, um einen Datensatz darin zu finden. Was du gesagt hast, dass du willst, ist eigentlich ein bisschen einfacher.

Unten finden Sie ein Testverfahren, um zu veranschaulichen, wie Sie Ihren Datumswert aus Ihrer Tabelle erhalten.

Sie haben nicht geklärt, welche Kriterien Sie verwenden würden, um das richtige FormDate aus der Tabelle "Brief Sheet" auszuwählen, also habe ich "ID = 3" eingefügt, das den FormDate-Datensatz auswählt, dessen ID = 3. Passen Sie das gegebenenfalls an.

Wenn Ihr Tabellenname wirklich "Briefbogen" ist und Sie ihn umbenennen können, empfehle ich dringend, einige Namenskonvention-Regeln für Ihre Tabellen festzulegen, die zuerst keine Leerzeichen enthalten. Selbst Brief_Sheet würde Ihnen das Leben auf der Straße erleichtern.

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

Beachten Sie, dass dlookup null zurückgibt, wenn kein Wert gefunden wird, so dass 'Dim datFormDate As Date' ein Problem verursacht. – Fionnuala

+0

Guter Punkt, Fionnuala. Man könnte entweder das FormDate als Variante "Dim varFormDate als Variante" dimensionieren oder die Dlookup-Anweisung in die Nz() - Funktion umbrechen. –

Verwandte Themen