2016-04-04 5 views
0

Ich erstelle in Access 2013 eine Datenbank für eine Bibliothek mit mehreren Kopien verschiedener Bücher. Ich möchte ein Kombinationsfeld/eine Suchliste erstellen, die Zahlen anzeigt, die gleich oder kleiner als die insgesamt verfügbaren Kopien des Buches sind, so dass der Bibliothekar bei der Ausgabe eines Buches den nächstniedrigeren Wert im Dropdown auswählen kann. (Die Anzahl der verfügbaren Kopien verringert sich um eins). Die Anzahl der gekauften Kopien kann sich ändern, wenn die Bibliothek mehr Kopien der populäreren Bücher kauft und die Dropdown-Box dynamisch aktualisiert werden muss. Wie mache ich das? Brauche ich eine Beziehung?Erstellen Sie eine Dropdown-Box, die Zahlen enthält, die gleich oder kleiner als eine Zahl in einem anderen Feld sind.

+0

Das klingt wie redundante Daten. Ich nehme an, dass Sie auch einen Rekord für das Ausleihen (Problem) erstellen werden? Dann könnte die Anzahl der verfügbaren Bücher berechnet werden. – Andre

+0

Ich habe eine Tabelle, die ausgegebene Bücher aufzeichnet, aber ich habe keine Tabelle für die Rückgabe, es sei denn, ich habe ein berechnetes Feld hinzugefügt, das die Anzahl der Datensätze für ein bestimmtes Buch mit einem Rückgabedatum kleiner als heute zählt und davon ausgeht, dass alle Bücher zurückgegeben werden Ich denke nicht, dass ich das schaffen kann. Habe ich recht? – word4q

+0

Ich hätte "isReturned" als boolesches Feld in der Tabelle "ausgestellte Bücher". Wenn jemand ein Buch zurückgibt, anstatt eine Dropdown-Box zu vergrößern, markieren Sie das Problem als zurückgegeben. – Andre

Antwort

0

Zuerst setzen Sie die Combobox RowSourceType Property auf "Werteliste", um festzulegen, dass die Combobox-Liste manuell verwaltet werden soll. Dann verwenden Sie die Methode AddItem method der Combobox, um ein Objekt hinzuzufügen, und RemoveItem Method, um ein Objekt zu entfernen. This is, wie Sie alle Elemente entfernen:

For i = 1 To ListBox1.ListCount 
    'Remove an item from the ListBox. 
    ListBox1.RemoveItem 0 
Next i 

Nachdem alle aktuellen Artikel zu entfernen, berechnen, wie viele Available Copies, und fügen Sie sie in die Liste in einer Schleife:

For i = 1 To AvailableCopies  
    'Add an item from the ListBox. 
    ListBox1.AddItem i 
Next i 

Führen Sie diesen Code für jedes Buch Datensatz präsentiert , wahrscheinlich am OnCurrent-Ereignis eines Formulars.

+0

Danke Marlan, Sie haben meine ursprüngliche Frage sehr gut beantwortet, aber Andre hat darauf hingewiesen, dass ich eigentlich keine Dropdown-Liste brauche. – word4q

+0

@ word4q, ich habe die Frage nicht so gut gelesen wie Andre ... In meinen Gedanken schien es, als wollten Sie einem Benutzer erlauben, mehrere Kopien eines Buches zu borgen ... Ich werde das nächste Mal sorgfältiger lesen, mein Bestes geben bessere Hilfe geben;). – marlan

Verwandte Themen