Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Access Makro Stoppen mit VBA Variable als Bedingung?

Frage Microsoft Microsoft Office

Mitglied: crack24

crack24 (Level 2) - Jetzt verbinden

11.06.2013, aktualisiert 15:59 Uhr, 4221 Aufrufe, 2 Kommentare

Hallo,

ich habe ein Access 2003 Formular mit dem wir neue Kundenaufträge erfassen. Das hat vor 10 Jahren mal jemand für uns programmiert.

Da wird unter anderem eine Bestellnummer vom Kunden angegeben und dann oben auf den OK-Button geklickt. Der OK-Button führt dann ein Makro aus, dass diverse Sachen prüft und dann den Datensatz speichert. Ich mag zwar keine Makros, aber so ist es nun mal programmiert.

So sieht das Formular aus
http://img6.imageshack.us/img6/2927/20130611154446.jpg

Jetzt möchte ich eine Funktion einfügen, die das Feld "Bestellnummer" überprüft, ob diese Nummer schon in der DB vorhanden ist. Das habe ich erstmal so gemacht

Sub Check_Bestellnummer()

If DCount("*", "Fertigung", "[F_Knd_Besl_Nr]='" & Me![F_Knd_Besl_Nr] & "'") > 0 Then
Msg = Ein Auftrag mit dieser Bestellnummer ist schon vorhanden?

End Sub

Private Sub F_Knd_Besl_Nr_LostFocus()
Check_Bestellnummer
End Sub

Wenn dann nach Eingabe der Nummer oben auf OK geklickt wird, kommt auch die Messagebox falls die Nummer doppelt ist. Aber danach wird das Formular trotzdem gespeichert, weil das Makro ja nach der Messagebox weiterläuft.

Kann man irgendwie das Makro durch Abfragen einer VBA Variablen stoppen? Dann könnte ich eine Variable setzen, falls der User bei der Messagebox auf "Abbrechen" drückt und diese Variable dann im OK-Button Makro als erstes abfragen. Den Befehl "stop macro" gibt es ja aber ich weiß nicht wie als Bedingung die Variable checken kann.

Wisst ihr da vielleicht was?

Gruß, Oliver

Mitglied: takeda
11.06.2013 um 19:38 Uhr
Versuch mal:


If MsgBox("Ein Auftrag mit dieser Bestellnummer ist schon vorhanden! Wollen Sie trotzdem speichern?", vbYesNo) = vbNo Then
Me.Undo
Cancel = True
End If



LG Takeda
Bitte warten ..
Mitglied: crack24
12.06.2013, aktualisiert um 09:17 Uhr
Danke, das hat mich schon mal auf die richtige Spur gebracht. Leider sind dann natürlich alle Daten aus dem Formular weg.

Ich hatte jetzt die Idee, dass der Ok-Button nicht das Makro aufruft sondern folgende Funktion

Sub Check_Bestellnummer()

If DCount("*", "Fertigung", "[F_Knd_Besl_Nr]='" & Me![F_Knd_Besl_Nr] & "'") > 0 Then

If MsgBox("Ein Auftrag mit dieser Bestellnummer ist schon vorhanden! Wollen Sie trotzdem speichern?", vbYesNo) = vbYes Then
DoCmd.RunMacro "Formular Erfassung.OK", 1
Else
Cancel = True
End If

End If
End Sub

Wenn man dann in der Message-Box auf "ja" klickt, wird das ursprüngliche Makro aufgerufen. Das macht er auch und legt den Datensatz an, aber stürzt dann seltsamerweise ab und zeigt nur noch die Sanduhr.
Wenn ich das Makro direkt über den Ok-Button aufrufe, funktioniert alles.

Woran kann das denn liegen?

Viele Grüße
Oliver
Bitte warten ..
Ähnliche Inhalte
Basic
VBA Access Variable an Query Kriteria weitergeben
Frage von EverestBasic1 Kommentar

Hallo Access-Experten, kann jemand mir bitte erklären wie ich eine Variable aus einem Formular (über VBA) an Query Kriterien ...

Microsoft Office
EXCEL IF Bedingung in VBA erstellen
Frage von user2k14Microsoft Office8 Kommentare

Hallo Zusammen, Wie kann ich mehrere If Bedingungen in VBA abbilden und diese dann durch einen Button in Excel ...

VB for Applications
VBA-Makro verschwindet nach Speichern
gelöst Frage von lupi1989VB for Applications5 Kommentare

Liebe Leute, bei mir verschwindet der Makro für den Scrollbereich in Excel(abgespeichert in xlsm) immer wieder nach dem Speichern. ...

Microsoft Office
Excel 2010 VBA Schleife mit Bedingungen
gelöst Frage von yonko22147Microsoft Office3 Kommentare

Hallo, Sorry ich stehe sowas von auf dem Schlauch das mir die einfachsten Sachen nicht mehr einfallen. Ich habe ...

Neue Wissensbeiträge
DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 49 MinutenDSL, VDSL

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 1 StundeWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 4 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement17 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...