PDA

Vollständige Version anzeigen : Nach Zahleneingabe Tabelle mit VBA füllen


EDV-Stelle
19.02.2008, 15:32
Hallo Zusammen!

Über eine/zwei MsgBox's möchte ich zwei Zahlenwerte eingeben. Sagen wir mal 1 und 100. Nach Eingabe dieser möchte ich das in meiner Tabelle tbl_KGH (mit den Feldern: ID - AutoWert, Nummer - Zahl und gedruckt - Ja/Nein) die Zahlen von 1 bis 100 automatsich per VBA in das Feld Nummer eingetragen werden.
Wie würde dafür der Code aussehen oder hat jemand eine bessere Lösung?

Danke für schnelle Hilfe

Ralf

Smaug
19.02.2008, 15:43
Ich weiss zwar nicht was der Sinn dieses Unterfangens ist (über Zeilennummerierung findet sich was bei Donkarl-FAQ) aber über ein Recordset geht das schon:
Dim db As DAO.Database, rs As DAO.Recordset
Dim I As Integer
Set db=CurrentDb
Set rs = db.OpenRecordset ("tbl_KGH")
For I= Startwert To Endwert 'die beiden Zahlen aus der MsgBox
rs.Edit 'Edit zum Bearbeiten rs.AddNew würde neue DS erstellen
rs!Nummer = I
rs.Update
Next I
rs.Close
Set rs=Nothing
Set db=Nothing

hcscherzer
19.02.2008, 15:46
Moin Ralf,
ich würde es nicht mit der Msg- bzw. der Input-Box machen sondern mit einem kleinen ungebundenen Formular.
Zwei Textfelder und ein Button.
Die Textfelder solltest Du über Gültigkeitsregeln (und Eingabeformate) auf Zaheln im gültigen Bereich einstellen.
Dann erstellst Du eine Ereignis-Prozedursub button_click()
dim i as integer
for i = val(me!textfeld1) to val(me!textfeld2)
currentdb.execute "insert into tbl_KGH (nummer, gedruckt) values (" & i & ", False);"
next i
end subPrüfung, ob tatsächlich in beiden Textfeldern Werte sind, sollte imho noch vorangestellt werden.

hcscherzer
19.02.2008, 15:47
For I= Startwert To Endwert 'die beiden Zahlen aus der MsgBox
@Smaug: wie Zahlenwerte in oder sogar aus einer MsgBox herauskommen, das würde mich mal interessieren ... ;)

Smaug
19.02.2008, 15:52
Ich denke unser User ist fit genug den Inhalt 2 Inputboxen (natürlich nicht MsgBox) in 2 Integer-Variablen zu speichern die ich faulerweise (schäm) im code nur mit Startwert und Endwert bezeichnet habe.
Allerdings wäre der Hintergrund des ganzen Unterfangens interessant zu erfahren da ich vermute es handelt sich um eine blosse Zeilennummerierung - und dafür ist das Ganze eh etwas suboptimal da man so etwas mit einer SQL-Anweisung (Donkarl-FAQ) erzeugen kann.
Wenn allerdings doch die Tabelle gewünscht sein sollte würde ich diese allerdings in diesem Fall lieber über ein Recordset füllen als mit der Execute-Methode (AFAIK meinte ich das in diesem Fall das Recordset aus Performancegründen vorzuziehen sei -lasse mich aber gern eines besseren belehren)

EDV-Stelle
19.02.2008, 15:52
die lösung von hcscherzer klingt ganz gut mit dem formular.. werd ich mal probieren. danke für die schnelle hilfe.

ralf

EDV-Stelle
19.02.2008, 15:56
hintergrund soll eine simple db sein, wo ich in einer tabelle nummern eintragen lasse, die im direkten anschluss dazu dienen, inventaretiketten über einen bericht ausdrucken zu lassen. die zahlen sollen deshalb gespeichert werden und nach dem ausdruck soll das dritte feld gedruckt auf ja gesetzt werden, damit die zahlen nicht nochmal ausgedruckt werden bzw darauf hingewiesen wird, das die zahlen schonmal gedruckt worden sind. ich kann mir auch noch die sql anweisung bei donkarl angucken...
oder hab ich jetzt nen falschen lösungansatz für eine solche etiketten datenbank?! schon sööö spät, kaffee hilft auch nicht mehr ;-)

Smaug
19.02.2008, 16:11
hmm wäre für ein blosses Ausdrucken von irgendwelchen Zahlen nicht Excel einfacher ??

EDV-Stelle
19.02.2008, 16:16
wollte es halt elegant auf access machen, da ich quasi schon eine inventarverwaltung in access habe und zugleich somit den bericht verwenden könnte. der bericht ist ja schon auf das etikettenblatt von zweckform abgestimmt ;-) es soll ja auch in zukunft nachvollzogen werden welche nummern schon gedruckt wurden, um somit weiter die folgenden nummern zu drucken.