2016-03-29 8 views
0

Ich baue eine Inventardatenbank, die einzelne Elemente verfolgen muss. Jedem Gegenstand ist eine eindeutige Nummer zugeordnet. Wir erhalten diese Artikel jedoch in großen Mengen und verteilen sie ebenfalls. Ich habe ein Dateneingabeformular eingerichtet, um den Anfang des Positionsnummernbereichs und das Ende des Positionsnummernbereichs einzugeben. Zum Beispiel würde der Artikelbereich ungefähr so ​​aussehen: 1056-56701 bis 1056-56800. Die Artikelnummer besteht immer aus 4 Ziffern gefolgt von einem Bindestrich und 5 Ziffern. Ich möchte den Bereich erweitern, der in mein Dateneingabeformular eingefügt wird, so dass jede einzelne Artikelnummer innerhalb des Bereichs in meiner Tabelle gespeichert wird. In diesem Fall - 1056-56701, 1056-56702, 1056-56703, 1056-56704 .... 156-56800. Ich muss auch die entsprechenden Informationen für jeden Artikelbereich speichern, da sie als individuelle Nummer gespeichert werden. Das würde gehören Dinge wie ‚Datum empfangen‘, ‚Größe‘ usw.Erweitern eines Nummernbereichs von Access-Dateneingabeformular in Tabelle

Ich habe einige andere Antworten auf ähnliche Probleme lesen, aber ich kann immer noch nicht bekommen diese richtig zu funktionieren. Irgendwelche Gedanken?

+0

Wenn alles über die Artikel in der Palette ist die gleiche Ausnahme mit dem 5-stelligen Teil von t er Nummer sollte es nicht notwendig sein, all diese Informationen mehrfach zu speichern. Das wäre eine Verletzung des DRY-Prinzips. Vielleicht möchten Sie etwas tun, statt wie eine „Präfix“ Spalte (mit dem Wert „1056“ in Ihrem Beispiel), und dann hat „suffixBegin“ (wie 56701" und ‚suffixEnd‘ (‚56800‘) Spalten. –

+0

Die Informationen für jeden Artikel, die aus der gleichen Charge kommen, haben identische Informationen, wenn wir sie zum ersten Mal erhalten, also ja, das empfangene Datum, die Größe usw. sind gleich, aber da wir Artikel versenden, muss ich in der Lage sein, Eingaben vorzunehmen entsprechende Informationen für jedes einzelne Element. So werden Elemente aus demselben Stapel mit eindeutigen Informationen enden, die wir abfragen können müssen –

+0

In diesem Fall sollten Sie eine verwandte Tabelle haben, die mit diesen eindeutigen Daten gefüllt ist Die Tabelle (eine Art Nachschlagetabelle) könnte die Daten enthalten, die dem Stapel gemeinsam sind. Der Wert "Prefix" könnte der Schlüssel in der ursprünglichen (Master-) Tabelle sein, und er könnte als Fremdschlüssel in der Detailtabelle dienen. –

Antwort

1

Ein Beispiel für das Design müssen Sie:

MASTER 
------ 

Prefix  Int (primary key) 
SuffixBegin String 
SuffixEnd String 
ItemDescription String 
DateReceived Date 
Size  String 
. . . more columns for any other data common to the entire "batch" 

DETAIL 
------ 
ID Int (primary key) 
Prefix Int (foreign key, related to the same-named column in the Master table) 
Suffix String (values such as "56701", "56702", etc.) 
. . . more columns for whatever data you need to store about unique suffix items 

Sie könnten dann Daten für einen bestimmten Punkt so etwas wie dieses (pseudo-SQL, ungetestet) finden:

SELECT M.ItemDescription, D.SomeSuffixSpecificData 
FROM MASTER M, DETAIL D 
WHERE M.Prefix = (the Prefix you're interested in) 
AND D.Suffix = (the Suffix you're interested in) 
JOIN M.Prefix = D.Prefix 
0

Sie verwenden können eine Funktion wie folgt, um Ihre Artikel aufzulisten und hinzuzufügen:

Public Function AddBulk(ByVal First As String, ByVal Last As String) As Integer 

    Dim Items As Integer 
    Dim Item As Integer 
    Dim BulkId As String 

    ' Open your inventory table. 
    ' Set rs = CurrentDb.OpenRecordset("Select Top 1 * From Inventory") 

    For Item = Split(First, "-")(1) To Split(Last, "-")(1) 
     BulkId = Split(First, "-")(0) & "-" & Item 
     Debug.Print Items, BulkId 
     ' Insert code to add one record to your inventory table. 
     ' rs.AddNew 
     '  rs!BulkId.Value = BulkId 
     '  rs!OtherField.Value = somevalue 
     ' rs.Update 
     Items = Items + 1 
    Next 

    ' rs.Close 

    AddBulk = Items 

End Function