Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Hunumpa13 am Januar 11, 2019, 16:11:54

Titel: Formular füllen AfterUpdate
Beitrag von: Hunumpa13 am Januar 11, 2019, 16:11:54
Halllo, mein Problem ist das ich mit meinem Eingegebenen Code immer den Laufzeitfehler 91 bekomme. In einer anderen DB läuft es mit dem Code.

Private Sub Kombinationsfeld1_AfterUpdate()
    Dim rs As Object
   
    Set rs = Me.Recordset.Clone
    rs.FindFirst "[SchadenID] = " & Str(Nz(Me![Kombinationsfeld1], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
    Me.Kombinationsfeld1.SetFocus
End Sub
Titel: Re: Formular füllen AfterUpdate
Beitrag von: MzKlMu am Januar 11, 2019, 17:14:32
Hallo,
jetzt müsste man wissen was die Fehlernummer 91 ist.  >:(
Titel: Re: Formular füllen AfterUpdate
Beitrag von: Hunumpa13 am Januar 11, 2019, 17:18:27
Objektvariable oder With-Blockvariable nicht festgelegt
Titel: Re: Formular füllen AfterUpdate
Beitrag von: Beaker s.a. am Januar 11, 2019, 17:57:55
Hallo,
Wird denn auch die Zeile markiert, in der der Fehler auftritt?
Versuche mal deinen RS als DAO.Recordset zu deklarieren.
Dim rs As DAO.Recordset
gruss ekkehard
Titel: Re: Formular füllen AfterUpdate
Beitrag von: Hunumpa13 am Januar 11, 2019, 18:43:15
Der gleiche Fehler,

markiert wird die Zeile: Set rs = Me.Recordset.clone

Gruß
Micha
Titel: Re: Formular füllen AfterUpdate
Beitrag von: Beaker s.a. am Januar 11, 2019, 19:05:14
ohne Punkt
ZitatSet rs = Me.RecordsetClone
Titel: Re: Formular füllen AfterUpdate
Beitrag von: Hunumpa13 am Januar 11, 2019, 20:13:34
Ohne Punkt kommt die Fehlermeldung 7951: Sie haben einen Ausdruck eingegeben, der einen ungültigen Verweis auf die RecordsetClone-Eigenschaft enthält.
Titel: Re: Formular füllen AfterUpdate
Beitrag von: MzKlMu am Januar 11, 2019, 20:41:05
Hallo,
der Punkt ist schon richtig.
Welcher Datentyp ist denn "SchadenID"  in der Tabelle ?
Titel: Re: Formular füllen AfterUpdate
Beitrag von: Hunumpa13 am Januar 11, 2019, 20:49:07
AutoWert
Titel: Re: Formular füllen AfterUpdate
Beitrag von: MzKlMu am Januar 11, 2019, 21:03:45
Hallo,
füge mal eine MsgBox ein und kontrolliere den Wert des Kombis
Private Sub Kombinationsfeld1_AfterUpdate()
    Dim rs As Object   
    MsgBox Me.[Kombinationsfeld1] 'Zeile später wieder löschen
    Set rs = Me.Recordset.Clone
    rs.FindFirst "[SchadenID] = " & Me.[Kombinationsfeld1]
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
    Me.Kombinationsfeld1.SetFocus
End Sub

Den Schnikschnack um das Kombi habe ich entfernt, hat aber mit dem Fehler nichts zu tun.
Titel: Re: Formular füllen AfterUpdate
Beitrag von: Hunumpa13 am Januar 11, 2019, 21:09:34
Er gibt mir den Wert zurück den ich im Kombinationfeld eingegeben habe


Gruß
Micha
Titel: Re: Formular füllen AfterUpdate
Beitrag von: MzKlMu am Januar 11, 2019, 21:35:40
Hallo,
ich habe jetzt keine Idee mehr.

Mache das Formular mit dem Kombi noch mal neu, nur mit dem was unbedingt nötig ist.
Titel: Re: Formular füllen AfterUpdate
Beitrag von: Hunumpa13 am Januar 11, 2019, 21:41:42
Danke für Deine Mühe  8)

Gruß
Micha
Titel: Re: Formular füllen AfterUpdate
Beitrag von: Lachtaube am Januar 11, 2019, 22:02:58
Um andere Fehler auszuschließen, kommentiert man den Code aus.

PS: prüfe auch einmal die Verweise.
Titel: Re: Formular füllen AfterUpdate
Beitrag von: Hunumpa13 am Januar 12, 2019, 21:41:58
Habe das jetzt anderst gelöst die Daten in das Formular zubekommen.
Jetzt gibt es ein neues Problem. Wenn ich die daten geändert habe, dann ändert er mir immer nur den ersten Datensatz, nicht den er soll.
Was mache ich falsch??????? hier der Code:

Private Sub TPSÄndern_Click()
    Dim db As DAO.Database
    Dim tb As DAO.Recordset
    Dim strSQL As String
   
       
        Set db = CurrentDb
        Set tb = db.OpenRecordset("tblSchaden", Kombinationsfeld1)
       
           
       
        If Not tb.Updatable Then Exit Sub
       
        tb.Edit
        tb!TagebuchNr = TagebuchNr.Value
        tb!Intern_Extern = KombiKostenträger.Value
        tb!LS_Datum = LSDatum.Value
        tb!Lieferant = KombiLieferant.Value
        tb!Lieferschein = LieferscheinNr.Value
        tb!Sachnummer = KombiTeil.Value
        tb!Bezeichnung = KombiBezeichnung.Value
        tb!BehälterAnzahl = AnzahlBehälter.Value
        tb!StückProBehälter = Stückzahl.Value
        tb!StückzahlGesamt = StückzahlGesamt.Value
        tb!PreisProStück = StückPreis.Value
        tb!NioTeile = NioTeile.Value
        tb!SortierKosten = SortierKosten.Value
        tb!VerschrottungsKosten = VerschrottungsKosten.Value
        tb!GesamtKosten = GesamtKosten.Value
        tb!Verb_Kst = KombiVerbauende.Value
        tb!Schadenshergang = KombiHergang.Value
        tb!AnsprechPartnerQS = MAQS.Value
        tb!Bearbeitungsstatus = KombiStatus.Value
        tb!BemerkungsFeld = Bemerkungen.Value
       
        tb.Update
        tb.Close
        Set tb = Nothing
        db.Close
        Set db = Nothing
End Sub
Titel: Re: Formular füllen AfterUpdate
Beitrag von: MzKlMu am Januar 12, 2019, 23:22:57
Hallo,
schaue Dir mal den Befehl OpenRecordset in der Hilfe (F1) an. Damit kann man nicht auf einen Datensatz positionieren. Der 2.Parameter (den Du mit dem Kombi angibst) gibt den Typ des Recordsets an.
Du musst mit FindFirst erst auf den passenden Datensatz positionieren, erst dann kannst Du Werte schreiben. So wie das jetzt ist, wird immer der 1.DS gefüllt/geändert.

Sorry, aber das ist doch Krampf, so wie Du das jetzt vorhast. Dazu muss auch das Formular ungebunden sein.

Was hast Du mit dem Kombi überhaupt vor ?
Diend das dem Suchen einen Datensatzes und dann ?

Erkläre das Vorhaben mal in Gänze.

Oder erstelle ein Beispiel mit dem Problem und lade das hier hoch. Dann ist das schnell geklärt.