Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Datensätze teilweise öfter übernehmen
zurück: Zuordung Button - Hyperlink für Ausgabe von PDF weiter: Dynamisches Unterformular erstellen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
MrMojoRisin
Access VBA - SQL Programmierer


Verfasst am:
10. Mai 2011, 09:36
Rufname:

Datensätze teilweise öfter übernehmen - Datensätze teilweise öfter übernehmen

Nach oben
       Version: Office 2003

Hallo,

ich gebe über ein Formular Datensätze ein, diese werden in einer Puffertabelle zwischengespeichert. Datenbank auf dem SQL Server. Es geht um Bestellungen, d.h. ich gebe ein 2x Artikel 1, 1x Artikel 2 und 4x Artikel 3. In der Puffertabelle habe ich dann eine Spalte, wo dann eben die Anzahl drinsteht, d.h. ich habe 3 Datensätze. Wenn ich dann zufrieden bin und im Formular auf einen Button klicke, werden diese 3 Datensätze in meine "Haupttabelle übernommen" und aus der Puffertabelle wird wieder alles gelöscht. Mein Problem ist, wie bekomme ich es hin, dass er mir den Artikel 1 dann 2mal einfügt, den Artikel 2 nur 1mal und den Artikel 3 eben 4mal einfügt. Finde gerade einfach keine Lösung.

Vielen Danke schonmala
Gallo24
Meistens klappt's (nur tlw. zu umständlich)


Verfasst am:
10. Mai 2011, 10:01
Rufname: David
Wohnort: Bremer Speckgürtel


AW: Datensätze teilweise öfter übernehmen - AW: Datensätze teilweise öfter übernehmen

Nach oben
       Version: Office 2003

Hallöchen,

Wie trägst du die Daten denn bisher von der Puffertabelle in die Hauptabelle ein? Alles in einem mit einer InserInto?
Ließe es sich so umbauen, dass du die Datensätze einzeln übergibst? Dann könntest du mit einer geschachtelten For Next Schleife arbeiten.
Vielleicht auch noch eine laufende Nummer die immer bei 1 anfängt in die Puffertabelle einfügen, dann wärs eigentlich schön einfach.
Code:
    Dim VLfdNr As Integer
    Dim VArtAnz As Integer
   
    For VLfdNr = 1 To DCount("*", "Puffertabelle")
       For VArtAnz = 1 To DLookup("Anzahl", "Puffertabelle" _
                                , "LfdNr = " & VLfdNr)
          'InsertInto für den einen DS
       Next VArtAnz
    Next VLfdNr
Hab da jetzt nichts getestet, aber so in etwa könnte es gehen.
_________________
LG
David
Bitte um Feedback! Will ja wissen, ob ich helfen konnte. Auch so lernt man.
MrMojoRisin
Access VBA - SQL Programmierer


Verfasst am:
10. Mai 2011, 14:37
Rufname:

AW: Datensätze teilweise öfter übernehmen - AW: Datensätze teilweise öfter übernehmen

Nach oben
       Version: Office 2003

MrMojoRisin am 10. Mai 2011 um 10:04 hat folgendes geschrieben:
Genau, bisher alles in einem Insert Into.

Danke, ich werde das dann mal testen und berichten.

Super, funktioniert einwandfrei. Ich habe nur noch eine DELETE Funktion nach der inneren For Schleife mit eingebaut, damit die Datensätze dann auch gleich wieder aus der Tabelle gelöscht werden, ansonsten perfekt. Danke
Gallo24
Meistens klappt's (nur tlw. zu umständlich)


Verfasst am:
10. Mai 2011, 14:44
Rufname: David
Wohnort: Bremer Speckgürtel

AW: Datensätze teilweise öfter übernehmen - AW: Datensätze teilweise öfter übernehmen

Nach oben
       Version: Office 2003

Hättest du eigentlich auch nach abbacken der Haupschleife machen können, wenn du die Datensätze mit einer laufenden Nummer versehen hast, da er ja dann eh zum nächsten geht und dann nach beenden der Schleife, also wenn alle Datensätze übertragen wurden alles aus deiner Puffertabelle löschen.
Ist allerdings glaub ich nicht so relevant. Deine Lösung könnte nur minimal mehr Zeit in Anspruch nehmen, was Wurscht ist, solangs nicht in die 1000de Datensätze geht. Very Happy

_________________
LG
David
Bitte um Feedback! Will ja wissen, ob ich helfen konnte. Auch so lernt man.
MrMojoRisin
Access VBA - SQL Programmierer


Verfasst am:
10. Mai 2011, 14:51
Rufname:


AW: Datensätze teilweise öfter übernehmen - AW: Datensätze teilweise öfter übernehmen

Nach oben
       Version: Office 2003

Jo, das ist richtig mit dem DELETE, aber es sind max. so 10 Datensätze, deswegen egal Very Happy

So, hab grad gemerkt, es besteht noch ein Problem und zwar die Spalte, die du immer von vorne mit 1, 2, 3,... befüllen lassen willst, die hab ich jetz erstmal zur Probe mit der Hand eingegeben. Jetz komm ich aber gerade auf keine Lösung, wie ich das programmieren kann, dass das von selber läuft oder kann man das am SQL Server selber festlegen, bei den Eigenschaften der Spalte, also sie hat schon eine ID Spalte, die hochzählt, aber halt nicht von Anfang an.
Gallo24
Meistens klappt's (nur tlw. zu umständlich)


Verfasst am:
10. Mai 2011, 14:55
Rufname: David
Wohnort: Bremer Speckgürtel

AW: Datensätze teilweise öfter übernehmen - AW: Datensätze teilweise öfter übernehmen

Nach oben
       Version: Office 2003

Also wenn da schon was hochzählt werden wir doch den Teufel tun und nochmal zählen gelle? Wink
Schnapp dir mal diese Zeile
Code:
    For VLfdNr = 1 To DCount("*", "Puffertabelle")
und ersetze sie durch
Code:
    For VLfdNr = DMin("ID", "Puffertabelle") to DMax("ID", "Puffertabelle")
Damit sollte die Schleife von der kleinsten bis zur größten ID durchlaufen. Einzige Voraussetzung ist, dass es keine Lücken bei der ID gibt, weil er dir die Lücke um die Ohren hauen wird.

Edit:
Code:
' natürlich noch
'        For VArtAnz = 1 To DLookup("Anzahl", "Puffertabelle" _
'                                 , "LfdNr = " & VLfdNr)
' ersetzen durch
        For VArtAnz = 1 To DLookup("Anzahl", "Puffertabelle" _
                                 , "ID = " & VLfdNr)

_________________
LG
David
Bitte um Feedback! Will ja wissen, ob ich helfen konnte. Auch so lernt man.
MrMojoRisin
Access VBA - SQL Programmierer


Verfasst am:
10. Mai 2011, 15:02
Rufname:

AW: Datensätze teilweise öfter übernehmen - AW: Datensätze teilweise öfter übernehmen

Nach oben
       Version: Office 2003

Leider können aber Lücken entstehen, wenn sich der User zwischendurch überlegt, dass er einen Artikel doch nicht will und ihn dann wieder rausnimmt.
Gallo24
Meistens klappt's (nur tlw. zu umständlich)


Verfasst am:
10. Mai 2011, 15:20
Rufname: David
Wohnort: Bremer Speckgürtel

AW: Datensätze teilweise öfter übernehmen - AW: Datensätze teilweise öfter übernehmen

Nach oben
       Version: Office 2003

Zitat:
zwischendurch überlegt
solche Kollegen hab ich gerne...überlegt wird vorher. Wink

Durchnummerieren wenn alle Daten drin sind, ist allerdings auch nicht so einfach.
Du könntest aber vielleicht mal die äußere for-next-Schleife durch eine Do-Loop ersetzen.
Code:
    Do
        For VArtAnz = 1 To DLookup("Anzahl", "Puffertabelle" _
                                 , "ID = " & DMin("ID", "Puffertabelle"))
            'InsertInto für den einen DS
        Next VArtAnz
        'Datensatz aus Puffertabelle löschen
    Loop Until DCount("*", "Puffertabelle") = 0
Da müsste er jetzt solange die Schleife durchlaufen, bis die Puffertabelle leer ist und er nimmt sich immer den Datensatz mit der kleinsten ID. Die ID kann ja wohl nicht mehrfach vorkommen oder?
_________________
LG
David
Bitte um Feedback! Will ja wissen, ob ich helfen konnte. Auch so lernt man.
MrMojoRisin
Access VBA - SQL Programmierer


Verfasst am:
10. Mai 2011, 16:07
Rufname:

AW: Datensätze teilweise öfter übernehmen - AW: Datensätze teilweise öfter übernehmen

Nach oben
       Version: Office 2003

Schicke Endlosschleife, gleich mal 2000 Datensätze eingefügt, bis ich den Abbruch geschafft habe Very Happy
Gallo24
Meistens klappt's (nur tlw. zu umständlich)


Verfasst am:
10. Mai 2011, 16:12
Rufname: David
Wohnort: Bremer Speckgürtel

AW: Datensätze teilweise öfter übernehmen - AW: Datensätze teilweise öfter übernehmen

Nach oben
       Version: Office 2003

Shock dann hat er die abgearbeiteten Datensätze aber nicht gelöscht. Ohne Löschung wird es tatsächlich eine Endlosschleife, aber du solltest doch da wo ich
'Datensatz aus Puffertabelle löschen
geschrieben habe den Datensatz aus der Puffertabelle löschen.
Hau da mal
Code:
    CurrentDb.Execute "DELETE * FROM Puffertabelle WHERE ID = " & VArtAnz
rein.

Edit:
hoppla falsche Variable genommen. Dann nochmal im ganzen
Code:
    Do
        For VArtAnz = 1 To DLookup("Anzahl", "Puffertabelle" _
                                 , "ID = " & DMin("ID", "Puffertabelle"))
            'Dein InsertInto
        Next VArtAnz
        'löscht den DS mit der kleinsten ID
        CurrentDb.Execute "DELETE * FROM Puffertabelle" _
                        & " WHERE ID = " & DMin("ID", "Puffertabell")
    'Schleife bis die Puffertabelle leer ist
    Loop Until DCount("*", "Puffertabelle") = 0

_________________
LG
David
Bitte um Feedback! Will ja wissen, ob ich helfen konnte. Auch so lernt man.
MrMojoRisin
Access VBA - SQL Programmierer


Verfasst am:
11. Mai 2011, 09:29
Rufname:

AW: Datensätze teilweise öfter übernehmen - AW: Datensätze teilweise öfter übernehmen

Nach oben
       Version: Office 2003

Super, funktioniert, hatte am Anfang die Where Bedingung bei meiner Insert Anweisung vergessen. Dein Code funktioniert einwandfrei. Vielen Dank. Tag gerettet ;)
Gallo24
Meistens klappt's (nur tlw. zu umständlich)


Verfasst am:
11. Mai 2011, 09:48
Rufname: David
Wohnort: Bremer Speckgürtel


AW: Datensätze teilweise öfter übernehmen - AW: Datensätze teilweise öfter übernehmen

Nach oben
       Version: Office 2003

Freut mich. Vielen Bitt. Wink
_________________
LG
David
Bitte um Feedback! Will ja wissen, ob ich helfen konnte. Auch so lernt man.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Wert aus letzten Datensatz übernehmen 1 jannsen 1571 19. Mai 2005, 12:54
ChrisB Wert aus letzten Datensatz übernehmen
Keine neuen Beiträge Access Tabellen & Abfragen: summieren verschiedener Datensätze 1 Denianer 1140 07. Apr 2005, 19:50
waldwuffel summieren verschiedener Datensätze
Keine neuen Beiträge Access Tabellen & Abfragen: Auffinden unterschiedlicher Datensätze in zwei Sichten 2 oceanhawk 618 18. März 2005, 10:19
oceanhawk Auffinden unterschiedlicher Datensätze in zwei Sichten
Keine neuen Beiträge Access Tabellen & Abfragen: Datensätze vergleichen 4 Gast 1247 04. März 2005, 15:29
Willi Wipp Datensätze vergleichen
Keine neuen Beiträge Access Tabellen & Abfragen: Datensätze weden bei Abfrage "Verschluckt" 3 DocTomoe 1032 17. Feb 2005, 17:29
Gast Datensätze weden bei Abfrage "Verschluckt"
Keine neuen Beiträge Access Tabellen & Abfragen: Datensätze aus 1:n Beziehung im Endlos Hauptformular zeigen? 2 blicki 1151 16. Feb 2005, 20:31
blicki Datensätze aus 1:n Beziehung im Endlos Hauptformular zeigen?
Keine neuen Beiträge Access Tabellen & Abfragen: Feld als Differenz aufeinanderfolgender Datensätze 1 Lexiko123 633 10. Feb 2005, 14:50
stpimi Feld als Differenz aufeinanderfolgender Datensätze
Keine neuen Beiträge Access Tabellen & Abfragen: "Ist Null" findet nicht alle Datensätze 2 HenningR 718 07. Feb 2005, 14:05
HenningR "Ist Null" findet nicht alle Datensätze
Keine neuen Beiträge Access Tabellen & Abfragen: Aus 1 Datensatz mit 10 Infos mache 10 Datensätze à 1 Info 2 Steve 914 14. Jan 2005, 00:43
Steve Aus 1 Datensatz mit 10 Infos mache 10 Datensätze à 1 Info
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage um doppelte Datensätze zu ermitteln? 5 tom444 5066 14. Dez 2004, 23:49
Skogafoss Abfrage um doppelte Datensätze zu ermitteln?
Keine neuen Beiträge Access Tabellen & Abfragen: Anzahl der gleichen Datensätze ausgeben 3 Chris1408 946 26. Nov 2004, 17:07
Skogafoss Anzahl der gleichen Datensätze ausgeben
Keine neuen Beiträge Access Tabellen & Abfragen: hyperlinks aus tabelle übernehmen 0 christatos 608 16. Nov 2004, 12:16
christatos hyperlinks aus tabelle übernehmen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft-Excel Diagramme