Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Laufzeitfehler 91 (sehr dringend)





Frage

Hallo liebe Leut. Ich muss morgen ein Access 2000 Projekt abgeben und sitz in der klemme.und zwar habe ich ein Bestell Formular erstellt bei dem man einen Kunden auswählt und durch einen btn Artikeldaten in das Listfeld WarenKorb übergibt.(Warenkorb eird nicht gespeichert).danach kann man durch btn speichern die Bestellung abschließen und der Auftrag wird gespeichert. Funktioniert soweit auch wunderbar.Um fehler abzufangen hab ich einige einige prozeduren eingebaut: z.B wenn man keinen KUnden ausgewählt hat,die Menge>Bestand...etc. Private Sub btnKorb_Click() Dim a, b, c, n, i As Single txtMenge.SetFocus If Nz(txtKDNR) < 1 Then ' MsgBox "Bitte wählen sie einen Kunden aus" End End If If txtMenge.Text <= "" Then MsgBox "Bitte geben Sie eine Menge ein, die Sie in den Warenkorb legen möchten" End Else txtbestand = DLookup("Bestand", "Artikelstamm", "Artikelnummer = " & LstArtikel) ' a = txtbestand.Value b = txtMenge.Value a = a - b If a < 0 Or a > txtbestand.Value Then MsgBox "Soviel ist zur Zeit nicht auf Lager,bitte weniger txtMenge = "" ' End Else txtbestand.Value = a End If End If wenn der "Füllvorgang "des Korbs unterbrochen wird,korrigiert man die Eingabe und dann nimmt er den Datensatz.Sobald ich jedoch den btn Speichern drücke erscheint der Laufzeitfehler 91:objektvariable oder With-Blockvariable nicht festgelegt und zwar an der mit ** makierten stelle Private Sub BestSave_Click() Dim bestandalt, bestellmenge, bestandneu As Integer Dim i, n As Single Dim x, y, a As Variant If lstKorb.ListCount = 0 Then ' MsgBox "Es sind keine Artikel im Warenkorb" Else If MsgBox("Wollen Sie Speichern?", vbYesNo) = vbYes Then n = lstKorb.ListCount With Artikelstamm ' For i = 0 To n - 1 *** .FindFirst "Artikelnummer = " & Me!lstKorb.Column(0, i) ' bestandalt = .Fields("Bestand").Value bestellmenge = lstKorb.Column(3, i) bestandneu = bestandalt - bestellmenge .Edit ' .Fields("Bestand").Value = bestandneu .Update Next i End With LstArtikel.Requery y = lstKorb.ListCount With Verkauf .AddNew ' !Kundennummer = txtKDNR !Datum = txtDatum .Update ' End With With Verkaufpos For x = 0 To y - 1 .AddNew !Auftragsnummer=DMax("[Auftragsnummer]","[Verkauf]") !Artikelnummer = Me.lstKorb.Column(0, x) !Menge = Me.lstKorb.Column(3, x) !Betrag = Me.lstKorb.Column(5, x) !Gewinn = Me.lstKorb.Column(6, x) .Update Next x End With End If End If txtMenge = "" txtMenge.SetFocus Me.lstKorb.RowSource = vbNullChar 'wert füe konstante 0 i = 0 txtZwsumme = "" Kundenname.SetFocus lstKunde.Enabled = True lstKorb.Requery Ich bin für alle Antworten sehr dankbar

Antwort 1 von Marie

Zitat:
Sobald ich jedoch den btn Speichern drücke erscheint der Laufzeitfehler 91:objektvariable oder With-Blockvariable nicht festgelegt und zwar an der mit ** makierten stelle


vermutlich ist es jetzt eh zu spät, weil schon 'morgen' ist. Aber das nächste Mal nimmst Du bitte den Button 'Code' und kopierst Deinen Code dann da hinein, damit man sieht, wo Du eingerückt hast und wo ein If anfängt und endet und das nicht selbst erstmal sich irgendwo einrücken muss.

Ich habe nun Deinen Code mal überall eingerückt, es fehlt in Private Sub BestSave_Click() kein End If, was häufig der Grund für diese Fehlermeldung ist.

Zitat:
Um fehler abzufangen hab ich einige einige prozeduren eingebaut: z.B wenn man keinen KUnden ausgewählt hat,die Menge>Bestand...etc.
Allerdings finde ich keine Fehlerroutinen. Bitte schreib mal überall on error goto und such dann mal deinen Fehler mit Einzelschritt, dann findest Du die Stelle.

Gruß marie

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: