{"id":55000229,"date":"2014-02-01T00:00:00","date_gmt":"2020-01-24T15:59:05","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=229"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"GUIDs","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/GUIDs.html","title":{"rendered":"GUIDs"},"content":{"rendered":"<p class='introduction'>Normalerweise verwenden Sie zur eindeutigen Kennzeichnung eines Datensatzes in einer Tabelle einen numerischen Prim&auml;rschl&uuml;ssel, der inkrementell f&uuml;r jeden neuen Datensatz erh&ouml;ht wird. Manchmal reicht dies allerdings nicht aus &#8211; zum Beispiel dann, wenn es mehrere Kopien der Datenbank gibt, in denen Datens&auml;tze hinzugef&uuml;gt und anschlie&szlig;end zusammengef&uuml;hrt werden m&uuml;ssen. Die Anforderung ist durchaus realistisch &#8211; es gibt erstens nicht immer und &uuml;berall Internetzugriff, und zweitens will l&auml;ngst nicht jedes Unternehmen seine Datenbank &uuml;ber das Internet verf&uuml;gbar machen. Die L&ouml;sung f&uuml;r die problemlose Zusammenf&uuml;hrung der Daten sind Prim&auml;rschl&uuml;ssel, die weltweit eindeutig sind &#8211; und dies erreichen Sie mit den sogenannten GUIDs.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1401_GUIDs.mdb<\/b>.<\/p>\n<h2>Die GUID<\/h2>\n<p><b>GUID <\/b>ist die Abk&uuml;rzung f&uuml;r <b>Globally Unique Identifier<\/b>. W&auml;hrend herk&ouml;mmliche Prim&auml;rschl&uuml;sselfelder normalerweise mit numerischen Werten des Datentyps <b>Long <\/b>gef&uuml;llt werden, was einem Wertebereich von  -2.147.483.648 bis 2.147.483.647 entspricht (also insgesamt 2 hoch 32 Werten und einem Speicherplatz von 4 Byte entspricht, belegt ein GUID-Wert 16 Byte Speicher. Damit lassen sich allerdings auch eine ganze Reihe mehr Werte erzeugen.<\/p>\n<p>Wie ist eine GUID nun aufgebaut Sie besteht aus 32 Buchstaben beziehungsweise Zahlen, wobei die Zahlen von 0 bis 9 und die Buchstaben von A bis F verwendet werden (entsprechend dem hexadezimalen System). Die 32 Zeichen werden typischerweise in einer bestimmten Anordnung notiert, die etwa so aussieht und in geschweifte Klammern eingefasst wird:<\/p>\n<pre>{9E0C0079-213E-48F5-9432-BC17E2D2CB9F}<\/pre>\n<p>Zwei Zeichen ergeben jeweils ein Byte, sodass die Anordnung bez&uuml;glich der Anzahl der verwendeten Bytes wie folgt aussieht:<\/p>\n<p>4-2-2-2-6<\/p>\n<h2>Weltweit eindeutig<\/h2>\n<p>Was aber macht eine GUID nun weltweit eindeutig und somit zu einem bevorzugten Prim&auml;rschl&uuml;sselwert, wenn es zum die Aufteilung und Synchronisierung von Datenbanken geht  Die Eindeutigkeit ist nur gew&auml;hrleistet, wenn die GUID durch einen Rechner erzeugt wird, der eine Ethernet-Netzwerkkarte verwendet. Wenn Sie sich selbst GUIDs ausdenken, k&ouml;nnen Sie nat&uuml;rlich leicht zwei gleiche Bytefolgen erzeugen &#8211; Gleiches gilt, wenn Sie einen eigenen Algorithmus zur Erstellung von GUIDs verwenden.<\/p>\n<p>Um die Eindeutigkeit zu gew&auml;hrleisten, wird ein Teil der GUID in Abh&auml;ngigkeit von der physikalischen Adresse der Ethernet-Netzwerkkarte erzeugt, ein anderer Teil wir inkrementell erh&ouml;ht &#8211; so ist, die Eindeutigkeit der Adresse der Ethernetkarte vorausgesetzt, die doppelter Vergabe einer GUID ausgeschlossen.<\/p>\n<h2>GUIDs als Autowert<\/h2>\n<p>Es gibt zwei M&ouml;glichkeiten, eine GUID zu erzeugen. Die erste liefert Access von Haus aus mit &#8211; es handelt sich hierbei um die M&ouml;glichkeit, Autowerte des Typs <b>Replikations-ID <\/b>zu erzeugen. Dazu legen Sie ein Feld einer Tabelle, etwa das Prim&auml;rschl&uuml;ssel, mit dem Datentyp <b>Autowert <\/b>und der Feldgr&ouml;&szlig;e <b>Replikations-ID <\/b>an (siehe Bild 1).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_229_001.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_229_001.png\" alt=\"Tabelle mit einem GUID-Feld\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Tabelle mit einem GUID-Feld<\/p>\n<p>Wenn Sie nun in die Datenblattansicht wechseln und einige neue Datens&auml;tze anlegen, zeigt das Feld <b>GuidID <\/b>frisch erzeugte GUID-Werte an (siehe Bild 2).<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_229_002.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_229_002.png\" alt=\"GUID-Werte einer Tabelle\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 2: GUID-Werte einer Tabelle<\/p>\n<p>Aber warum eigentlich Replikations-ID Dies ist in einer von den aktuellen Versionen von Access nicht mehr unterst&uuml;tzten Technik begr&uuml;ndet. Fr&uuml;her konnten Sie Access-Datenbanken replizieren und wieder synchronisieren, das hei&szlig;t, dass Access Funktionen angeboten hat, mit denen Sie mehrere Versionen (Replikate) einer Datenbank erstellen konnten. Diese haben etwa Au&szlig;endienstmitarbeiter zur Erfassung von Kunden, Auftr&auml;gen et cetere verwendet. Sp&auml;ter wurden die ermittelten Daten per Synchronisation wieder zu einer Datenbank zusammengef&uuml;hrt.<\/p>\n<h2>GUID per API<\/h2>\n<p>Es gibt auch eine API-Funktion, mit der Sie GUIDs erstellen k&ouml;nnen. API-Funktionen sind Windows-Funktionen, die Sie aber auch von VBA aus verwenden k&ouml;nnen (mehr dazu in einem weiteren Artikel). Windows verwendet GUIDs beispielsweise in der Registry (die Sie mit dem Befehl <b>RegEdit <\/b>im Startmen&uuml; von Windows anzeigen und bearbeiten k&ouml;nnen), wie Bild 3 zeigt.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_229_003.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_229_003.png\" alt=\"GUIDs in der Registry von Windows\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 3: GUIDs in der Registry von Windows<\/p>\n<p>Um eine GUID per VBA zu erzeugen, ben&ouml;tigen Sie zun&auml;chst die Deklaration der zu verwendenden API-Funktion. Diese f&uuml;gen Sie am besten in ein Standardmodul ein (in der Beispieldatenbank unter den Namen <b>mdlGUID <\/b>zu finden):<\/p>\n<pre><span style=\"color:blue;\">Private <\/span>Declare Function CoCreateGuid Lib \"ole32.dll\" (tGUIDStructure<span style=\"color:blue;\"> As <\/span>GUID)<span style=\"color:blue;\"> As Long<\/span><\/pre>\n<p>Au&szlig;erdem ben&ouml;tigen Sie eine weitere API-Funktion als Hilfsfunktion, die Sie an gleicher Stelle deklarieren:<\/p>\n<pre><span style=\"color:blue;\">Private <\/span>Declare Function StringFromGUID2 Lib \"ole32.dll\" (rGUID<span style=\"color:blue;\"> As <\/span>Any, ByVal lpstrClsId<span style=\"color:blue;\"> As Long<\/span>, ByVal cbMax<span style=\"color:blue;\"> As Long<\/span>)<span style=\"color:blue;\"> As Long<\/span><\/pre>\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\/55000229\/\">\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\/55000229?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\/55000229\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"8d63f6cbe9\"\/>\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>Normalerweise verwenden Sie zur eindeutigen Kennzeichnung eines Datensatzes in einer Tabelle einen numerischen Prim&auml;rschl&uuml;ssel, der inkrementell f&uuml;r jeden neuen Datensatz erh&ouml;ht wird. Manchmal reicht dies allerdings nicht aus &#8211; zum Beispiel dann, wenn es mehrere Kopien der Datenbank gibt, in denen Datens&auml;tze hinzugef&uuml;gt und anschlie&szlig;end zusammengef&uuml;hrt werden m&uuml;ssen. Die Anforderung ist durchaus realistisch &#8211; es gibt erstens nicht immer und &uuml;berall Internetzugriff, und zweitens will l&auml;ngst nicht jedes Unternehmen seine Datenbank &uuml;ber das Internet verf&uuml;gbar machen. Die L&ouml;sung f&uuml;r die problemlose Zusammenf&uuml;hrung der Daten sind Prim&auml;rschl&uuml;ssel, die weltweit eindeutig sind &#8211; und dies erreichen Sie mit den sogenannten GUIDs.<\/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":[66012014,662014,44000003,44000017],"tags":[],"class_list":["post-55000229","post","type-post","status-publish","format-standard","hentry","category-66012014","category-662014","category-Tabellen_entwerfen","category-Tipps_und_Tricks"],"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>GUIDs - Access [basics]<\/title>\n<meta name=\"description\" content=\"Normalerweise verwenden Sie zur eindeutigen Kennzeichnung eines Datensatzes in einer Tabelle einen numerischen Prim\u00e4rschl\u00fcssel, der inkrementell f\u00fcr jeden neuen Datensatz erh\u00f6ht wird. Manchmal reicht dies allerdings nicht aus \u2013 zum Beispiel dann, wenn es mehrere Kopien der Datenbank gibt, in denen Datens\u00e4tze hinzugef\u00fcgt und anschlie\u00dfend zusammengef\u00fchrt werden m\u00fcssen. Die Anforderung ist durchaus realistisch \u2013 es gibt erstens nicht immer und \u00fcberall Internetzugriff, und zweitens will l\u00e4ngst nicht jedes Unternehmen seine Datenbank \u00fcber das Internet verf\u00fcgbar machen. Die L\u00f6sung f\u00fcr die problemlose Zusammenf\u00fchrung der Daten sind Prim\u00e4rschl\u00fcssel, die weltweit eindeutig sind \u2013 und dies erreichen Sie mit den sogenannten GUIDs.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/GUIDs.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GUIDs - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"Normalerweise verwenden Sie zur eindeutigen Kennzeichnung eines Datensatzes in einer Tabelle einen numerischen Prim\u00e4rschl\u00fcssel, der inkrementell f\u00fcr jeden neuen Datensatz erh\u00f6ht wird. Manchmal reicht dies allerdings nicht aus \u2013 zum Beispiel dann, wenn es mehrere Kopien der Datenbank gibt, in denen Datens\u00e4tze hinzugef\u00fcgt und anschlie\u00dfend zusammengef\u00fchrt werden m\u00fcssen. Die Anforderung ist durchaus realistisch \u2013 es gibt erstens nicht immer und \u00fcberall Internetzugriff, und zweitens will l\u00e4ngst nicht jedes Unternehmen seine Datenbank \u00fcber das Internet verf\u00fcgbar machen. Die L\u00f6sung f\u00fcr die problemlose Zusammenf\u00fchrung der Daten sind Prim\u00e4rschl\u00fcssel, die weltweit eindeutig sind \u2013 und dies erreichen Sie mit den sogenannten GUIDs.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/GUIDs.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T15:59:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"-0001-11-30T00:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/..\/tl_files\/images\/pic_229_001.png\" \/>\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=\"10\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\/GUIDs.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/pic_229_001.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/GUIDs.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/GUIDs.html\",\"name\":\"GUIDs - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/GUIDs.html#primaryimage\"},\"datePublished\":\"2020-01-24T15:59:05+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"Normalerweise verwenden Sie zur eindeutigen Kennzeichnung eines Datensatzes in einer Tabelle einen numerischen Prim\\u00e4rschl\\u00fcssel, der inkrementell f\\u00fcr jeden neuen Datensatz erh\\u00f6ht wird. Manchmal reicht dies allerdings nicht aus \\u2013 zum Beispiel dann, wenn es mehrere Kopien der Datenbank gibt, in denen Datens\\u00e4tze hinzugef\\u00fcgt und anschlie\\u00dfend zusammengef\\u00fchrt werden m\\u00fcssen. Die Anforderung ist durchaus realistisch \\u2013 es gibt erstens nicht immer und \\u00fcberall Internetzugriff, und zweitens will l\\u00e4ngst nicht jedes Unternehmen seine Datenbank \\u00fcber das Internet verf\\u00fcgbar machen. Die L\\u00f6sung f\\u00fcr die problemlose Zusammenf\\u00fchrung der Daten sind Prim\\u00e4rschl\\u00fcssel, die weltweit eindeutig sind \\u2013 und dies erreichen Sie mit den sogenannten GUIDs.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/GUIDs.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/GUIDs.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/GUIDs.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\/GUIDs.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/GUIDs.html\",\"name\":\"GUIDs\"}}]},{\"@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\/55000229","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=55000229"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000229\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000229"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000229"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}