2017-03-22 1 views
0

Ich versuche, eine Rechnungsnummer hinzufügen, mithilfe der DMAX-Funktion, um ein Textfeld mit der nächsten fortlaufenden Rechnungsnummer zu füllen. Abhängig vom Namen des Maklers, der in der Combobox Me.cmb_CustomerType.Value ausgewählt wurde, beginnt die Rechnungsnummer (Survey_InvoiceNumber, Survey_tbl) mit einer anderen Nummer, z. Elmhurst startet mit 08, Bridgfords startet mit 05 und Harringtons Durham startet mit 04. Ich habe versucht, ausgewählte Anweisungen zu verwenden, links, dmax, dlookup aus verschiedenen Foren, aber ich kann es nicht zur Arbeit bringen und ich bin bei meinem Witze enden damit!VBA Access DMAX Rechnungsnummer Kriterien

If cmb_CustomerType.Value = "Elmhurst" Then 
Me.txt_InvoiceNumber.Value = DMax("Survey_InvoiceNumber", "Survey_tbl", "08") + 1 
End If 

If cmb_CustomerType.Value = "Bridgfords" Then 
    Me.txt_InvoiceNumber = Nz(DMax("Survey_InvoiceNumber", "Survey_tbl", "05") + 1) 
End If 

If cmb_CustomerType.Value = "Harringtons Durham" Then 
    Me.txt_InvoiceNumber = Nz(DMax("Survey_InvoiceNumber", "Survey_tbl", "04") + 1) 
End If 

Es ist nur für alle der Makler ‚8884‘ Rückkehr als dass die höchste Zahl in dieser Spalte ist.

Ergebnisse sollte sein: Elmhurst - 08.884, Harringtons Durham - 04048

Es gibt zur Zeit keinen Wert für bridgfords, es sollte daher mit 05000.

Vielen Dank im Voraus :)

+0

Erstens, ist Ihre Survey_InvoiceNumber "Spalte eine Zeichenfolge oder eine lange? Wenn Sie wirklich eine führende Null (08 .., 05 ..., 04 ...) wollen, ist es besser zu machen eine Zeichenkette, aber es sieht so aus, als ob Ihr dmax 8884 zurückgibt (keine führende Null). Haben Sie dann eine Spalte, in der der Kundentyp gespeichert ist, oder verlassen Sie sich nur auf die erste Ziffer Ihrer Rechnungsnummer, um diese zu ermitteln (schlechte Idee)? –

+0

@Thomas G, ich habe ein Attribut für den 'Customer_Type', das in 'Customer_tbl' gespeichert ist. Ich machte die Survey_InvoiceNumber Spalte kurzen Text, um die Zahl mit 0 beginnen zu lassen, aber es scheint keinen Einfluss in das Formular zu haben – Amy

Antwort

0

dies zu starten Versuchen skelet:

Me.txt_InvoiceNumber.Value = "08" & Right(Format(Val(Nz(DMax("Survey_InvoiceNumber", "Survey_tbl", "Survey_InvoiceNumber Like '08*'")) + 1), "00000"), 3) 
+0

Das funktioniert perfekt, danke :) – Amy

+0

Großartig! Dann bitte als beantwortet markieren. – Gustav