{"id":55000508,"date":"2021-02-01T00:00:00","date_gmt":"2021-02-01T00:00:00","guid":{"rendered":"http:\/\/access-basics.de\/508"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Access_VBA_IfThen","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/Access_VBA_IfThen.html","title":{"rendered":"Access VBA: If&#8230;Then"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg08.met.vgwort.de\/na\/fb368ec10b0a430a965cec80d82c7ae7\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p class='introduction'>In der Programmiersprache VBA f&uuml;r Access gibt es verschiedene Bedingungsarten, und zwar die VBA <b>If Then<\/b>-Bedingung und die <b>Select Case<\/b>-Bedingung. Die erste schauen wir uns in diesem Artikel im Detail an. Dabei betrachten wir auch, dass mit <b>If&#8230;Then <\/b>nicht nur eine einzige Bedingung abgefragt werden kann (sogar in einer Zeile), sondern auch nach mehreren Bedingungen unterschieden werden kann. Dazu verwendet man den <b>ElseIf<\/b>&#8211; und den <b>Else<\/b>-Zweig.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>2101_VBA_IfThen.accdb<\/b>.<\/p>\n<h2>If&#8230;Then als Einzeiler unter VBA<\/h2>\n<p>Die einfachste Variante der <b>If&#8230;Then<\/b>-Bedingung k&ouml;nnen Sie als Einzeiler schreiben. Die Syntax lautet in diesem Fall wie folgt:<\/p>\n<pre><span style=\"color:blue;\">If <\/span><Bedingung><span style=\"color:blue;\"> Then<\/span> <Anweisung><\/pre>\n<p>&Uuml;blicherweise denkt man, dass <b><Bedingung> <\/b>entweder den Wert <b>True <\/b>oder <b>False <\/b>zur&uuml;ckliefern soll. <b>True <\/b>ist aber nur eine Konstante f&uuml;r den Zahlenwert <b>-1 <\/b>und <b>False <\/b>f&uuml;r den Zahlenwert <b>0<\/b>. Sie k&ouml;nnen f&uuml;r <b><Bedingung> <\/b>allerdings auch andere Zahlenwerte als <b>-1 <\/b>oder <b>0 <\/b>&uuml;bergeben. Dabei k&ouml;nnen wir zusammenfassen, dass nur <b>0 <\/b>dem Wert <b>False <\/b>entspricht und alle anderen Zahlenwerte <b>True<\/b>. Die Bedingung ist also nur in folgenden F&auml;llen nicht erf&uuml;llt:<\/p>\n<pre><span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">False<\/span><span style=\"color:blue;\"> Then<\/span> ... '<span style=\"color:blue;\">False<\/span>\r\n<span style=\"color:blue;\">If <\/span>0<span style=\"color:blue;\"> Then<\/span> ... '<span style=\"color:blue;\">False<\/span><\/pre>\n<p>Das gilt nat&uuml;rlich auch f&uuml;r weitere als Bedingung verwendete Konstanten oder Variablen, die den Wert <b>0 <\/b>enthalten.<\/p>\n<p>In allen anderen F&auml;llen ist die Bedingung erf&uuml;llt:<\/p>\n<pre><span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">True<\/span><span style=\"color:blue;\"> Then<\/span> ... '<span style=\"color:blue;\">True<\/span>\r\n<span style=\"color:blue;\">If <\/span>-1<span style=\"color:blue;\"> Then<\/span> ... '<span style=\"color:blue;\">True<\/span>\r\n<span style=\"color:blue;\">If <\/span>1<span style=\"color:blue;\"> Then<\/span> ... '<span style=\"color:blue;\">True<\/span><\/pre>\n<p>Hinter die <b>If&#8230;Then<\/b>-Anweisung schreiben Sie dann einfach den auszuf&uuml;hrenden Befehl, zum Beispiel:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>bolMeldung<span style=\"color:blue;\"> As Boolean<\/span>\r\nbolMeldung = <span style=\"color:blue;\">True<\/span>\r\n<span style=\"color:blue;\">If <\/span>bolMeldung = <span style=\"color:blue;\">True<\/span><span style=\"color:blue;\"> Then<\/span> <span style=\"color:blue;\">MsgBox<\/span> \"Meldung\"<\/pre>\n<h2>Vereinfachung f&uuml;r boolsche Ausdr&uuml;cke<\/h2>\n<p>An dieser Stelle wollen wir gleich eine Vereinfachung einf&uuml;hren. Statt <b>bolMeldung = True <\/b>k&ouml;nnen Sie auch einfach <b>bolMeldung <\/b>als Bedingung angeben &#8211; die Variable enth&auml;lt ja den Wert <b>True <\/b>oder <b>False<\/b>:<\/p>\n<pre><span style=\"color:blue;\">If <\/span>bolMeldung<span style=\"color:blue;\"> Then<\/span> <span style=\"color:blue;\">MsgBox<\/span> \"Meldung\"<\/pre>\n<p><b>bolMeldung <\/b>enth&auml;lt in diesem Fall bereits einen <b>Boolean<\/b>-Wert, den die <b>If&#8230;Then<\/b>-Bedingung auswerten kann.<\/p>\n<h2>If&#8230;Then als mehrzeiliges VBA-Konstrukt<\/h2>\n<p>Sie k&ouml;nnen in der einzeiligen Version der <b>If&#8230;Then<\/b>-Bedingung zwar auch mehrere durch einen Doppelpunkt getrennte Befehle angeben:<\/p>\n<pre><span style=\"color:blue;\">If <\/span>bolMeldung<span style=\"color:blue;\"> Then<\/span> <span style=\"color:blue;\">MsgBox<\/span> \"Befehl1\": <span style=\"color:blue;\">MsgBox<\/span> \"Befehl2\"<\/pre>\n<p>Dieser Code ist allerdings schlecht lesbar, weshalb wir die typische Schreibweise der <b>If&#8230;Then<\/b>-Bedingung verwenden. Diese hat die folgende Syntax:<\/p>\n<pre><span style=\"color:blue;\">If <\/span><Bedingung><span style=\"color:blue;\"> Then<\/span>\r\n    <Anweisungen>\r\n<span style=\"color:blue;\">End If<\/span><\/pre>\n<p>Die einzeilige <b>If&#8230;Then<\/b>-Bedingung von oben formulieren wir wie folgt, was deutlich lesbarer ist:<\/p>\n<pre><span style=\"color:blue;\">If <\/span>bolMeldung<span style=\"color:blue;\"> Then<\/span>\r\n    <span style=\"color:blue;\">MsgBox<\/span> \"Erster Befehl\"\r\n    <span style=\"color:blue;\">MsgBox<\/span> \"Zweiter Befehl\"\r\n<span style=\"color:blue;\">End If<\/span><\/pre>\n<h2>VBA If&#8230;Then mit ElseIf f&uuml;r weitere Bedingungen<\/h2>\n<p>Mit dem Schl&uuml;sselwort <b>ElseIf <\/b>erweitern wir eine <b>If&#8230;Then<\/b>-Bedingung um weitere Bedingungen. <b>ElseIf <\/b>wird wie folgt in das Konstrukt eingearbeitet:<\/p>\n<pre><span style=\"color:blue;\">If <\/span><Bedingung1><span style=\"color:blue;\"> Then<\/span>\r\n    <Anweisungen f&uuml;r Bedingung1>\r\n<span style=\"color:blue;\">Else<\/span>If <Bedingung2> Then\r\n   <Anweisungen f&uuml;r Bedingung2>\r\n<span style=\"color:blue;\">End If<\/span><\/pre>\n<p>Wir k&ouml;nnen damit also gezielt mehr als eine Bedingung pr&uuml;fen. Im folgenden Beispiel pr&uuml;fen wir im <b>If&#8230;Then<\/b>-Teil, ob <b>intZahl<\/b> den Wert <b>1 <\/b>hat. Ist das nicht der Fall, wird die Bedingung im <b>ElseIf<\/b>-Teil untersucht. Hier pr&uuml;ft die Prozedur, ob <b>intZahl <\/b>den Wert <b>2 <\/b>enth&auml;lt. Falls ja, wird die in diesem Teil angegebene Meldung ausgegeben. Falls nicht, geschieht gar nichts:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>ZahlPruefen(intZahl<span style=\"color:blue;\"> As Integer<\/span>)\r\n    <span style=\"color:blue;\">If <\/span>intZahl = 1<span style=\"color:blue;\"> Then<\/span>\r\n        <span style=\"color:blue;\">MsgBox<\/span> \"Zahl ist 1\"\r\n    <span style=\"color:blue;\">Else<\/span>If intZahl = 2 Then\r\n        <span style=\"color:blue;\">MsgBox<\/span> \"Zahl ist 2\"\r\n    <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Sie k&ouml;nnen beliebig viele <b>ElseIf<\/b>-Zweige in diesem Konstrukt unterbringen. Wenn Sie <b>intZahl <\/b>auch noch auf den Wert <b>3 <\/b>pr&uuml;fen wollen, f&uuml;gen Sie einen weiteren Zweig mit der entsprechenden <b>MsgBox<\/b>-Anweisung hinzu:<\/p>\n<pre><span style=\"color:blue;\">If <\/span>intZahl = 1<span style=\"color:blue;\"> Then<\/span>\r\n    <span style=\"color:blue;\">MsgBox<\/span> \"Zahl ist 1\"\r\n<span style=\"color:blue;\">Else<\/span>If intZahl = 2 Then\r\n    <span style=\"color:blue;\">MsgBox<\/span> \"Zahl ist 2\"\r\n<span style=\"color:blue;\">Else<\/span>If intZahl = 3 Then\r\n    <span style=\"color:blue;\">MsgBox<\/span> \"Zahl ist 3\"\r\n<span style=\"color:blue;\">End If<\/span><\/pre>\n<h2>VBA If&#8230;Then mit Else f&uuml;r alle anderen F&auml;lle<\/h2>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000;\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000;\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Access &#091;basics&#093;<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/shop.minhorst.com\/magazine\/282\/access-basics?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000;\">Danach greifen Sie sofort auf <strong>alle rund 400 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000;\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/access-basics.de\/data\/wp\/v2\/posts\/55000508\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/index.php\/data\/wp\/v2\/posts\/55000508?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/access-basics.de\/data\/wp\/v2\/posts\/55000508\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"0c38ab74e4\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In der Programmiersprache VBA f&uuml;r Access gibt es verschiedene Bedingungsarten, und zwar die VBA <b>If Then<\/b>-Bedingung und die <b>Select Case<\/b>-Bedingung. Die erste schauen wir uns in diesem Artikel im Detail an. Dabei betrachten wir auch, dass mit <b>If&#8230;Then <\/b>nicht nur eine einzige Bedingung abgefragt werden kann (sogar in einer Zeile), sondern auch nach mehreren Bedingungen unterschieden werden kann. Dazu verwendet man den <b>ElseIf<\/b>&#8211; und den <b>Else<\/b>-Zweig.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[66012021,662021,44000011],"tags":[],"class_list":["post-55000508","post","type-post","status-publish","format-standard","hentry","category-66012021","category-662021","category-VBAGrundlagen"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v15.9.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Access VBA: Die If Then-Bedingung<\/title>\n<meta name=\"description\" content=\"In der Programmiersprache VBA gibt es verschiedene Bedingungsarten, uns zwar die If...Then-Bedingung und die Select Case-Bedingung. Die erste schauen wir uns in diesem Artikel im Detail an. Dabei betrachten wir auch, dass mit If...Then nicht nur eine einzige Bedingung abgefragt werden kann (sogar in einer Zeile), sondern auch nach mehreren Bedingungen unterschieden werden kann. Dazu verwendet man den ElseIf- und den Else-Zweig.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/Access_VBA_IfThen.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Access VBA: Die If Then-Bedingung\" \/>\n<meta property=\"og:description\" content=\"In der Programmiersprache VBA gibt es verschiedene Bedingungsarten, uns zwar die If...Then-Bedingung und die Select Case-Bedingung. Die erste schauen wir uns in diesem Artikel im Detail an. Dabei betrachten wir auch, dass mit If...Then nicht nur eine einzige Bedingung abgefragt werden kann (sogar in einer Zeile), sondern auch nach mehreren Bedingungen unterschieden werden kann. Dazu verwendet man den ElseIf- und den Else-Zweig.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/Access_VBA_IfThen.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-01T00:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"-0001-11-30T00:00:00+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\">\n\t<meta name=\"twitter:data1\" content=\"8\u00a0Minuten\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/access-basics.de\/#website\",\"url\":\"https:\/\/access-basics.de\/\",\"name\":\"Access [basics]\",\"description\":\"DAS ACCESS-MAGAZIN F\\u00dcR ALLE, DIE VON 0 AUF 100 WOLLEN\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/access-basics.de\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Access_VBA_IfThen.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"http:\/\/vg08.met.vgwort.de\/na\/fb368ec10b0a430a965cec80d82c7ae7\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Access_VBA_IfThen.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/Access_VBA_IfThen.html\",\"name\":\"Access VBA: Die If Then-Bedingung\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Access_VBA_IfThen.html#primaryimage\"},\"datePublished\":\"2021-02-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"In der Programmiersprache VBA gibt es verschiedene Bedingungsarten, uns zwar die If...Then-Bedingung und die Select Case-Bedingung. Die erste schauen wir uns in diesem Artikel im Detail an. Dabei betrachten wir auch, dass mit If...Then nicht nur eine einzige Bedingung abgefragt werden kann (sogar in einer Zeile), sondern auch nach mehreren Bedingungen unterschieden werden kann. Dazu verwendet man den ElseIf- und den Else-Zweig.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Access_VBA_IfThen.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/Access_VBA_IfThen.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Access_VBA_IfThen.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/\",\"url\":\"https:\/\/access-basics.de\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Access_VBA_IfThen.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/Access_VBA_IfThen.html\",\"name\":\"Access VBA: If&#8230;Then\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/access-basics.de\/#personlogo\",\"inLanguage\":\"de\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000508","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/comments?post=55000508"}],"version-history":[{"count":2,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000508\/revisions"}],"predecessor-version":[{"id":8800122167,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000508\/revisions\/8800122167"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000508"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000508"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000508"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}