Hallo ich bins mal wieder ::),
könnte mir jemand bitte sagen ob ich mit einer Abfrage Datensätze kontrollieren kann die auf zwei verschiedenen Datensätzen beruhen?
Also zu meinen Problem.
Ich habe Fahrtenbuch Einträge mit KMSTandAnfang und KMStandEnde in einem DS.
Nun würde ich gerne kontrollieren ob der nächste DS korrekt ist also ob der KMSTandAnfang mit dem vorherigen DS KMSTandEnde übereinstimmt.
Hoffe Ihr könnt mein Problem verstehen :)
Danke für Eure Hilfe!!
Albert
Hallo Albert,
du könntest im Unterformular des Fehrtenbuchs ins Ereignis 'Vor Aktualisierung' des Steuerelements 'FB_kmStandAnfang' folgende Prozedur einbauen:
Private Sub FB_KmStandAnfang_BeforeUpdate(Cancel As Integer)
Dim rst As dao.Recordset
Set rst = CurrentDb.OpenRecordset("SELECT MAX(FB_KmStandEnde) AS KM FROM tblFahrtenbuch")
If Me.FB_KmStandAnfang <> rst!KM Then
MsgBox "Der eingegebene km-Stand stimmt nicht mit dem letzten Endstand überein!", vbExclamation, "KM-Stand"
Cancel = true
End If
Set rst = Nothing
End Sub
HTH
Hallo Peter,
hab auch diese Nachricht nicht bekommen :(
Weis nicht was da los war ::)
Wie auch immer vielen Dank erstmal für Deinen Code.
Nur ich hab bereits Datensätze in meineem Fahrtenbuch.. und wollte an diesen DS den code testen.
Also hab ich den KMSTandAnfang geändert und zuerst hat es funktioniert doch wie ich den DS wieder richtigestellt habe hat es immer noch
die msgbox gekommen :(
Weis nicht warum es nicht funktioniert ??
Lg
Albert
Ach noch eines
es gibt mir den Eigenschaften nicht gefunden Fehler zurück :(
Schöne Grüße
Albert
Hi,
an welcher Stelle - setze einen Haltepunkt und spring dann mit F8 durch den Code bis zum Fehler.
Hallo Peter,
hab es mit dem Haltepunkt versucht aber mit F8 komm ich dann nicht weiter :(
Muss doch noch besser debugging ansehen ;)
meld mich aber wenn ich es hinbekommen habe ;D
Schöne Grüße
Albert
Hallo Albert.
Den Haltepunkt setzt du direkt auf den Prozedurkopf ... also bei Private Sub...
Dann startest du dein Formular ganz wie gewohnt und versuchst mal einen km-Stand Neu einzutragen.
wenn du nach der Eingabe das Feld entweder mit der Tab-Taste oder Enter verlassen willst oder aber auch mit der Maus in ein anders Formularfeld wechseln willst, kommt dieser Haltepunkt zum Tragen, da durch obige Aktionen das Ereignis 'Vor Aktualisierung' ausgelöst wird.
Der VBE wird angezeigt und die Programmzeile mit dem Haltepunkt ist gelb hinterlegt.
nun kannst du mit F8 den Code schrittweise durchgehen und siehst dann ganz genau, wo ein Fehler auftritt.
Ich denke, es wird die Zeile Set rst = dao.recordset sein.
Wenn das so ist, schau mal im VBE unter 'Extras' ... Verweise nach ob da ein Verweis auf die 'Microsoft DAO 3.x Object Library gesetzt ist.
Wenn nicht, hole das bitte gleich nach.
In dem Fall dann nach dem Setzen des Verweises das Verweisfenster mit OK schließen, das Formular neu starten und mal sehen obs dann läuft.
HTH
Guten Morgen Peter,
danke für Deine Erklärung! Es kommt langsam etwas Licht ins Dunkle Access Leben :) dank Deiner Hilfe!!
Hab zwar den Code noch nicht mit Haltepunkt durchlaufen lassen aber den Verweis wollte ich gleich kontrollieren.
Nun hab ich da schon wieder ein Problem :(
Es erlaubt mir nicht diesen Verweis hinzuzufügen da er in Konflikt mit einen anderen Verweis steht :(
Aber wo finde ich den wieder ???
Also welcher er ist oder wo ich was ändern muss damit es funktioniert :'(
Danke
Albert
Hallo Albert,
da staunst du - ja, ich bin schon an der Arbeit ;)
Kannst mir einen Screenshot von den gesetzten Verweisen zeigen?
Hallo jo da schau I ;D
brav sag ich nur !!
Hier bitteschön !
Schöne Grüße
Albert
[Anhang gelöscht durch Administrator]
Hallo Albert,
tja - früher Vogel fängt den Wurm ...
Ich habe nicht gewußt, dass du mit Acc2007 arbeitest, wegen der *.mdb war ich der Ansicht du werkelst mit 2003.
Lass im Code mal das DAO weg.
Wenn das nix bringt, kannst du noch den Verweis auf die 'Microsoft Ofice 12 Access database engine Objects' rausnehmen - das Verweisfenster schließen und danach die DAO 3.6 Data Objects setzen.
Das DAO schreibst dann aber wieder rein.
Hallo Peter,
ja das sehe ich auch so mit dem frühen Vogel ;)
Danke für Deine Antwort!
Jetzt hab ich mal das DAO weg gelassen.
Debugging ausgeführt und den KM STand versucht zu ändern.
Leider immer noch das selbe Problem :( Danach wollte ich Microsoft access 12.0. ... entfernen.
Geht leider auch nicht ...wird zur Zeit verwendet und kann deshalb nicht entfernt werden.
hmm na ja Hilfe sagt mir ja auch nicht wirklich was da ich nicht weis wo der Fehler liegen kann :(
Tut mir leid :'(
Albert
Hi,
wo bleibt denn der Code definitiv hängen?
(Haltepunkt auf Prozedurkopf und dann mit F8 ... wie gestern kurz beschrieben.
.... wird verwendet ...
starte die DB nochmal neu mit gedrückter SHIFT-Taste und gehe dann gleich in den Formularentwurf, dann sollte es schon gehen
Hallo Peter,
also ich glaub ich bin zu blöd fürs debugging :'(
Hab das nun so gemacht wie Du das gesagt hast.
Na ja dann werden die nächsten Zeilen immer gelb markiert.
und nach der msgbox also bei
cancel = true kommt die Msgbox das der KM STand nicht in Ordnung ist!
Wenn ich dann bis zum End Sub gehe kommt die Fehler meldung Eigenschaft nicht gefunden :(
Das selbe gilt auch wenn ich den KM STand aber schon geändert habe zu den richtigen...
Danke für Deine Erklärungen!!
Albert
Hmmm...
lass mal den gesamten Code anschauen, den du da verwendest...
des gibts jo net .. :'(
Ich bin auch schon ratlos ::)
Private Sub FB_KmStandAnfang_BeforeUpdate(Cancel As Integer)
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("SELECT MAX(FB_KmStandEnde) AS KM FROM tblFahrtenbuch")
If Me.FB_KmStandAnfang <> rst!KM Then
MsgBox "Der eingegebene km-Stand stimmt nicht mit dem letzten Endstand überein!", vbExclamation, "KM-Stand"
Cancel = True
End If
Set rst = Nothing
End Sub
Na nur Scherz wusst ja von Anfang an nicht was ich mache ???
Danke
OK, Frage - hast du jetzt den Verweis auf DAO 3.x gesetzt oder steht der noch immer auf der Microsoft Office 12 ... ?
Ich bekomme den Objekt 12 nicht heraus :(
Und das andere bekomme ich nicht rein :(
eine nicht ganz tolle Sache :(
Albert
Hallo Albert,
ZitatIch bekomme den Objekt 12 nicht heraus
Und das andere bekomme ich nicht rein
Das kannst du nur dann nicht ändern, wenn z.B. das Formular im Hintergrund in der Formularansicht geöffnet ist.
Ist aber egal, an dem liegt es nicht.
Access 2007 hat allem Anschein nach ein Problem damit, wenn das BeforeUpdate-Ereignis auf ein Textfeld angewendet und die Konstante für Cancel gesetzt wird.
Die Meldung 'Eigenschaft nicht vorhanden' bezieht sich offensichtlich auf die Anweisung 'Cancel = True'
Unter Access 2010 läuft deine DB ohne Problem und ohne dieser leidigen Meldung.
Um nun das zu umgehen kann ich dir im Moment nur eine Alternative anbieten.
Schmeiß das BeforeUpdate-Ereignis raus und setze auf 'Beim Verlassen' eine Ereignisprozedur.
in die fügst dann folgende Zeilen ein.
Private Sub FB_KmStandAnfang_Exit(Cancel As Integer)
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("SELECT MAX(FB_KmStandEnde) AS KM FROM tblFahrtenbuch")
If Me.FB_KmStandAnfang <> rst!km Then
MsgBox "Der eingegebene km-Stand stimmt nicht mit dem letzten Endstand überein!", vbExclamation, "KM-Stand"
Cancel = True
Me.FB_KmStandAnfang = Null
End If
Set rst = Nothing
End Sub
Wenn du den falschen km-Stand NICHT löschen möchtest, nimmst du diese Zeile aus dem Code raus ... Me.FB_KmStandAnfang = Null
LG
Guten Morgen Peter,
hab den Code geändert hab aber bei meiner DB immer noch den selben Fehlter :(
Cancel = True
soweit ich das sagen kann :(
Es ist so wenn ich den Datensatz ändere auf den korrekten KM Stand immer noch die selbe Msgbox auftritt.
Lg
Albert
Hallo Albert,
E-Mail mit der geänderten und unter 2007 getesteten DB (obige Änderungen funktionierend) ist unterwegs.
Hallo Peter,
hab grad die DB getestet leider ohne Erfolg.
Immer noch das selbe Problem :(
Was mach ich jetzt blos??
Kann man die DB oder Access reparieren?
Hab schon komprimiert und repariert das hilft aber mal nicht :(
Schöne Grüße
Albert
Hallo Albert,
das ist ja zum 'junge Hund kriegen' - ich kann nur nochmals betonen, dass das Ding, so wie isch sie dir geschickt habe unter Acc2007 bei mir fehlerlos läuft.
Was mich auch ein wenig nachdenklich stimmt ist das da ...
ZitatIch bekomme den Objekt 12 nicht heraus
Und das andere bekomme ich nicht rein
Das schaut ja fast so aus als hätte deine Office-Installation wirklich einen Schlag
Da bin ich momentan mit meinem Latein ein bisschen am Ende.
Hast du alle Updates und Service-Packs für Access und Office 2007 installiert?
Hast du vielleicht einen 2. Rechner, auf dem du die DB laufen lassen kannst?
ZitatKann man die DB oder Access reparieren
Ja, kann man - mit deiner Datei hast du das ja schon gemacht.
Die Office-Installtion kann man mit Hilfe des Original-Installationsmediums auch reparieren.
Systemsteuerung ... Programme und Funktionen ... Office 2007 ... markieren und dann Oben im Fenster 'Ändern auswählen'
Wenn du dann auf 'Features und Funktionen hinzufügen' klickst schau mal ob in der Auswahl ALLE Dropdownfelder weiß sind.
Wenn ja das brich das ab und wähle im Dialog statt dessen 'Reparieren' aus.
Wenn graue Felder zu sehen sind, dann klapp das ERSTE DropDown (Microsoft Office) auf und wähle da 'Alles vom Arbeitsplatz starten' aus
Danach jeweils den Aufforderungen und Dialogen folgen.
Guten Morgen Peter!
danke für Deine Mail!!
Das es bei Dir funktioniert hab ich nie in Frage gestellt!! :)
Hab gestern auch noch herum probiert und die original cd office eingelegt und auf reparieren geklickt ... hat alles noch nichts genutzt!
Muss ich denn bei Deiner Erklärung die CD in den Computer legen?
Ich habe auch einen anderen Rechner ja und werde versuchen das es dort funktioniet.. gebe Dir natürlich ein feetback diesbezüglich.
In der Zwischenzeit werde ich mal probieren es so zu erledigen wie Du mir das vorgeschlagen hast!
Vielen Dank erstmal wieder!!
Lg
Albert
Hallo Peter,
so hab meine DB bei einen anderen Rechner ausprobiert.. leider das selbe Problem!
Hab den Verweis DAO 3,6 in meine Verweise bekommen nachdem ich Microsoft Objekt 12 Database ..... herausgenommen habe???
Microsoft Access 12.0 Objekt Library bekomme ich nach wie vor nicht heraus!
Weis nicht ob ich nun Microsoft 12.0 database Engine Object Library wieder anklicken soll bzw.muss??
Bekomme ich auf alle Fälle nicht mehr angeklickt solange ich DAO 3.6. habe.
Hoffe Du weist weiter ? :(
Soll ich Office 2007 nochmal neu installieren?? Ach ja es ist eine gekaufte Lizenz ;) Wenn sich jemand wundern sollte :)
Schöne Grüße
Albert
Hallo Albert,
ZitatHab den Verweis DAO 3,6 in meine Verweise bekommen nachdem ich Microsoft Objekt 12 Database ..... herausgenommen habe
Das ist ein normales Verhalten - du kannst nur DAO ODER MS Office 12 ... anhaken, beide zur gleichen Zeit geht nicht.
Nur, an dem liegt es nicht - du kannst ruhig wieder DAO den Haken wegnehmen, DANN musst du das Verweisfenster schließen, DANN wieder öffnen und den Verweis auf MS Office 12 database Engine Objects Library auswählen.
Hast du auch
meine DB auf beiden Rechnern getestet?
Du kannst versuchen die Office-Installation zu reparieren, so wie ich im Beitrag beschrieben habe.
Wenn das auch nix nutzt - OK versuch mal eine Neuinstallation.
ABER GANZ WICHTIG!
Führe 'Reparieren' oder die Neuinstallation IMMER mit der Auswahl
'Alles vom Arbeitsplatz starten' aus - alles Andere ist MIST!
ZitatAch ja es ist eine gekaufte Lizenz
Ein Schelm, der anderes denkt ... :D
Hallo Peter,
vielen Dank für Deine mail!
Na ja werd mal schauen !
Ja hab es auch auf andenern Rechnern probiert aber funktioniert auch nicht!
Das gibt es wohl nicht das alle meine Installationen falsch sind oder schon??
Werd es neu installieren :( Pff
Schönen Gruß
Albert
Hallo,
nun, ich denke nach der Verlegung des Codes auf das Form_BeforeUpdate - Ereignis sollte das Ding nun laufen.
Neuinstallation abgewendet ... ::)
Hallo Peter!!
Ja das hast Du wieder mal bravourös hinbekommen ;D
Sehr herzlichen Dank!!!
Albert