German Tabelle speichert Daten falsch oder gar nicht ...

Discussion in 'German Forum' started by JOTHA, Aug 28, 2008.

  1. JOTHA

    JOTHA Well-Known Member Licensed User

    Hallo im Forum,

    Ich bräuchte mal Hilfe zu meinem Speziellen Problem.

    Ich habe das Ganze auch im englischen Forum gepostet, weil ich daran schon tagelang herumlaboriere, aber leider nicht weiterkomme.


    Ich habe das Beispiel stark "abgespeckt", damit es übersichtlicher wird. In diesem Beispiel möchte ich Daten in einer Tabelle speichern.

    Im ersten Schritt sieht es so aus, als ob alles funktionieren würde, aber wenn ich das Beispiel erneut öffne, sind die Daten nicht korrekt gespeichert.

    Beispiel:
    Ich gebe einen ersten Datensatz ein mit Vorname "Max" und Nachname "Muster". Das Ergebnis sollte "Max Muster" sein.
    Dann gebe ich einen zweiten Datensatz ein mit Vorname "Paul" und Nachname "Meier". Das Ergebnis sollte "Paul Meier" sein.

    Wenn ich dann das Beispiel schließe, sollten die Daten automatisch in einer CSV-Datei und einer XML-Datei gespeichert werden.

    Wenn ich dann das Beispiel erneut öffne, wird angezeigt: "Max Nachname" und "Vorname Muster".

    Wenn ich einen dritten Datensatz hinzufüge wird das Problem noch grösser ...

    Weitere Probleme: Der Wert von den RadioButtons "mit Partner" und "ohne Partner" wird überhaupt nicht in der Tabelle gespeichert. Außerdem auch nicht die Häckchen in den CheckBoxen.

    Kann mir bitte jemand helfen? :sign0085:

    Das Beispiel habe ich beigefügt, ich würde mich sehr freuen, wenn das jemand genauer anschauen würde ...

    Vielen Dank im Voraus!
     
  2. klaus

    klaus Expert Licensed User

    Hallo JOTHA,

    Ich bin in dein Programm reingetaucht. Die beiliegende Version, mit Daten, funktioniert.
    Die Codezeilen die Ich geändert habe, habe Ich mit ' Klaus ergänzt. Habe vieleicht die eine oder andere vergessen.

    Das Problem war folgendes:
    - in der Routine FSZNR_LostFocus, die erste Variable die geändert wird, ruft die Routine ButtonAenderungenSichern_Click auf wo Variablen schon geändert werden bevor diese aber upgedatet wurden.
    - das gleiche mit den xxx.SelectedIndex=yyy ruft xxx_SelectionChanged die auch ButtonAenderungenSichern_Click aufruft.

    In den Routinen xxx_LostFocus und yyy_SelectionChanged ist es besser nur die betroffene Variable upzudaten als Alle. War auch Teil vom Problem.
    Code:
    Sub Vorname_LostFocus 
    .
    .
    .
    '  ButtonAenderungenSichern_Click         'Klaus
      TableName.Cell("Vorname",row)=Vorname.Text      'Klaus
    End Sub
    Ich habe in den LoadCSV und SaveCSV das "," durch ";" ersetzt, erleichtert das lesen mit Excel. Kannst Du aber rückgängig machen.

    In den Routinen zum vorwärts und rückwärts blättern habe Ich die row Anweisung auch geändert. Als Beispiel:
    Code:
    Sub ButtonNaechster04_Click
    '  row = (row+1) Mod TableName.RowCount   ' Klaus
      row=row+1
      
    If row >TableName.RowCount-1 Then
        row=
    0
      
    End If
      ShowRow
    End Sub

    '------------------------------------------------------
    ' Vorherigen Datensatz anzeigen
    '------------------------------------------------------
    Sub ButtonVorheriger01_Click
    '  row = (row+TableName.RowCount-1) Mod TableName.RowCount   'Klaus
      row=row-1
      
    If row<0 Then
        row=TableName.RowCount-
    1
      
    End If
      ShowRow
    End Sub
    Grüsse.
     

    Attached Files:

  3. JOTHA

    JOTHA Well-Known Member Licensed User

    Hallo Klaus,

    ich wollte auf deine erneute Hilfestellung antworten, aber das Forum, bzw. die ganze B4P-Seite (Server) war nicht zugänglich. Das war in der Zeit zwischen ca. 09.30 Uhr und 10.30 Uhr. War das bei Dir auch so?

    Durch deine Anregungen mit "Die ganzen ButtonClicks auf eine einzige Routine verzweigen" habe ich jetzt ca. 700 Zeilen weniger Code. Ich denke, daß damit die Ladezeit des Programmes später schon etwas reduziert wird.

    Danach habe ich wie ein Verrückter nach einem möglichen Fehler wegen der Speicherung in der Tabelle gesucht und bin dann auf die Idee gekommen, alle "ButtonAenderungenSichern_Click" (egal wo Sie vorkommen) zu deaktivieren, denn der Fehler mußte meiner Meinung nach außerhalb von "CSVSave" und "CSVLoad" liegen.

    In deiner erneuten Hilfe, die ich ja auch per E-Mail Information in meinem Postfach gefunden habe gebe ich Dir auch völlig Recht mit deiner Aussage: "In den Routinen xxx_LostFocus und yyy_SelectionChanged ist es besser nur die betroffene Variable upzudaten als Alle." Es macht tatsächlich keinen Sinn die restlichen Felder alle neu upzudaten, es ändert sich am Inhalt ja auch nichts.
    Ich möchte eben alle zu "100% wasserdicht" machen, aber in diesem Fall ist das ja Quatsch (und es spart wieder einige Zeilen Code).

    Vielen Dank also nochmals für deine Arbeit !!!

    Gruß
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice