PDA

Vollständige Version anzeigen : Formular: Fehler bei Dateneingabe


BoskoBiati
27.03.2006, 14:12
Hi,

ich mühe mich seit einiger Zeit durch Access und durch das Forum, da ich eine dbase-Datenbank (ohne irgendeine Doku) durch eine Neue ersetzen soll. Ich bin auch schon relativ weit gekommen, habe aber seit ein paar Tagen eine Fehlermeldung, in einem Formular zur Eingabe neuer Aufträge, bei folgendem Eintrag:

Private Sub Auftraggeber_Dirty(Cancel As Integer)
Response = acDataErrAdded
Dim rs As New ADODB.Recordset

rs.Open "tblKunden", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs.AddNew
rs!AUFTRGEBER = NewData
rs.Update

rs.Close: Set rs = Nothing
Set db = Nothing
End Sub

Sobald ich versuche, im Kombfeld "Auftraggeber" ein Zeichen einzugeben, erhalte ich die Fehlermeldung "Laufzeitfehler (80040e21)" (doppelte Daten in Index, Primärschlüssel oder Beziehung). Auch eine Auswahl aus vorhandenen Daten in der hinterlegten Liste bringt den gleichen Fehler. Da ich bis Ende letzter Woche keinen Fehler hatte und keine Änderungen an dem Formular vorgenommen habe, weiß ich nicht woran das liegen könnte.
Hat irgendjemand eine Idee, warum rs.update nicht funktioniert?

Danke für etwas Hilfe

Gruß

Edgar

Manuela Kulpa
28.03.2006, 09:52
Hi Edgar,

hmmm, hat denn die Tabelle tblKunden einen Primärschlüssel? Wenn ja, was steht den z.B. in AUFTRGEBER bzw. NewData drin? Ich denke eher, dass dies ein Schlüssel-Problem ist und nichts mit deiner Programmierung zu tun hat.

Gruß

Anne Berg
28.03.2006, 10:18
Was hast du dir denn da zusammengebastelt? Response und NewData tauchen normalerweise in einem NotInList-Ereignis auf... :confused:

BoskoBiati
28.03.2006, 15:40
@Manuela,
die Tabelle hat einen Primärschlüssel, nämlich KdNr, und beim Debuggen wird bei AUFTRGEBER = Null und NewData = Leer angezeigt. Ich vermute, daß beim Öffnen des Formulars kein neuer Datensatz angelegt wird, bzw. nicht der letzte Datensatz als Ausgangspunkt gewählt wird, weiß aber nicht warum plötzlich nicht mehr.

@Anne,
ehrlicherweise nicht gebastelt, sondern abgekupfert. Aus irgendeinem Beitrag diese Routine übernommen und mit eigenen
Daten gefüllt. Lief auch eine Weile ohne Probleme, spinnt aber jetzt rum.

Gruß

Edgar :confused: :confused:

Anne Berg
28.03.2006, 17:40
Wenn du nicht erklären kannst, was Response und Newdata in dieser Routine zu suchen haben, weißt du offensichtlich nicht, was du da tust. Ich schlage vor: schiebe den Code ins NotInList-Ereignis.

Ich gehe dabei davon aus, dass derart grundlegende Funktionalitäten in A2003 weiterhin Gültigkeit haben und man nicht Access / VBA neu erfunden hat.

BoskoBiati
28.03.2006, 20:51
Hallo Anne,

mag ja sein, daß in dieser Routine response und NewData nicht rein gehören.
Aber es hat funktioniert. Im Übrigen ist die Not_in_List Routine korrekt vorhanden und funktioniert (allerdings nur dann, wenn das vorhandene Problem gelöst ist!). Leider bin ich 1. kein Programmierer, 2. nur hie und da mehr minutenweise als stundenweise mit Access beschäftigt und 3. zwar darüber im Klaren was ich will, aber momentan noch überwiegend damit beschäftigt, mich in die Tiefen des Programms vorzuarbeiten, statt Ergebnisse zu produzieren, wobei dieses Forum eine der wenigen Hilfen ist, die ich habe. Die Methode learning by doing ist manchmal sehr anstrengend und man freut sich ab und an, wenn man auch mal auf eine dumme Frage eine Antwort findet (wie in der Schule auch, wenn man was nicht kapiert hat.) Trotzdem Danke für die Antworten.

Gruß

Edgar :depressed

Anne Berg
28.03.2006, 21:51
Die Methode learning by doing ist manchmal sehr anstrengend... das kann ich nur bestätigen, aber ich kann auch Hoffnung machen: es kommt durchaus etwas dabei heraus!

Ich wollte dich nicht kritisieren, sondern dich auf den Weg zur Lösung deines Problems bringen.

Meiner Meinung nach wird da der möglicherweise richtige Code im falschen Ereignis ausgelöst.

BoskoBiati
04.04.2006, 09:08
Hallo Anne,

nachdem ich einige Tage außer Gefecht war, habe ich mich gestern mal wieder meinem Problem widmen können. Du hast recht, die genannten Codes sind in der angesprochenen Routine überflüssig und ich habe sie entfernt. Das angesprochene Problem besteht aber weiterhin. Ich habe mein Sicherheitsbackup mal wieder ausgepackt und da läuft Alles ohne Mucken. Eine Überprüfung aller Sub´s und aller Formulareinstellungen hat keine Unterschiede in den Versionen gezeigt. Das Ganze ist mir äußerst schleierhaft.
Ich werde jetzt auf der lauffähigen Version weiter aufbauen.
Ansonsten vielen Dank.

Gruß

Edgar

BoskoBiati
25.04.2006, 15:05
Hallo nochmal!

In den letzten Wochen habe ich nur wenig an meiner Db arbeiten können. So bin ich jetzt erst so weit, das Problem der Datenübergabe aus dem UF nochmal anzugehen. Die Fehler sind soweit ausgemerzt und dank DonKarl 4.13 Variante 2 klappt f a s t Alles. Leider wird in meinem HF der neue Eintrag nicht mehr angezeigt. Er ist zwar im Kombi auswählbar, aber eigentlich sollte der Kundenname noch im Formular eingetragen sein.
Was mache ich falsch?

Gruß

Edgar

Anne Berg
25.04.2006, 15:16
Datenübergabe aus dem UFO? - Davon war aber bislang noch nicht die Rede, oder habe ich etwas übersehen?

Wenn das Hinzufügen neuer Datensätze über ein Kombifeld Auswirkungen auf die Datenherkunft des Formulars hat, solltest du mit einem Me.Requery evtl. Erfolg haben.

BoskoBiati
26.04.2006, 05:51
Hallo Anne,

Du hast recht, die Frage war bisher hier so nicht gestellt worden. Ich habe den falschen Thread erwischt. Mein Problem mit dem UFO gehört nicht hier her. Ich werde die Frage in meinem anderen Thread stellen. Danke Dir für den Hinweis. Das hier erwähnte Problem ist übrigens gelöst bzw. hat sich verflüchtigt.

Gruß

Edgar :happy: