Tabelle füllen mit externer Datei

Hallo Rainer,

ha- Dein Programm ist gut…was wäre „mein“ Programm ohne deine tolle Unterstützung…

Stimmt schon, der Lieferant ist irgendein dummes Programm was nicht überprüft ob die Daten OK sind (ich hab’s nicht geschrieben, ich schwöre!).

Ich teste jetzt alles durch und wenn’s nicht auffällt das ein Datensatz fehlt -weil wichtig ist nur der Teil „MER10025Q0S3J“,
die übrigen Daten von der Zeile brauchen wir nur, weil die Zeile vollständig sein muss und man anhand von Datum sehen kann wie aktuell der Datensatz ist.

Die anschließende Besprechung über den Code wird wohl etwas länger dauern jetzt :smile:

Danke & Gruss Gerd

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Rainer,

ich habe noch eine Zeile hinzugefügt und zwar:

Private Sub Start_Click()
Dim i As Integer
CurrentDb().Execute „DELETE Sdstask.* FROM Sdstask“

Jetzt wird bei jedem Start die Tabelle gelöscht (und es funktioniert sogar), hoffe es ist für Dich OK.
Bin noch am testen…Danke nochmal!

Gruss Gerd

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Gerd,

ich habe noch eine Zeile hinzugefügt und zwar:

Private Sub Start_Click()
Dim i As Integer
CurrentDb().Execute „DELETE Sdstask.* FROM Sdstask“

Jetzt wird bei jedem Start die Tabelle gelöscht (und es
funktioniert sogar), hoffe es ist für Dich OK.

klar, das habe ich nur vergessen. Neulich habe ich daran gedacht, aber da war ich gerade im Auto auf dem Weg nach Hause. Bis ich da war, war’s schon wieder vergessen. :smile:

Gruß Rainer

Hallo Rainer,

was sogar im Auto denkst du über VB nach…muss ich mir Sorgen machen :smile:

Habe noch drei Dinge gefunden, die ich nicht berücksichtig hatte, kannst du mir bitte nochmal dabei helfen?

Ich fange mal mit dem schwierigsten an…

3-1 Regel:
Wir gehen ja hin und synchronisieren von allen 4 Servern alle .yes files. Ist es Möglich, dass wenn auf 3 Server im .yes File ein Hostname steht („1234test0084“) und auf einem Server nicht, dass man diesen Hostname auf dem 4ten Server im .yes File löscht? Ich weiß es ist etwas knifflig, aber wenn auf 3 .yes Files ein Hostname steht und in einem nicht, ist es so gewollt, dass nämlich dieser nochmal versendet werden soll und wir würden dieses „gewollte“ dadurch stärken, indem wir bei den übrigen 3 .yes Fliles den Hostname auch entfernen.

Meinst du wir können das umsetzen?

Gruss Gerd

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Gerd,

was sogar im Auto denkst du über VB nach…muss ich mir Sorgen
machen :smile:

nein, das ist bei mir immer so. Irgend etwas will das Gehirn zu tun haben. Im ‚Leerlauf‘ kommen dann die unerledigten Kleinigkeiten hoch.
Deshalb kann ich keine fast erledigten Projekte übers Wochenende liegen lassen … :smile:

Habe noch drei Dinge gefunden, die ich nicht berücksichtig
hatte, kannst du mir bitte nochmal dabei helfen?

Ich fange mal mit dem schwierigsten an…

3-1 Regel:
Wir gehen ja hin und synchronisieren von allen 4 Servern alle
.yes files. Ist es Möglich, dass wenn auf 3 Server im .yes
File ein Hostname steht („1234test0084“) und auf einem Server
nicht, dass man diesen Hostname auf dem 4ten Server im .yes
File löscht? Ich weiß es ist etwas knifflig, aber wenn auf 3
.yes Files ein Hostname steht und in einem nicht, ist es so
gewollt, dass nämlich dieser nochmal versendet werden soll und
wir würden dieses „gewollte“ dadurch stärken, indem wir bei
den übrigen 3 .yes Fliles den Hostname auch entfernen.

Meinst du wir können das umsetzen?

Ja klar, geht nicht gibt’s nicht. :smile: Aber ich fürchte, das wird ein größerer Umbau. Einfach alle Daten zusammenschreiben, doppelte ausfiltern und dann das Ergebnis an alle verteilen geht dann nicht mehr. Einen Schnellschuss habe ich jetzt nicht, das muss ich mir erst mal in Ruhe durch den Kopf gehen lassen. Da kommen sicher auch noch Fragen … Dann weiß ich ja, was ich am WE treibe. :smile:

Ich melde mich wieder.

Gruß Rainer

Hallo Rainer,

uff…dachte mir das es schwierig wird! Aber nicht am Wochenende, spann Dich aus, habe Dich in der Woche schon genug im Beschlag :smile:

Gruss Gerd

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Gerd,

uff…dachte mir das es schwierig wird!

Schwierig ist nicht ganz der richtige Ausdruck.
Schwierig ist das eigentlich nicht, nur passt der bisherige Code nicht.

Das bedeutet einfach nur, daß ich von Vorn anfange.

Kannst Du die anderen beiden Punkte auch noch verraten? Ich möchte vermeiden, daß ich jetzt einen neuen Code schreibe, den ich wieder weg werfen kann, wenn ich die letzten beiden Punkte erfahre.

Aber nicht am
Wochenende, spann Dich aus, habe Dich in der Woche schon genug
im Beschlag :smile:

Zu spät, der Kopf arbeitet schon daran. :smile:
Ich geh so lang mal wieder etwas arbeiten …

Gruß Rainer

Hallo Rainer,

ja sorry, ist blöd gelaufen, zumal wir so einen irren Code schon hatten und alles perfekt lief! Auf die Gefahr hin, dass du jetzt nach hinten kippst, hier Punkt 2 und 3.

Punkt 2 und 3 ist nur eine Sicherheit:

2:

  • die .yes files, die eingelesen werden (vor der Bearbeitung) in einer Tabelle „YesVor“ wie folgt zwischenspeichern:

Server SDSLoad Host Time Date
1 cirtinstlf–1.yes 1231xx3lbff1j 05:12:56 12/17/07
2 office–1.yes 1231xx3lbff1j 05:12:56 12/17/07

Diese Tabelle wird nach jedem Durchlauf gelöscht und dient nur zur Überprüfung für den worst case. .

3:
Das Gleiche wie oben (wird auch nach jedem Lauf gelöscht)nur nach dem Durchlauf, diesmal können wir den Punkt Server weg lassen (weil die restlichen Server die gleichen Informationen haben), also die .yes Files sind nur einmal aufgeführt.
Die Tabelle nenne ich YesDone.

Ich lege jetzt die Tabellen an, mit den Feldnamen wie oben beschrieben und hoffe du bist jetzt nicht sauer…

Gruss Gerd

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Gerd,

ja sorry, ist blöd gelaufen, zumal wir so einen irren Code
schon hatten und alles perfekt lief!

ja, ist halt Pech. Dafür blicke ich jetzt durch und weiß, was passieren soll. Das vereinfacht das Ganze schon etwas. Noch mal genau darüber nachdenken, eventuell lässt sich da auch noch etwas vereinfachen, beschleunigen. :smile: Mal sehen, was ich in der trickkiste noch so finde.

Als Vorbereitung darauf mal noch eine Frage …

Die Hostadressen, die ja überall vorkommen … Haben die eigentlich immer die selbe Länge? Die ‚Felder‘ mit dem Datum haben ja immer die selbe Länge, dann kann ich eventuell mit ‚Type‘ den Code stark vereinfachen. Davon wird das Ganze übersichtlicher und schneller, weil die ganzen Stringmanipulationen wegfallen könnten.

Auf die Gefahr hin, dass
du jetzt nach hinten kippst, hier Punkt 2 und 3.

Punkt 2 und 3 ist nur eine Sicherheit:

2:

  • die .yes files, die eingelesen werden (vor der Bearbeitung)
    in einer Tabelle „YesVor“ wie folgt zwischenspeichern:

Server SDSLoad Host Time Date
1 cirtinstlf–1.yes 1231xx3lbff1j 05:12:56
12/17/07
2 office–1.yes 1231xx3lbff1j 05:12:56 12/17/07

Diese Tabelle wird nach jedem Durchlauf gelöscht und dient nur
zur Überprüfung für den worst case. .

OK, das ist ja kein Problem.

3:
Das Gleiche wie oben (wird auch nach jedem Lauf gelöscht)nur
nach dem Durchlauf, diesmal können wir den Punkt Server weg
lassen (weil die restlichen Server die gleichen Informationen
haben), also die .yes Files sind nur einmal aufgeführt.
Die Tabelle nenne ich YesDone.

Auch verstanden.

Ich lege jetzt die Tabellen an, mit den Feldnamen wie oben
beschrieben und hoffe du bist jetzt nicht sauer…

Nein, warum soll ich sauer sein? Jetzt verstehe ich besser, was passieren soll und kann den ganzen Vorgang eventuell stark vereinfachen. Davon wird das ganze stabiler, nicht so störanfällig und eventuell sogar schneller.

Noch ein Vorschlag:

Das Tool soll ja automatisch ablaufen, gelegentlich kommt es vor, daß Daten fehlerhaft sind und nicht verarbeitet werden können, wie wäre es mit einem Error-Logfile?

Gruß Rainer

Hallo Rainer,

plumps - das war der Stein der mir vom Herzen gefallen ist, denn schließlich steckte schon viel Arbeit von Dir drin und es lief soooo schön…

Die Hostadressen, die ja überall vorkommen … Haben die
eigentlich immer die selbe Länge?

Tja was soll ich dazu sagen, rein Theoretisch ja, aber in 2% der Fälle können sie auch kürzer oder länger sein und von den angegebenen Zeichen abweichen :frowning:

können, wie wäre es mit einem Error-Logfile?

Ach Rainer, sowas traue ich mich ja gar nicht mehr zu fragen, war ja schon happy dass alles lief…

Gruss Gerd

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Gerd,

Die Hostadressen, die ja überall vorkommen … Haben die
eigentlich immer die selbe Länge?

Tja was soll ich dazu sagen, rein Theoretisch ja, aber in 2%
der Fälle können sie auch kürzer oder länger sein und von den
angegebenen Zeichen abweichen :frowning:

Schade, damit ist meine Idee: ‚Einlesen mit einem Befehl ohne Schleife‘ gestorben. :frowning: Das wäre ja auch zu einfach gewesen.

können, wie wäre es mit einem Error-Logfile?

Ach Rainer, sowas traue ich mich ja gar nicht mehr zu fragen,
war ja schon happy dass alles lief…

Ich halte es aber für nötig und wichtig.

Ich schreibe dann mal die Fehlerhaften Zeilen in ein ErrorLog mit Datum. … 'SycErrorTT-MM-JJJJ.log". Dann kannst Du am nächsten Tag sehen, was nicht synchronisiert werden konnte.

Gruß Rainer

Hallo Rainer,

hört sich prima an mit dem Error Log!

Ach ja, falls meine super Exceptionprogrammierung Dir im Weg sein sollte…sag mir Bescheid, ich versuche dann eine andere Lösung (vielleicht direkt in Tabelle schreiben, hätte auch den Vorteil, dass es nicht auf 3 Exceptions begrenzt ist) zu finden, ansonsten lassen wir es so.

Gruss Gerd

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Gerd,

Ach ja, falls meine super Exceptionprogrammierung Dir im Weg
sein sollte…

nein, gar nicht. :smile:

sag mir Bescheid, ich versuche dann eine andere
Lösung (vielleicht direkt in Tabelle schreiben, hätte auch den
Vorteil, dass es nicht auf 3 Exceptions begrenzt ist)

Das ist ein Grund. Eine Datei ist aber leichter zu lesen, als eine Tabelle einer Datenbank. Eine etwas kompliziertere Auswertung über die Exceptions ist nicht zu erwarten … Ich persönlich würde eine Textdatei vorziehen. :smile: Aufbai ähnlich der vorhandenen Dateien, nur Datum und Zeit sind da überflüssig. Die Anzahl ist dann beliebig.

Gruß Rainer

Hallo Rainer,

äh…dann lass ich es jetzt so? Meine 3 Exceptions sind ja in einer bzw. 3 Textfelder definiert, sie werden nur in eine Tabelle geschrieben, dass sie auch beim schließen von Access erhalten bleiben.

Gruss Gerd

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Gerd,

äh…dann lass ich es jetzt so?

ja. Ich bereite das nur schon vor, daß es auch mehr werden können, aus einem File gelesen werden können, ohne daß sich viel am Code ändert.

Meine 3 Exceptions sind ja in
einer bzw. 3 Textfelder definiert, sie werden nur in eine
Tabelle geschrieben, dass sie auch beim schließen von Access
erhalten bleiben.

Und ich übernehme die dann bei der nächsten Version alle in einen einzigen String, als wäre sie mit Get aus einer Datei gelesen worden.
Das vereinfacht das Programm auch schon. :smile:

Ich brüte mal erst noch ein paar Runden, bevor ich anfange zu tippen.

Gruß Rainer

Hallo Rainer,

OK, dann machen ich nix im Moment :smile:

Danke & Gruss Gerd

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Guten Morgen, Rainer!

Wir haben ja schon einen halben Meter Code hier untergebracht :smile:

Sendest duz mir bitte eine kurze Mail als Info, damit ich Dich hier in der Liste wieder finde (manchmal kommt eine autom. Info von w-w-w nicht an).

Danke & Gruss Gerd

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]