wer von den Profis hat sich schon mit diesem Probelm herumgeschlagen:
Dim Kunde as Recordset
Dim Kunde_alt as Recordset
dim
Set Kunde = currentdb.openrecordset("Select * from Kunde", dbopendynaset)
Set Kunde_alt = currentdb.openrecordset("Select * from Kunde_alt",
dbopendynaset)
do while not Kunde_alt.eof
Kunde.addnew
Kunde!NName = Kunde_Alt!NName
Kunde!Geburtstag = Kunde_Alt!geburtstag
If Kunde!Geburtstag = now then <- genau da knallts.
Wenn aus dem gerade geschriébenen Kunde-datensatz der Feldinhalt gelesen
wird, erscheint die Meldung 'Datensatz ist gelöscht'.
ABER NICHT IMMER! Teilweise nur im letzten Durchlauf, teilweise konnte er im
gleichen Datensatz alle Werte wieder auslesen, nur das letzte Feld nicht!
Außerdem kommt der Fehler sehr sporadisch.
Mach ich danach einn Update, steht der Wert richtig im Feld.
Bitte gebt mir nicht den Tip, den Wert in eine Variable o.ä. zu schreiben.
In unserem Quellcode ist diese Art von Programm an tausemnden von Stellen,
ich will das nicht alles ändern.
Lieblingsspruch: das ging doch alles schon mal.
Sonstiges: Access 97, SQL-Server 6.5 und 7.0, Win NT, alles neueste
Versionen, auch ODBC.
Ach ja: weitaus häufiger kommt der Fehler im ODBC-Direct Bereich.
Mit der Hoffnung auf Hilfe...
Peter Essig
Dein Konstrukt würde ich für so was nicht verwenden. Eine
SQL-Aktionsabfrage tut's besser.
An der Stelle, wo Du behauptest, der Datensatz sei geschrieben,
ist_er_noch_nicht_geschrieben, denn es fehlt ein Kunde.Update
BTW: If Kunde_Geburtstag = Now... Das würde ja bedeuten, dass Du
in Deiner Db bereits einen Kunden erfasst hast, der gerade eben
(now!) geboren wurde. Ich denke, für so einen Vergleich musst Du
aus Kunde_Geburtstag und aus now() nur Tag und Monat extrahieren.
Gruß
Frank
Peter Essig <peter...@compdata.de> schrieb in im Newsbeitrag:
94085694...@news.neckar-alb.de...
Vielleicht hilft ja der timestamp.
Schönen Tag noch,
Christoph
(Please post ALL replies to the newsgroup only unless indicated otherwise)
Peter Essig schrieb in Nachricht <94085694...@news.neckar-alb.de>...
Christoph Muthmann <c.mut...@gmx.de> schrieb in im Newsbeitrag:
#3HON3uH$GA....@cppssbbsa02.microsoft.com...
> (http://www.eu.microsoft.com/germany/msdn/zeitschrift/) "Access
und
> eingebundene Tabellen" von Marco Gerlach an.
>
leider ist der Link ungültig, und als er noch gültig war, stand
er nicht öffentlich zur Verfügung.
Weil ich die BP zu Hause hab, hier sinngemäß nur folgendes: beim
Update wird, trotz PK, nochmal über alle Spalten nach
Veränderungen geschaut. Dabei können bei nicht exakten Datentypen
Probleme (Rundung) auftreten, welche zu Meldungen wie "Datensatz
wurde zwischenzeitlich von einem anderen Benutzer geändert"
führen können. Das Problem kann mit einer Timestamp-Spalte
umgangen werden; wenn diese vorliegt, wird auch nur diese für die
Validierung herangezogen.
Dieser Artikel ist ausgezeichnet geeignet, Problemen beim Zugriff
auf ODBC-Datenquellen (vor allem natürlich SQL-Server) zu
entgehen und diesen Zugriff erstmal zu verstehen.
Wenn jemand Interesse hat, mach ich mal ein OCR drüber und mail
ihn dann.
Gruß
Frank
Falls der Marco mitliest, kann er ja nochmal den Artikel in der Newsgroup
veröffentlichen.
Schönen Tag noch,
Christoph
(Please post ALL replies to the newsgroup only unless indicated otherwise)
Frank Hammerschmidt schrieb in Nachricht ...
He, hallo, ihr seid ja witzig...
eigentlich wollte ich ja wissen, wie es zu diesem Fehler kommt....
kann man mir vielleicht auch ein E-Mail mit dem Artikel schicken???
Peter
weiß ich. Aber wie bereits erwähnt, ist das Programm alt und ich müßte 1000
Änderungen machen.
Mir gehts ja nur darum, wieso das nicht geht.
> An der Stelle, wo Du behauptest, der Datensatz sei geschrieben,
> ist_er_noch_nicht_geschrieben, denn es fehlt ein Kunde.Update
Nene, warum kann er dann in 99% noch gelesen werden? Er hat die Info noch im
Speicher!
>
> BTW: If Kunde_Geburtstag = Now... Das würde ja bedeuten, dass Du
> in Deiner Db bereits einen Kunden erfasst hast, der gerade eben
> (now!) geboren wurde. Ich denke, für so einen Vergleich musst Du
> aus Kunde_Geburtstag und aus now() nur Tag und Monat extrahieren.
au, das ist doch nur ein Beispiel. Ich werd das nächste mal was anderes
nehmen..... ;-)
>
> Gruß
>
> Frank
>
>
Frank
Peter Essig <peter...@compdata.de> schrieb in im Newsbeitrag:
9409243...@news.neckar-alb.de...
Gruß Volker
Peter Essig schrieb:
Feuer
Peter Essig <peter...@compdata.de> schrieb in im Newsbeitrag:
94085694...@news.neckar-alb.de...