Hallo,
ich möchte meine bisher super funktionierendes kleines Programm dahin gehend erweitern, Werte einer bestimmten Option mit zugeben.
Das ist mein Code.
Private Sub Kategorie()
If rs!Verb = False And rs!regel = True Then
Me.brdkategorie.Enabled = False
MsgBox "abfrage funzt", , "Funktionstest" 'nur als Dummy
Else
If IsNull(Me.brdkategorie) Then
MsgBox "Bitte auswahl treffen", , "Auswahl treffen" 'wird ausgewertet
End If
End If
With rs
Debug.Print Me.txtneuspanisch 'zeigt das richtige Ergebnis
.FindFirst "[Spanisch] = '" & Me.txtneuspanisch & "'"
Debug.Print !Spanisch 'zeigt das richtige Ergebnis
.Edit
Select Case brdkategorie 'Option wird korrekt ausgewertet
Case 1
.Fields("beruf").Value = -1
MsgBox "Beruf gewählt", , "Kategorie Auswahl"
Case 2
.Fields("essen").Value = -1
MsgBox "Futter gewählt", , "Kategorie Auswahl"
Case 3
.Fields("farbe").Value = -1
MsgBox "Farbe gewählt", , "Kategorie Auswahl"
Case 4
.Fields("haus").Value = -1
MsgBox "Haus / Wohnung gewählt", , "Kategorie Auswahl"
Case 5
.Fields("koerper").Value = -1
MsgBox "Körper gewählt", , "Kategorie Auswahl"
Case 6
.Fields("laender").Value = -1
MsgBox "Länder / Orte gewählt", , "Kategorie Auswahl"
Case 7
.Fields("moebel").Value = -1
MsgBox "Möbel gewählt", , "Kategorie Auswahl"
Case 8
.Fields("tier").Value = -1
MsgBox "Tier gewählt", , "Kategorie Auswahl"
End Select
.Update 'Option wird nicht nicht in DB geschrieben
End With
End Sub
Leider wird der Wert nicht in die DB eingetragen. Die Kommentare geben schon an was geht und was nicht.
Was übersehe ich ?
Gruß
Uwe
Hallo,
was ist "rs" und wo wird es deklariert?
Zudem fehlt vermutlich "Option Explicit" in den Modulen.
Trage das in jeden Modulkopf ein und kompiliere das Programm.
Dabei auftretende Fehler müssen allesamt eliminiert werden.
Doch ist alles da, wollte nur nicht den gesamten Code des Formulars posten ^^
Der Recordset wird beim laden des Formulars geladen.
Der Kopf ...
Option Compare Database
Option Explicit
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim savers As DAO.Recordset
Dim rsql As String
Lade des Formulars
Private Sub Form_Load()
Set db = CurrentDb
Set rs = db.OpenRecordset("tabvok", dbOpenDynaset, dbSeeChanges)
Me.txtSearch = ""
refreshData
End Sub
Im Direktbereich wird auch der korrekte Wert des Datensatzes angezeigt. Der Wert der Option wird nur nicht eingetragen.
Hier sollen die Neuen bzw. geänderten Datensätze gespeichert werden
Private Sub cmbsave_Click()
rsql = "SELECT * FROM tabvok WHERE spanisch = '" & Me.txtneuspanisch & "'"
Set savers = CurrentDb.OpenRecordset(rsql, dbOpenDynaset)
With savers
If .EOF Then
.AddNew
.Fields("spanisch") = Me.txtneuspanisch
MsgBox "Vokabel gespeichert"
.Fields("check_ueber") = "0"
Else
.Edit
MsgBox "Vokabel geändert"
End If
.Fields("Deutsch") = Me.txtneudeutsch
.Fields("Spanisch") = Me.txtneuspanisch
.Fields("verb") = Me.chkverb
.Fields("regel") = Me.chkregel
Kategorie
.Update
.Close
End With
checkVerb
refreshData
'Kategorie
Me.brdkategorie = Null
Me.txtneudeutsch = ""
Me.txtneuspanisch = ""
Me.chkregel = False
Me.chkverb = False
End Sub
Eventuell falsche Reichenfolge ?
Btw. bitte nicht über den Code herziehen wird noch entsprechend aufgeräumt ^^
Gruß
Uwe
Es war tatsächlich die Reihenfolge ???
Private Sub cmbsave_Click()
rsql = "SELECT * FROM tabvok WHERE spanisch = '" & Me.txtneuspanisch & "'"
Set savers = CurrentDb.OpenRecordset(rsql, dbOpenDynaset)
With savers
If .EOF Then
.AddNew
.Fields("spanisch") = Me.txtneuspanisch
MsgBox "Vokabel gespeichert"
.Fields("check_ueber") = "0"
Else
.Edit
MsgBox "Vokabel geändert"
End If
.Fields("Deutsch") = Me.txtneudeutsch
.Fields("Spanisch") = Me.txtneuspanisch
.Fields("verb") = Me.chkverb
.Fields("regel") = Me.chkregel
.Update
.Close
Kategorie
End With
checkVerb
refreshData
Me.brdkategorie = Null
Me.txtneudeutsch = ""
Me.txtneuspanisch = ""
Me.chkregel = False
Me.chkverb = False
End Sub