Auswahl aus einer Listbox funktioniert nicht richtig

14/05/2008 - 11:35 von pewi | Report spam
Hallo

Ich habe noch ein Problem,
Auf einem Formular habe ich ein Listfeld und 2 Buttons, "Erfassen" und
Löschen, sowie ein Textfeld zum Anzeigen der Daten. Alle Felder sind
ungebunden. Das Listfeld hat als Datenquelle eine Tabelle, Name:
Markt-->Feld 1 = supermarkt, Feld 2=ID-sm. Nachdem ich die Form
aufgerufen habe, kann ich daten erfassen, ist auch OK. Wenn ich auf
einen eintrag in der Listbox klicke, und danach den Button "Löschen"
anklicke, wird auch der angewàhlte datensatz gelöscht.(Daten waren schon
in der Tabelle)
ABER wenn ich nun Daten in meinem Textfeld erfasse, anschließend auf
Löschen klicke, wird Fehlermeldung ausgegeben.

' konnte nicht zu dem angegebenen Datensatz springen'

Wenn ich die Form neu aufrufe, geht es mit den schon vorhandenen
Datensàtzen.

Wer kann mir helfen?


Besten Dank


Hans-Peter Wilker



Mein Code:


Private Sub Befehl17_Click() ' Button erfassen
' Prüfen ob eintrag vorhanden
Dim strName As String
Dim strSQL As String
Dim RC As DAO.Recordset

strName = Nz(Me!Text3)
If strName = "" Then
MsgBox "Kein Name eingegeben"
Exit Sub
End If

If DCount("*", "Supermarkt", "supermarkt = '" & strName & "'") = 0 Then

'Eintragen anfang =
Response = acDataErrAdded
Set DB = CurrentDb ' Datenbank zuweisen
Set RC = DB.OpenRecordset("Supermarkt") ' Tabelle öffnen
With RC
.AddNew ' Neuen Datensatz erstellen.
!supermarkt = strName ' Daten zuweisen
.Update ' Änderungen speichern.
.Close ' schließen
End With
DB.Close ' Datenbank schließen
Me.Liste20.Requery

'Eintragen ende =
MsgBox "Supermarkt wurde erfasst"
Me.Text3 = ""
Else

MsgBox "Den Supermarkt '" & strName & "' gibt es schon"
Me.Refresh
Me!Befehl24.Enabled = True 'LöschButton An

End If

End Sub



Private Sub Befehl24_Click() ' Löschen des aktuellen Datensatzes

MsgBox "löschen"

Me.Recordset.Delete ' Löschen
Me.Liste20.Requery

MsgBox "gelöscht"
Me.Text3 = ""
Me!Text3.SetFocus
Me!Befehl24.Enabled = False ' LöschButton Aus
End Sub


Private Sub Form_Open(Cancel As Integer) 'Voreinstellung übernehmen
Me!Befehl24.Enabled = Fales
Forms!MarktErfassen!Text3 = Forms!HauptForm!FilterSupermarkt
End Sub



Private Sub Liste20_Click() ' Datensatz auswàhlen

DoCmd.RunCommand acCmdSaveRecord
DoCmd.GoToRecord , , acGoTo, Me!Liste20.ListIndex + 1
Me.Text3 = Me!Liste20.Column(1) ' Anzeigen

Me!Befehl24.Enabled = True ' Löschen freigeben


End Sub
 

Lesen sie die antworten

#1 Wolfgang Badura
14/05/2008 - 16:03 | Warnen spam
Hallo Hans-Peter!
Ich habe den dringenden Verdacht, daß das Stmt
DB.Close ' Datenbank schließen


beim Erfassen der Auslöser sein dürfte.
Wolfgang

Ähnliche fragen