Hallo Leute,
seit kurzem erhalte ich bei einem seit Jahren laufenden Code die Fehlermeldung: Keine zulässige Textmarke. Der Fehler tritt an folgender Stelle auf:
Set rstESt = dbs.OpenRecordset("ÜBogen_ESt", dbOpenDynaset) ' Ersten übereinstimmenden Datensatz suchen. rstESt.FindFirst strKriterien
Die gesamte Funktion sieht wie folgt aus:
Public Sub Aufbau_Überwachungsbogen(ByVal varÜNr As Long, ByVal varJahr As Long, Optional blnHinweismeldung As Boolean = True) Dim dbs As Database, rstUSt As Recordset, rstUst_VJ As Recordset, rstESt As Recordset, rstLSt As Recordset, rstLSt_VJ As Recordset Dim strKriterien As String, strKriterien_VJ As String Dim varFrage As Integer 'varÜNr = Forms![Aufruf Überwachungsbogen].ÜNr 'varJahr = Forms![Aufruf Überwachungsbogen].Jahr Anfang: ' Verweis auf aktuelle Datenbank holen. Set dbs = CurrentDb ' Suchkriterien definieren. strKriterien = "[ÜBogenNr] = " & varÜNr & " And [Jahr] = " & varJahr strKriterien_VJ = "[ÜBogenNr] = " & varÜNr & " And [Jahr] = " & (varJahr - 1) ' Recordset-Objekt vom Typ Dynaset erstellen, das auf der Tabelle ' "Bestellungen" basiert. Set rstUSt = dbs.OpenRecordset("ÜBogen_USt", dbOpenDynaset) Set rstUst_VJ = dbs.OpenRecordset("ÜBogen_USt", dbOpenDynaset) ' Ersten übereinstimmenden Datensatz suchen. rstUSt.FindFirst strKriterien rstUst_VJ.FindFirst strKriterien_VJ ' Prüfen, ob der Datensatz gefunden wurde. If rstUSt.NoMatch Then rstUSt.AddNew rstUSt!ÜBogenNr = varÜNr rstUSt!Jahr = varJahr If rstUst_VJ.NoMatch = False Then rstUSt!Überschrift1 = rstUst_VJ!Überschrift1 rstUSt!Überschrift2 = rstUst_VJ!Überschrift2 rstUSt!Überschrift3 = rstUst_VJ!Überschrift3 rstUSt!Überschrift4 = rstUst_VJ!Überschrift4 rstUSt!Überschrift5 = rstUst_VJ!Überschrift5 rstUSt!Dauerfristverlängerung = rstUst_VJ!Dauerfristverlängerung rstUSt!Intervall = rstUst_VJ!Intervall rstUSt!Istversteuerung = rstUst_VJ!Istversteuerung rstUSt!ZM_Intervall = rstUst_VJ!ZM_Intervall rstUSt!Spalten = rstUst_VJ!Spalten End If rstUSt.Update End If Set rstESt = dbs.OpenRecordset("ÜBogen_ESt", dbOpenDynaset) ' Ersten übereinstimmenden Datensatz suchen. rstESt.FindFirst strKriterien ' Prüfen, ob der Datensatz gefunden wurde. If rstESt.NoMatch Then rstESt.AddNew rstESt!ÜBogenNr = varÜNr rstESt!Jahr = varJahr rstESt.Update If blnHinweismeldung = True Then MsgBox "Achtung: Die Vorauszahlungen für ESt./KSt. und GewSt. sind manuell nachzutragen !!", vbCritical End If Set rstLSt = dbs.OpenRecordset("ÜBogen_LSt", dbOpenDynaset) Set rstLSt_VJ = dbs.OpenRecordset("ÜBogen_LSt", dbOpenDynaset) ' Ersten übereinstimmenden Datensatz suchen. rstLSt.FindFirst strKriterien rstLSt_VJ.FindFirst strKriterien_VJ ' Prüfen, ob der Datensatz gefunden wurde. If rstLSt.NoMatch Then rstLSt.AddNew rstLSt!ÜBogenNr = varÜNr rstLSt!Jahr = varJahr If rstLSt_VJ.NoMatch = False Then rstLSt!Intervall = rstLSt_VJ!Intervall End If rstLSt.Update End If rstUSt.Close rstUst_VJ.Close rstESt.Close rstLSt.Close rstLSt_VJ.Close dbs.Close Set dbs = Nothing Set rstUSt = Nothing Set rstUst_VJ = Nothing Set rstESt = Nothing Set rstLSt = Nothing End Sub
Alle anderen FindFirst funktionieren einwandfrei.
Was kann denn da passiert sein?
Die Tabelle ist definitiv erreichbar.
Ich bin da echt ratlos.
Ich bin für jede Hilfe dankbar.
Gruß Ahmed