Office: (Office 2007) mit VBA Mehrere Datensätze auf einmal anlegen

Helfe beim Thema mit VBA Mehrere Datensätze auf einmal anlegen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo leute, ich arbeite derzeit an einer Datenbank für die Verwaltung von Druckerpatronen für mein Praktikum, stehe aber derzeit völlig auf dem... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von User, 2. Juli 2008.

  1. mit VBA Mehrere Datensätze auf einmal anlegen


    Hallo leute,

    ich arbeite derzeit an einer Datenbank für die Verwaltung von Druckerpatronen für mein Praktikum, stehe aber derzeit völlig auf dem Schlauch und weiß net, wo bei mir der Fehler liegt.

    Naja, kurz und knapp, ich habe ein Formular, welches ein Kombifeld besitzt, mit dem ich die Druckerpatrone auswähle, dann noch 3 Textfelder, wo das Lieferdatum, der Preis und die Menge eingegeben werden soll.

    Bei einem druck auf einen Button sollen in die Tabelle PATRONEN so viele Datensätze mit dem Patronentyp, dem Lieferdatum und dem Preis angelegt werden, wie in dem Textfeld Text7 eingegeben wurde.

    Dies lasse ich über ein Modul laufen, welches ich mit VBA erstellt, habe. Das Problem dabei ist nun, dass aus irgendeinem Grund das Modul immer auf den 1. Datensatz schreibt, zumindest auf den 1. von dem Patronentyp. Also kurz und knapp, lege ich damit eine Druckerpatrone an, die 15 mal dort drinnen ist, ist in meiner Tabelle aber nur eine. Tue ich noch eine andere Druckerpatrone dort rein, sind dort 2 verschiedene nur.

    Ich weiß echt nicht, wo mein Fehler liegt, vllt könnt ihr mir ja helfen *liebfrag* *wink.gif*

    hier der ModulCode:

    Code:
    PS: Achtet bitte nicht auf meine "Hilfsstellen" dahinter, die mache ich mir öfter, wenn ich nicht weiterkomme xD

    :)
     
  2. Vor ab eine Frage:
    Wieso willst Du identische Datensätze in eine Tabelle schreiben?
    Das widerspricht den Regeln der Normalisierung und den Prinzipien eines relationalen Datenmodells
     
    CptChaos, 3. Juli 2008
    #2
  3. Hallole,
    bist Du schon mal mit dem Debugger drüber gelaufen und hast den Wert von Text7 Dir angeschaut? Vielleicht musst Du den Wert von Text7 mit einem CInt(Text7) versehen, um so den String in eine Zahl zu konvertieren.
    Grüße aus dem Schwarzwald,
    Michael
     
    sw-blitz007, 3. Juli 2008
    #3
  4. mit VBA Mehrere Datensätze auf einmal anlegen

    Ganz einfach, in der Datenbank soll später noch die Ausgabe von den Patronen protokolliert werden, weshalb in der PATRONEN-Tabelle noch ein feld namens "abgabedatum" und "personen_nr_FK" existiert, wo das abgabedatum der Patrone sowie der Fremdschlüssel von der Person reinkommt, der die Patrone kriegt.

    Deswegen sind die Datensätze später nicht mehr identisch.


    Edit: Das könnte sein sw-blitz007, ich werds mal probieren und danach ne Meldung abgeben, obs funktioniert hat.
    MFG

    MegaMac
     
  5. Ok, dann solltest du eine Tabelle mit Patronen haben und einer ID zur Tabelle mit den allgemeinen Informationen zur Patrone.
    In diese Tabelle kommen nur die zusätzlichen Infos, in diesem Fall also Abgabedatum und Fremdschlüssel des Käufers und die ID.
     
    Großer Meister, 3. Juli 2008
    #5
  6. \@MegaMac: Dann passt IMHO aber trotzdem was nicht mit dem Datenmodell... *rolleyes.gif*
    Aber bitte, Du musst damit arbeiten.

    Die Schleife müsste wenn dann so aufgebaut sein
    Code:
     
    CptChaos, 3. Juli 2008
    #6
  7. Eig sind die hauptinformationen der Patronen ja auch woanders gespeichert, ich geb euch mal ein ER-Diagramm von meiner Datenbank *wink.gif*



    mit VBA Mehrere Datensätze auf einmal anlegen [​IMG]


    MFG

    MegaMac


    PS:
    So ganz kapier ich aber nicht, was an meiner Falsch sein soll, ob ich jetzt ne Do until oder ne while schleife mache, ist das net iwo egal?

    (nur so aus reiner neugierde xD)
     
  8. mit VBA Mehrere Datensätze auf einmal anlegen

    Du kannst es auch über eine While-Schleife probieren...
    Der Unterschied liegt woanders...

    Das RecordSet wird ausserhalb der Schleife geöffnet und geschlossen.
    Innerhalb der Schleife wird nur mit AddNew und Update gearbeitet.
     
    CptChaos, 3. Juli 2008
    #8
  9. Leider hat dies immernoch nicht den Erfolg gebracht, den ich erwartet hatte.

    Ich verstehs langsam echt nichtmehr, warum er immer nur einen Datensatz anlegt.

    Derzeit sieht mein VBA-Code so aus durch, CptChaos' hilfe:

    Code:
    Edit: Oh, 1 wird jetzt 2 x auf 1 gesetzt, aber ich glaub mal nicht, dass das stört xD, werds trotzdem rausnehmen
     
  10. Bist Du den Code mal in Einzelschritten durchgelaufen?
    Was macht das rst!MoveNew da am Ende (nach dem Schliessen des Recordsets!)?
    Set i = 0 ist falsch/überflüssig, müsste an sich auch eine Fehlermeldung geben.

    Bitte mal folgenden Code testen: Code:
     
    CptChaos, 3. Juli 2008
    #10
  11. was ist denn mit dem Primärschlüssel patronen_nr?
    Wieso fehlt der hier?
     
    Großer Meister, 3. Juli 2008
    #11
  12. ok, 2 Fragen:

    1. Wo soll ich es einbauen, hab noch nie mitm debugger gearbeitet.

    2. Warum fängt der schon ganz oben bei mir an zu meckern, wenn ich versuche meinen normalen Quelltext anlaufen zu lassen, brauch er extra das Formular dafür?


    An Großer Meister: Der ist Autowert und muss doch dann nicht gesetzt werden
     
  13. mit VBA Mehrere Datensätze auf einmal anlegen

    OK, ist patronen_nr der einzige Primärschlüssel? gibt es sonst noch einen eindeutigen Index?

    zu 2:
    ja klar, Me!Text7 bezieht sich ja aufs Formular
     
    Großer Meister, 3. Juli 2008
    #13
  14. Wenn du aus der Tabelle PATRONEN meinst, ist patronen_nr der einzigste Primärschlüssel, der rest ist ja alles nicht eindeutig.

    zu 2: Er meckert ja schon viel früher, schon beim "Dim conn As New ADODB.Connection" meckert der rum xD
     
  15. und "was" meckert er rum?
    vmtl. etwas w/ unbekanntem Objekt oder ungültige Objektreferenz blablubb...
    Ist möglicherweise ein Verweis nicht korrekt gesetzt?

    Wenn Du mit Acc2007 arbeitest musst Du den Verweis auf die entsprechende Library für ADO setzen.
     
    CptChaos, 3. Juli 2008
    #15
Thema:

mit VBA Mehrere Datensätze auf einmal anlegen

Die Seite wird geladen...
  1. mit VBA Mehrere Datensätze auf einmal anlegen - Similar Threads - VBA Datensätze anlegen

  2. VBA - Datensätze ans Ende einer anderen Tabelle kopieren

    in Microsoft Excel Hilfe
    VBA - Datensätze ans Ende einer anderen Tabelle kopieren: Hallo zusammen, ich habe gerade eine "Abrechnungs"-Datei für einen Kindergartenbasar erstellt. Es wäre klasse, wenn man per Schaltfläche die Datensätze aus der Tabelle "Kaeufer" ans Ende der...
  3. Im Endlosformular aktiven Datensatz hervorheben

    in Microsoft Access Hilfe
    Im Endlosformular aktiven Datensatz hervorheben: Hallo liebe Mitglieder. Eigentlich benötige ich was ganz einfaches... Ich lasse mir meine Datensätze (Filme) in einem Endlosformular anzeigen. Jeder Datensatz hat diverse Buttons. Klicke ich auf...
  4. Im Formular mit VBA-Code in Datensätzen blättern

    in Microsoft Access Hilfe
    Im Formular mit VBA-Code in Datensätzen blättern: Hallo Forum, wie kann ich in einem Formular mit VBA-Code nach Datensätzen blättern ? ich möchte in einem numerischen Feld den ersten Datensatz finden, in dem das Feld leer ist. Wie sieht eine...
  5. Primärschlüssel/Fremdschlüssel aus 2.Tabelle automatisch einfügen

    in Microsoft Access Hilfe
    Primärschlüssel/Fremdschlüssel aus 2.Tabelle automatisch einfügen: Hallo zusammen, ich stehe gerade vor dem Problem, dass ich die Datensätze zwischen zwei Tabellen nicht verknüpfen kann. Konkret habe ich die beiden Tabellen tblEigenschaft und tblBasis. In der...
  6. VBA: Hinzufügen von Datensätzen zu einer bestehenden Tabelle

    in Microsoft Access Hilfe
    VBA: Hinzufügen von Datensätzen zu einer bestehenden Tabelle: Hallo, ich möchte zum ersten mal mit loop und einer Wenn-Bedingung mit VBA Datensätze (Felder) aus einer Tabelle in eine andere Tabelle übernehmen und komme nicht weiter. Vielleicht kann mir...
  7. Mit VBA aus geraden und ungeraden Zeilen neuen Datensatz in neuem Blatt erstellen.

    in Microsoft Excel Hilfe
    Mit VBA aus geraden und ungeraden Zeilen neuen Datensatz in neuem Blatt erstellen.: Problem: Habe ein Excelsheet, bei dem ein Datensatz immer aus zwei Zeilen zu je 9 Zellen besteht. Um das ausweren zu können, müsste immer die ungerade Zeile an die obige Zeile angehängt werden. Am...
  8. Datensätze in Bericht nach Anzahl sortieren (VBA)

    in Microsoft Access Hilfe
    Datensätze in Bericht nach Anzahl sortieren (VBA): Hallo liebes Forum! ich lasse mir mit Hilfe eines Suchformulars einen Bericht ausgeben, in dem die Datensätze gruppiert dargestellt werden. Zusätzlich lasse ich mir im Kopfbereich mit einem...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden