Hallo,
ich darf mich seit kurzem plötzlich mit diesem Laufzeitfehler rumschlagen (Der von Ihnen eingegebene Ausdruck enthält einen Feld-, Steuerelement- oder Eigenschaftsnamen, der von MS Office nicht gefunden werden kann.). Woher immer der auch kommt?!
Also er tritt in folgender Zeile auf:
If Me!ctrlDKEinAus = False Then
...
Nun dachte ich, dass er den angegebenen Steuerelementinhalt bzw den Feldnamen, auf welchen verwiesen wird, nicht finden kann. Habe allerdings alles kontrolliert. An der dem Formular zugrunde liegenden Abfrage wurde nichts geändert, an der Tabelle und dem Spaltennamen nicht, die Checkbox ctrlDKEinAus heisst auch so und sie ist ein Ja/Nein-Feld. Was kann diesen Fehler denn noch auslösen??
Hallo,
wenn denn alles kontrolliert und für i. O. befunden wurde, könnte die DB zerschossen sein. In diesem Fall eine neue leere DB anlegen und dort alles aus der alten importieren.
Drastische Maßnahme....
Hat aber leider auch nicht funktioniert. :-\ Ist echt komisch, von dem ganzen Sub, der schon recht lang ist, ist halt nur dieser Teil plötzlich fehlerhaft:
Zitat'If Me!ctrlDKEinAus = False Then
'Forms!frm1!cmbStatus.RowSource = "SELECT * FROM [...]"
'Else
'Forms!frm1!cmbStatus.RowSource = "SELECT * FROM [...]"
'End If
und in der ersten Zeile bleibt er, wie gesagt, hängen. Manchmal hat Access aber auch echt komische Aussetzer...
Hallo,
na, so schlimm ist es mit einer neuen DB ja auch nicht, dauert höchstens 1 Minute...
Gibt es tatsächlich (noch) im dem Form, in dem dieser Code laufen soll, ein Steueerlement mit Namen "ctrlDKEinAus" ?
Ist "'Forms!frm1" ein anderes gleichzeitig geöffnetes Form oder dasjeneige, in dem der Code abläuft? Wenn letzteres, warum wird nicht "Me" benutzt?
Steht vor dem Codeschnipsel evtl. der Aufruf einer Sub/Funktion, die keinen Error-Handler hat?
Am Besten postest Du keine Codefragmente, sondern den völlständigen Code der Prozedur.
Ok. Es handelt sich um ein Ufo, welches sich auf das Hauptformular bezieht (Das Steuerlement existiert, habe es sogar gelöscht und neu erstellt):
Private Sub Form_Click()
On Error GoTo myError
Forms!frm1!cmbTHG.RowSource = "SELECT * FROM qryTHGHH"
' Aktualisiert den DS im frm1 nach Klick im ufo (Synchronisierung):
Dim lngStore As Long
Dim rs As DAO.Recordset
Set rs = Forms!frm1.RecordsetClone
'im RecordsetClone von Formular2 die ID aus dem aktuellen Formular finden
rs.FindFirst "reID = " & Me!reID
If Not rs.NoMatch Then
'Anzeige im Formular2 mit dessen RecordsetClone synchronisieren
Forms!frm1.Bookmark = rs.Bookmark
End If
Set rs = Nothing
' Anzeige der KostenArt und KostenartNummer im lstKostenart (gleicher Code im AfterUpdate-Ereignis des cmbHH)
Forms!frm1!lstKostenArten.RowSource = "SELECT qryHHKostenA4tf.KostenANr, qryHHKostenA4tf.KostenABezeichnung FROM qryHHKostenA4tf WHERE HHIDRef = " & Forms!frm1!cmbHH.Column(1) & ""
' Anzeige der Beschreibung im Textfeld (gleicher Code im AfterUpdate-Ereignis des cmbHH)
Forms!frm1!tfBeschreibung = "Zweckbestimmung: " & DLookup("THGZweck", "qryTHGHH", "THGHHID= " & Forms!frm1!cmbTHG & "") _
& vbCrLf & vbCrLf & "Bezeichnung der Haushaltsstelle: " & DLookup("HHBezeichnung", "qryHH", "HHNr= '" & Forms!frm1!cmbHH.Column(3) & "'") _
& vbCrLf & vbCrLf & "Bezeichnung der Kostenstelle: " & DLookup("KstBezeichnung", "tblKst", "KstNr= '" & Forms!frm1!cmbKst.Column(1) & "'")
' Anzeige der Einnahmen bzw. Ausgaben der HH in der Übersicht oben (gleicher Code im After_Update des cmbHH)
Forms!frm1!tfSummeHH = (Nz(DSum("[reEinAusNetto]", "[qryStamm]", "[HHNr]= '" & Forms!frm1!cmbHH.Column(3) & "' AND [DKEinAus] = True"), 0) - _
Nz(DSum("[reEinAusNetto]", "[qryStamm]", "[HHNr]= '" & Forms!frm1!cmbHH.Column(3) & "' AND [DKEinAus] = False"), 0))
Forms!frm1!tfSollHH = Val(Forms!frm1!cmbHH.Column(4))
' Anzeige der HH im Textfeld oben Übersicht
Forms!frm1!tfHHII = Forms!frm1!cmbHH.Column(3)
' Kontrollcenter für Kst (Gleicher Code im After_Update-Ereignis des cmbKst)
Forms!frm1!tfSummeKstEin = Nz(DSum("[reEinAusNetto]", "[qryStamm]", "[KstNr]= '" & Forms.frm1.cmbKst.Column(1) & "' And [DKEinAus]= TRUE"), 0) 'Summe der Debitoren der Kostenstelle
Forms!frm1!tfSummeKstAus = Nz(DSum("[reEinAusNetto]", "[qryStamm]", "[KstNr]= '" & Forms.frm1.cmbKst.Column(1) & "' And [DKEinAus] = FALSE"), 0) 'Summe der Kreditoren der Kostenstelle
' Anzeige der Kst im Textfeld oben Übersicht
Forms!frm1!tfKstII = Forms!frm1!cmbKst.Column(1)
' Filtern des frm1 mit der Kombination (HH, Kst) nach Selektion eines Datensatz im ufo.
If Nz(Forms!frm1!cmbHH, 0) = 0 And Forms!frm1!cmbRechngeh.Column(1) = 2 Then
Me.Form.Filter = "DKNr LIKE 'G*'"
ElseIf Nz(Forms!frm1!cmbHH, 0) <> 0 And Forms!frm1!cmbRechngeh.Column(1) = 2 Then
Me.Form.Filter = "HHKstID=" & Forms!frm1!cmbHH & " And DKNr LIKE 'G*'"
ElseIf Nz(Forms!frm1!cmbHH, 0) = 0 And Forms!frm1!cmbRechngeh.Column(1) = 1 Then
Me.Form.Filter = "DKNr NOT LIKE 'G*'"
ElseIf Nz(Forms!frm1!cmbHH, 0) <> 0 And Forms!frm1!cmbRechngeh.Column(1) = 1 Then
Me.Form.Filter = "HHKstID=" & Forms!frm1!cmbHH & " And DKNr NOT LIKE 'G*'"
ElseIf Nz(Forms!frm1!cmbHH, 0) = 0 And Forms!frm1!cmbRechngeh.Column(1) = 3 Then
Me.Form.FilterOn = False
Me.Requery
Exit Sub
ElseIf Nz(Forms!frm1!cmbHH, 0) <> 0 And Forms!frm1!cmbRechngeh.Column(1) = 3 Then
Me.Form.Filter = "HHKstID=" & Forms!frm1!cmbHH
Else
MsgBox "Unbekannte Selektion"
End If
Me.Form.FilterOn = True
' Dem cmbStatus werden die möglichen Stati zugewiesen, je nach dem, ob es sich um einen Debitor oder Kreditor handelt
If Me!ctrlDKEinAus = False Then
Forms!frm1!cmbStatus.RowSource = "SELECT * FROM tblStatus WHERE StatusID = 1 OR StatusID = 2 OR StatusID = 3 OR StatusID = 6 ORDER BY StatusID"
Else
Forms!frm1!cmbStatus.RowSource = "SELECT * FROM tblStatus WHERE StatusID = 4 OR StatusID = 5 OR StatusID = 7 OR StatusID = 8 ORDER BY StatusID"
End If
' Der Datensatzanzeiger wird nach dem Filtern des ufo wieder auf den gleichen Datensatz wie zuvor gesetzt:
lngStore = Forms.frm1.reID
'Bildschirmflackern reduzieren
Me.Painting = False
Me.Requery
Me.RecordsetClone.FindFirst "reID = " & lngStore
Me.Bookmark = Me.RecordsetClone.Bookmark
myExit:
Me.Painting = True
Exit Sub
myError:
Select Case Err.Number
Case 3159
'not a valid bookmark
Resume myExit
Case Else
MsgBox "Exception Nr. " & Err.Number & " " & Err.Description
Resume myExit
End Select
End Sub
Davor existiert übrigens keine Sub/Funktion
Hallo,
mhmm, habe noch Probleme bei der Code-Interpretation..
Wenn Forms!frm1 das Hauptform und Me das Formular, das in einem UFO-Steuerelement in Forms!frm1 angezeigt wird ist,
dann solltest Du für Forms!frm1 Me.Parent schreiben .
Demnach muß sich Me!ctrlDKEinAus im Unterform befinden.
Weiterhin ist mir nicht klar, warum mittels Ereignis des Unterforms "Beim Klicken" eine Filterung des HF erfolgen soll. Ist das UFO nicht mit dem Hauptform über dessen Eigenschaften "Verknüpfen von/nach" verbunden?
Mein Eindruck ist, daß die Filterungen wie durch die Brust ins Auge geschossen erfolgen. Ich kenne aber die Hintergründe nicht.
(Gravierende) syntaktische Fehler kann ich jedoch per Augenschein nicht entdecken.
Zitat...dann solltest Du für Forms!frm1 Me.Parent schreiben .
Ja, da ist von der Syntax noch vieles aus den Anfangstagen. Habe es aber mal eben geändert.
So ist es auch mit dem Synchronisieren des Haupt- und Ufos. Ich wusste nicht, dass es da eine Verknüpfen-Eigenschaft gibt, die das auch handeln kann?! Und wenn es sie gibt: Kann ich dann auch bedingte Synchronisierungen machen, wie ich es jetzt drin habe? Also bspw. wenn die Checkbox = False, dann lade nur DS xy in das Kombi im Hauptformular usw..
ZitatDemnach muß sich Me!ctrlDKEinAus im Unterform befinden.
So ist es.
Hallo,
"Kann ich dann auch bedingte Synchronisierungen machen, wie ich es jetzt drin habe?"
na klar.
HF und Unterformular sind sozusagen über diese Eigenschaft verbunden.
Nu gut, danke. Da werde ich mich mal einlesen. Vlt kann ich meinen Fehler damit ja "umgehen", auch wenn ich gerne wuesste, was da schief laeuft :/
Hm, ich habe den betreffenden If-Block nun an den Anfang der Sub gesetzt - und es funktioniert. Aber von logischer Erschließung kann da nicht die Rede sein...
Hallo,
ja, das kann ich auch nicht nachvollziehen...
Hallo Herr Kuhn,
ist Ihr Beispiel aus #4 einer Haushaltsdatenbank entnommen?
Ich erstelle derzeit in einem Projekt eine ähnliche Datenbank mit Access. Evtl. könnten wir uns kurz austauschen, da ich bei einigen Haushaltsbesonderheiten nicht weiß, wie ich diese in Access umsetzen soll (Verpflichtungsermächtigungen, Deckungsfähigkeit).
Gruß, Daniel Schunk
On Top ...
On Top again ...
Hallo,
ZitatOn Top again ...
...und wozu bitte?
Hallo, database,
ich wollte damit bezwecken, Herrn Kuhn zu erreichen. Via PM hatte ich es schon vor einiger Zeit probiert, jedoch ohne Feedback.
In diesem Thread habe ich einen Code-Teil aus einem Projekt des Thread-Starters stammt. Ich wollte mich eigentlich nur fachlich austauschen - IMHO ist doch ein solches Forum auch dazu da, oder?
Gruß, Daniel
Hallo,
ZitatIMHO ist doch ein solches Forum auch dazu da, oder
...habe ich nicht bekritelt oder etwa doch?
ZitatVia PM hatte ich es schon vor einiger Zeit probiert, jedoch ohne Feedback
Ist eine gute Methode - auf jeden Fall besser als ein Thema, das seit 6. August 2009 quasi tot herumliegt wieder zu reaktivieren.
Zumindest hättest du ja auch reinschreiben können was du damit bezweckst. ;D
So aber könnte man annehmen, dass die Frage noch immer nicht geklärt sei ...
Alles OK?
Grüße
Peter
Hallo, Peter,
ZitatHallo,
Zitat: IMHO ist doch ein solches Forum auch dazu da, oder
...habe ich nicht bekritelt oder etwa doch?
Nein, hast du nicht - kritisch hatte ich deine Reaktion auch nicht aufgefasst.
Tja, Feedback habe ich vom User leider bisher noch nicht bekommen, sowohl auf die PM als auch auf die Frage vom 4.IX.2009 hier im Thread ... :-\
Evtl. rührt sich ja noch was :)
Gruß, Daniel