2016-11-06 6 views
0

ich die Dlookup Funktion zu bekommen versuchen, in Access 2013 zu arbeiten, aber ich kann nur erhalte es nicht, heren zu arbeiten, was ich bisher: -Can not Get DLookup Funktion in Access 2013 arbeitet

Ich habe eine Abfrage genannt qry_VehicleOverview in dieser Abfrage gibt es zwei Felder namens VehicleNumber und DateLastExam

ich eine Form haben, gibt es eine Reihe von Feldern, zwei von ihnen genannt Vehicle1 und DateLastExamV1, in DateLastExam1! Ich versuche die entsprechende Prüfung auf Vehicle1 von qry_VehicleOverview Feld basierend auf Referenz, so dass, wenn ein Fahrzeugnummer zu Vehicle1 hinzugefügt wird, zeigt es die richtige Prüfung in DateLastExam1

vor allem ich ein Kombinationsfeld in dem Formular zu erstellen, die so genannten Vehicle1 und verwies qry_VehicleOverview es VehicleNumber von

dann habe ich ein Textfeld in dem Formular, und nannte es LastExamVehicle1, in der Steuerquelle dieses Feld mir die DLookup-Funktion hinzugefügt: -

=DLookup("[DateLastExam]","qry_VehicleOverview","[VehicleNumber]=""" & [Vehicle1].[Text] & """")

wählte dann After update in Event Reiter und code Builder Ausgewählte hier ich hinzugefügt: -

Private Sub LastExamVehicle1_AfterUpdate() Me.LastExamVehicle1.Requery End Sub

aber wenn das Formular ausführen, vor allem bekomme ich einen Fehler von #TYPE im Feld, wenn ich ändern Der Wert in Vehicle1 der Fehler ändert sich dann zu #Error

Antwort

1

ich ein Kombinationsfeld in dem Formular zu erstellen, die so genannt Vehicle1 und verwies sie auf Fahrzeugnummer von qry_VehicleOverview

Wenn das so ist, gab ist nicht notwendig für DLookup, wie Sie bereits den Wert haben.

Stellen Sie die RowSource von Vehicle1 zu qry_VehicleOverview und die Anzahl der Felder für die Combobox 2 und verwenden diese Control für Ihre Textbox:

=[Vehicle1].[Column](1) 

Es wird automatisch aktualisiert.

+0

Danke für die Hilfe, aber ich sehe 'Anzahl der Felder' nicht, ist diese' Spalte Anzahl' – user2513528

+0

Ja, das ist es. – Gustav

+0

Danke, funktioniert perfekt, noch eine Frage, wenn Sie helfen können, wie kann ich den Wert 'LastExamV1' aus dem Formular in einer Tabelle speichern? – user2513528

0

Verwenden Sie nicht [Vehicle1].[Text], verwenden Sie stattdessen [Vehicle1].[Value]. Oder einfach [Vehicle1].
(.Value ist die Standardeigenschaft)

.Text ist nur gültig, während der Fokus in der Kontrolle ist, und in AfterUpdate ist es nicht mehr.

.Text ist vor allem in der Change Ereignis nützlich, aber das würde für Ihren Fall keinen Sinn machen.

bearbeiten

Sie müssen wahrscheinlich die "vollständigen Pfad", um die Kontrolle in DLookup. Zur besseren Lesbarkeit empfehle ich die Verwendung von einfachen Anführungszeichen.

=DLookup("[DateLastExam]","qry_VehicleOverview","[VehicleNumber]='" & Forms!yourForm![Vehicle1] & "'") 

Überprüfen Sie bitte auch alle Namen in Ihrem Formular (und dann in Ihrer Frage). Z.B. aus Ihrer Beschreibung soll Ihre Ereignisprozedur lesen:

Private Sub Vehicle1_AfterUpdate() 
    Me.DateLastExamV1.Requery 
End Sub 
+0

danke für die Antwort, ich habe den [Text] entfernt, aber immer noch die #Error – user2513528

+0

@ user2513528: siehe bearbeiten. – Andre

+0

Also, Problem ist gelöst oder brauchen noch Hilfe? – harun24hr