Forums Neueste Beiträge
 

"Sie müssen das aktuelle Feld speichern..." (Fehler 2118) beim Listenfeld

06/11/2009 - 23:40 von Helge Ogan | Report spam
Hallo zusammen,

in meinem Listenfeld lf_Kunde passe ich die Datengrundlage des Feldes an,
indem ich über die Keypress-Eigenschaft den SQL-Code àndere, der die
Datengrundlage des Listenfeldes bildet. (Den vollstàndigen Code hànge ich
unten an [1]) Das funktioniert bei mir unter Access 2003 (im
Speicherformat Access 200) sehr gut.

Unter Access 2000 tritt nun der Fehler 2118 "Sie müssen das aktuelle Feld
speichern, bevor Sie die Aktion AktualisierenDaten ausführen können" auf,
über den ich schon einiges im Netz finden konnte. Der Debugger markiert
bei Ausstieg die Zeile:

Me!lf_Kunde.RowSource = t
-> Me!lf_Kunde.Requery
Me!lf_Kunde.Selected(0) = True

Folgende Änderungen beheben zwar das Problem, bringen aber ungeliebte
Nebenwirkungen:

1.
Forms!f_fehlendeHandzeichen_erfassen.Recalc
Ehrlich gesagt: An welcher Stelle *genau* das hilft, weiß ich gar nicht.
Es wird das Formular neu angezeigt, was zu einem hàsslichen Flackern bei
jeder Eingabe führt.

2.
Die Code-Zeile
Me!lf_Kunde.Selected(0) = True
auskommentiert behebt das Problem ebenfalls. Ich benötige aber einen (und
zwar den ersten) Eintrag automatisch ausgewàhlt, damit die nötige Bedien-
Performance vorhanden ist, die hier zwingend gefragt ist. Der Eintrag
kann auch nicht zu anderem Zeitpunkt, also bei einem anderen Ereignis,
ausgewàhlt werden, weil die Möglichkeit der Mausauswahl bleiben muss.

Meine Fragen:
- Kennt ihr eine bessere Lösung als 1.?
- Kennt jemand eine Lösung mit der Variante 2., die aber auch eine
automatische Auswahl des ersten Eintrags bewirkt
- Gibt es einen Grund dafür, dass das Problem bei Access 2003 nicht
auftritt?

Danke für eure Hilfe unf viele Grüße
helge aus Hamburg

[1]
Private Sub lf_Kunde_KeyPress(KeyAscii As Integer)
Dim q As String
Dim t As String

q = """"

If KeyAscii > 64 And KeyAscii < 123 Then
strSuchwort = strSuchwort & Chr(KeyAscii)
t = "SELECT t_Kunden.ID, t_Kunden.Name & " & q & ", " & q & " &
[Vorname] AS Kunde FROM t_Kunden WHERE t_Kunden.aktiv AND left
(t_Kunden.Name, len(" & q & strSuchwort & q & ")) = " & q & strSuchwort &
q & " ORDER BY t_Kunden.Name & " & q & ", " & q & " & [Vorname];"
ElseIf KeyAscii > 222 And KeyAscii < 253 Then
strSuchwort = strSuchwort & Chr(KeyAscii)
t = "SELECT t_Kunden.ID, t_Kunden.Name & " & q & ", " & q & " &
[Vorname] AS Kunde FROM t_Kunden WHERE t_Kunden.aktiv AND left
(t_Kunden.Name, len(" & q & strSuchwort & q & ")) = " & q & strSuchwort &
q & " ORDER BY t_Kunden.Name & " & q & ", " & q & " & [Vorname];"
ElseIf KeyAscii = 127 Or KeyAscii = 27 Then
strSuchwort = ""
t = "SELECT t_Kunden.ID, t_Kunden.Name & " & q & ", " & q & " &
[Vorname] AS Kunde FROM t_Kunden WHERE t_Kunden.aktiv ORDER BY
t_Kunden.Name & " & q & ", " & q & " & [Vorname];"
ElseIf KeyAscii = 8 Then
If Len(strSuchwort) = 0 Then
Exit Sub
End If
strSuchwort = Left(strSuchwort, Len(strSuchwort) - 1)
t = "SELECT t_Kunden.ID, t_Kunden.Name & " & q & ", " & q & " &
[Vorname] AS Kunde FROM t_Kunden WHERE t_Kunden.aktiv AND left
(t_Kunden.Name, len(" & q & strSuchwort & q & ")) = " & q & strSuchwort &
q & " ORDER BY t_Kunden.Name & " & q & ", " & q & " & [Vorname];"
Else
Exit Sub
End If

Me!lf_Kunde.RowSource = t
Me!lf_Kunde.Requery
Me!lf_Kunde.Selected(0) = True
End Sub


http://www.gebaeudefoto.de
 

Lesen sie die antworten

#1 Karl Donaubauer
07/11/2009 - 11:15 | Warnen spam
Helge Ogan wrote:
...
Unter Access 2000 tritt nun der Fehler 2118 "Sie müssen das
aktuelle Feld speichern, bevor Sie die Aktion AktualisierenDaten
ausführen können" auf, über den ich schon einiges im Netz finden
konnte. Der Debugger markiert bei Ausstieg die Zeile:

Me!lf_Kunde.RowSource = t
-> Me!lf_Kunde.Requery
Me!lf_Kunde.Selected(0) = True
...
Die Code-Zeile
Me!lf_Kunde.Selected(0) = True
auskommentiert behebt das Problem ebenfalls. Ich benötige aber
einen (und zwar den ersten) Eintrag automatisch ausgewàhlt,
...



Teste mal mit der Markiertechnik von www.donkarl.com?FAQ4.12.

Servus
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com

Ähnliche fragen