Frage

Ich habe für die Verfolgung von Proben zur Arbeit auf ein Formular angeworben. Jede Probe wird mit einem Gegenstand verbunden ist; Jede Probe hat auch einen bestimmten Schlitz in einem 9 x 9-Aufbewahrungsbox. Zur Vereinfachung der Dateneingabe, ich glaube, es wäre am besten, wenn das Access-Formular die Box selbst (und die Papierformulare, die verwendet werden, um Daten in Access eingeben) gespiegelt: neun Spalten von neun Zeilen, wobei jedes Element, bestehend im wesentlichen aus einem Text Box für die Probe ID. Dies ist im Grunde, wie ich es möchte aussehen:

alt text

So ist die Dateneingabe Person im Wesentlichen in der Box-Nummer und Probe-IDs geben würde, dann klicken Sie auf „Aufzeichnungen erstellen“ alle diese Datensätze in Existenz Pop (Sie können einige andere Sachen zu sehen hier los ist, aber das ist nicht wirklich wichtig, richtig jetzt). Ich bin nicht wirklich sicher über den besten Weg, um Code diesen jedoch. Gerade jetzt, die beste Prozess, den ich denken kann, ist: 1) ein Insert-Abfrage ausführen, um das Feld zu erstellen, wenn es nicht vorhanden ist, 2) ein Insert-Abfrage ausführen, das Thema (Person) zu erstellen, wenn es nicht vorhanden ist und 3) ein Insert Abfrage für jede Probe laufen, Hartcodierung in seiner Reihe und Spalte (zB box_col = 'A', box_row = '1').

Hinweis: die Subjekt-ID und Proben ID sowohl des ID-Feldes analysiert würden - es ist doof, nicht meine Idee, aber das ist, wie es eingerichtet. Ich kann damit umgehen, though.

Dies ist ein sicherlich eine Flickschusterei, aber ich bin sicher nicht, was anderes zu tun, und die meisten von dem, was ich habe gegoogelt up haben nicht relevant gewesen zu mehrere Datensatzerstellung aus einer einzigen Form. Gibt es einen besseren Weg, dies zu tun? Soll ich einfach die Idee aufgeben und gehen mit einem traditionelleren gebundenen subform Ansatz? Ich würde für Ihre Einsichten und Anregungen sehr dankbar. Vielen Dank.

War es hilfreich?

Lösung

Dies könnte alle in einer Unterform geschehen sein - aber ich der Einfachheit halber annehmen (weniger Klicks, einfacher Benutzererfahrung und Intuition) Sie entworfen haben es so, dass der Endbenutzer sieht alles, was er / sie eingeben müssen. Es ist nichts falsch mit ihm auf diese Weise zu tun. Sobald die Daten alle haben nur einen Knopf auf dem Formular eingegeben wird, die mehrere Einsätze auf einmal tut. Beginnen Sie bei 1 und umfassen 9 Wiederholungen jedes Mal eine neue INSERT Anweisung ausgegeben wird.

Sobald die Anweisung abgeschlossen wurde ich persönlich ein wenig Häkchen neben jeder Zeile setzen würde, dass dann, wenn ein Einsatz succeded es würde überprüfen Sie es wahr ist, sonst false. Sie könnten ein grünes Bild / rotes Bild geschickter und verwenden sein. Nachdem er den Prozess alle Felder ausgefüllt hat, sollen damit zusätzlichen Eintrag gelöscht werden.

Ich sehe nicht ein Problem mit dem, was Sie haben.

Andere Tipps

FRIG. Ich nur zehn Minuten von der Eingabe verloren. Deshalb ist mir egal, für Web-basierte Formulare. Obwohl fair zu sein, dies ist das erste Mal auf Stackoverflow geschehen ist.

Haben Sie die Daten wirklich sehen müssen später im gleichen Format, wie er eingegeben wird. Wenn sie nur sehen regelmäßig subforms können, dass die Arbeit als Sie nicht mehr benötigen mindestens die Hälfte ist Updates dieser Form zu tun.

Beachten Sie auch, dass es ein Leben lang amaximum von 768, wenn ich mich richtig erinnere, Kontrollen pro Form. 9 x 9 x 2 162, so dass Sie in Ordnung sein werden da. Wenn Sie jedoch entscheiden, viele cotrols zu löschen und neu erstellen können Sie in Schwierigkeiten. Wenn Sie diese Grenze getroffen glaube ich das Formular unter einem eigenen Namen Speichern sollte den Zähler zurücksetzen.

Hinweis können Sie das folgende Konstrukt verwenden, um Kontrollen und machen das Leben zu beziehen einfacher.

Me.Controls("abc" & Row & column) 

Zum Beispiel in der After-Update des Typs Kontrolle könnten Sie

call InsertRecords(3, "B")

sub InsertRecords(row as integer, Column as string)
....
cboTypeValue = Me.Controls("cboTypeID" & Row & Column) 
....

Dies als eine Art von nativen Zugriffskontrollen verwendet werden könnte, nur Gitter.

Wenn jemand würde ein Beispiel hinterlassen, wie für jeden ungebundenen Datensatz benutzerdefinierten ungebundenes Unterformular mit der Zeile erstellen und einem Code-Schleife und speichern Sie es auf die Tische einfach toll wäre.

würde es nicht so viele Kontrollen, und es habe keine Grenzen, die durch die Anzahl der Felder auf dem Formular.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top