2016-10-27 1 views
0

Hallo Stackoverflow-Community!MS Access VBA - Benutzerdefinierte Spalte ist ListBox (mit einem Wert aus einer anderen Spalte aus einer Tabelle)

Meine Frage bezieht sich auf das Erstellen einer benutzerdefinierten Spalte in einem Listenfeld, das mithilfe von SQL aus einer Tabelle zieht. Unter Bezugnahme auf den Code und das Bild der aktuellen Liste unten möchte ich eine benutzerdefinierte Spalte erstellen, die nicht in einer Tabelle gespeichert ist, die "DaysActive" heißt und das heutige Datum minus das StatusEffect-Datum für jeden angezeigten und angezeigten Datensatz verwendet die Anzahl der Tage in einer eigenen Spalte, sagen wir zwischen StatusEffect und Yr. Ist das möglich? Vielen Dank im Voraus, dass Sie sich die Zeit genommen haben, dies zu lesen.

Private Sub Form_Load() 

DoCmd.RunCommand acCmdWindowHide 

Dim rs As Recordset 
Dim strSQL As String 
Dim lstnum 



strSQL = "SELECT LastName, FirstName, Status, StatusEffect, Yr, Make, Model, VIN, Deduction, USLicense, RegistrationState, Dependents,Notes, ID FROM InsuranceTable" & _ 
"WHERE SentRegistration = False And Status IN ('active','add') Order By StatusEffect Desc " 

Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot) 
Set Me.lstInfo.Recordset = rs 

lstnum = [lstInfo].[ListCount] 
Me.lstcount.Value = lstnum - 1 
End Sub 

Link to picture of my current list since I do not have enough rep points to embed it ;/

+0

Warum sollten Sie eine Listbox haben, da DaysActive pro Zeile eindeutig ist. Verwenden Sie ein ungebundenes Formularfeld, das das aktuelle Datum berechnet - StatusEffect Date. – Rene

+0

Ich möchte, dass die "DaysActive" -Berechnung in jeder Zeile als eigene Spalte in dieser Listbox angezeigt wird. – Ace16150s

Antwort

0

Verwenden Sie die DateDiff() Funktion in der SQL.
DateDiff('d') gibt den Unterschied in Tagen zurück.

SELECT ..., StatusEffect, DateDiff('d',[StatusEffect],Date()) AS DaysActive, Yr, ... 
Verwandte Themen