Home

BESTELLVERWALTUNG MIT VERSAND

image

Contents

1. Bild 6 Entwurf der Tabelle zum Speichern der SQL Befehle Formulars frmSQLBefehle angezeigt Das Feld Verbin dunglD f hren wir dabei als Kombinationsfeld aus damit Sie damit leicht die Eintr ge der Tabelle tblVerbindungs zeichenfolgen ausw hlen k nnen Rechts neben dem Kombinationsfeld finden Sie eine Schaltfl che namens cmdVerbindungenBearbeiten mit der Sie das bereits im Beitrag RDBMS Tools Verbindungen verwalten beschriebene Formular ffnen k nnen Dieses zeigt dann direkt die aktuell im Kombinationsfeld aus gew hlte Verbindung an Das Kombinationsfeld cboVerbin dung erh lt also die folgende Abfrage als Datensatzherkunft SELECT VerbindungszeichenfolgelD Bezeichnung FROM tbIVerbindungszeichenfolgen Private Sub cmdVerbindungenBearbeiten Click Prim rschl sselfeld der Tabelle Fremdschl sselfeld zur Tabelle tblVerbindungszeichenfolgen Bezeichnung der SQL Befehle Ein Feldname kann bis zu 64 Zeichen lang sein einschlie lich Leerzeichen Dr cken Sie F1 um Hilfe zu Feldnamen zu erhalten Damit die Schaltfl che cmdVerbindungenBear beiten auf Knopfdruck das Formular frmVerbindungs zeichenfolgen ffnet hin terlegen Sie die Ereignis prozedur aus Listing 1 f r das Ereignis Beim Klicken Dieses ffnet das Formular frmVerbindungszeichen folgen und bergibt den Prim rschl sselwert der aktuell im Kombinationsfeld cboVerbindung ausge w hlten Verbindungszei che
2. Benutzername versand Kennwort etiketten Die Direktlinks zu den Downloads befinden sich am unteren Rand des jeweiligen Beitrags Impressum ISBN 978 3 8092 1496 0 ISSN 1616 5535 Mat Nr 01583 5090 Access im Unternehmen Haufe Lexware GmbH amp Co KG Munzinger Str 9 79111 Freiburg Kommanditgesellschaft Sitz Freiburg Registergericht Freiburg HRA 4408 Komplement re Haufe Lexware Verwaltungs GmbH Sitz Freiburg Registergericht Freiburg HRB 5557 Martin Laqua Gesch ftsf hrung Isabel Blank Markus Dr nert J rg Frey Birte Hackenjos Randolf Jessi Markus Reithwiesner Joachim Rotzinger Dr Carsten Thies Beiratsvorsitzende Andrea Haufe Steuernummer 06392 11008 Umsatzsteuer Identifikationsnummer DE 812398835 Redaktion Dipl Inform FH Michael Forster Chefredakteur i S d P Dipl Ing Andre Minhorst Chefredaktion extern Sabine Wi ler Redaktionsassistentin Rita Klingenstein sprachl Lektorat Sascha Trowitzsch Fachlektorat Autoren Andre Minhorst Sascha Trowitzsch Anschrift der Redaktion Postfach 100121 79120 Freiburg Tel 0761 898 0 Fax 0761 898 3919 E Mail computer haufe de Internet http computer haufe de Druck PHOENIX PRINT GmbH Steinerne Furt 95 86167 Augsburg Auslieferung und Vertretung f r die Schweiz H R Balmer AG Neugasse 12 CH 6301 Zug Tel 041 711 4735 Fax 041 711 0917 Das Update Heft und alle darin enthaltenen Beitr ge und Abbildungen sind urheberrechtlich g
3. schlie lich ffnet Das Ergebnis sieht etwa wie in Bild 6 schl sselwert den wir in den Dateinamen integrieren aus k nnen Also f gen wir den Namen etwa nach folgendem Schema zusammen Suchfunktion Die Suchfunktion wertet die Eingaben in die Textfelder MaillItemTemp lt ID gt msg txtAbsender txtEmpfaenger txtBetreff txtinhalt txtVon und txtBis aus und stellt einen entsprechenden Eventuell vorhandene Dateien gleichen Namens l scht Filter zusammen die Prozedur vor dem Anlegen mit der Kill Anweisung Dann speichert sie die Datei mit SaveToFile in das glei Sie wird durch einen Klick auf die Schaltfl che cmd che Verzeichnis wie die Datenbank Suchen ausgel st und ist in Listing 2 zu finden Die Prozedur pr ft in einer If Then Bedingung den Inhalt Sollte das Anlagefeld keine Datei enthalten haben wir der einzelnen Textfelder und zwar ber die L nge der beim Import eine Kopie der msg Datei im Verzeichnis enthaltenen Zeichenketten Betr gt die mit der Len MSG im Verzeichnis der Datenbank gespeichert Diese Funktion L nge mehr als 0 Zeichen ist ein Vergleichs Kopieren wir nun mit der FileGopy Anweisung ebenfalls wert vorhanden und die Prozedur f gt einen entspre in das Verzeichnis der Datenbank Schlie lich ffnen wir chenden mit dem AND Schl sselwort beginnenden die msg Datei mit der ShellExecute Methode wel Ausdruck zu der in der Variablen strFilter gespeicherten che sich die passende Anwendung f r die Anzeige der Zeichenk
4. Datei zusammenstellen k nnen Dies sieht in einem Beispiel f r eine einzelne Sendung wie in Listing 1 aus Keine Sorge Der Code wird nicht wesentlich l nger wenn Sie beispielsweise die CSV Datei f r ein paar hundert Sendungen erstellen wollen Sie m ssen dann nur hier und da ein paar Schleifen hinzuf gen und ein paar feste Zuweisungen durch Verwei se auf die jeweiligen Feldinhalt ersetzen Die Prozedur deklariert ein Objekt auf Basis der Klasse clsDPEEMain Dieses erstellt sie gleich in der darauffol genden Zeile mit der New Anweisung Da wir nachfolgend einige Eigenschaften dieser Klasse einstellen m chten verwenden wir nun die With Anweisung damit wir den Objektbezeichner objDPEEMain nicht in jeder Zeile wie derholen m ssen Als Erstes legen wir die Ordnungsnummer fest Dies ist die Nummer die wir in jedem Satz als erstes Element an geben m ssen damit wir die einzelnen S tze als zu einer Versendung geh rend markieren k nnen Gleichzeitig ist das auch die einzige Information die wir direkt an diese Klasse bergeben ber diese Klasse greifen wir jedoch ber Eigenschaften wie DPEEShipment Satzart Sendung DPEESender Satzart Absender DPEEReceiver Satzart Empfaenger DPEEItem Satzart Packst ck und DPEENotification Satzart Benachrichtigungen auf die Objekte f r die ein zelnen S tze beziehungsweise Zeilen in der CSV Datei zu Seite 41 www access im unternehmen de 992 Leseprobe Vollst ndi
5. Dim strSatz As String Dim strDateiname As String strSatz SatzErstel len Me BestellungID strDateiname GCurrentProject Path amp DHL_ _ amp Format Date yyyymmdd amp csv Open strDateiname For Output As 1 Print 1 strSatz Close 1 Call ShellExecute Me hund open strDateiname SW NORMAL End Sub Diese ruft zun chst die Funktion SatzErstellen auf und bergibt dabei den Prim rschl sselwert der aktuell angezeigten Bestellung als Parameter Diese Funktion erstellt die CSV Datei auf Basis der Daten zu den Be stellpositionen dieser Bestellung und liefert den Inhalt im String Format an die Variable strSatz zur ck sie he weiter unten Die folgende Anweisung stellt einen Dateinamen zusammen der aus dem Verzeichnis der aktuellen Datenbank der Zeichenfolge DHL_ dem Datum im Format yyyymmdd und der Dateiendung csv besteht also etwa DHL_20150630 csv Dann ffnet sie eine neue Textdatei unter diesem Namen schreibt den Inhalt der Variablen str atz hinein und schlie t die Datei wieder Schlie lich ffnet die Prozedur die neu erstellte Datei noch mit der daf r vorgesehenen Anwendung in diesem Fall www access im unternehmen de 993 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de L SUNGEN BESTELLVERWALTUNG MIT VERSAND ACCESS H S gt DHL_20150630 csv Excel 2 5 0X START EINF GEN SEITENLAYOUT FORMELN DATEN BERPR FEN ANSI
6. Sie kurz zuvor die Schaltfl che cmdNeu bet tigt haben Ist dies der Fall pr ft die Prozedur auch noch ob die Abfrage aktuell noch ge ffnet ist Dazu nutzt sie die Hilfsfunktion IstAbfrageGeoeffnet Private Function IstAbfrageGeoeffnet strAbfrage As _ String As Boolean IstAbfrageGeoeffnet _ SysCmd acSysCmdGet b jectState acQuery strAbfrage End Function www access im unternehmen de 988 wi x pa Alle Access Obj Abfragetyp tblArtikel T ArtikellD Artikelname LieferantIO Feld Tabelle Sortierung Anzeigen Kriterien pii oder Bild 6 Anlegen einer neuen Abfrage in der Entwurfsansicht Ist die Abfrage noch ge ffnet erscheint eine Meldung die den Benutzer dar ber informiert dass die Abfrage gespeichert und geschlossen werden muss Die Prozedur wird dann beendet Ist die Abfrage nicht mehr ge ffnet referenziert die Proze dur das QueryDef Objekt zu dieser Abfrage mit der Varia blen qdf und vergleicht das Datum der Erstellung mit dem nderungsdatum Sind die Daten gleich hat der Benutzer seit der Erstellung keine nderungen vorgenommen und die Abfrage braucht nicht gespeichert zu werden Anderenfalls liest die Prozedur den SQL Code der Abfrage in die Variable strAbfrageSQL ein und die Eigenschaften in die Variable strAbfrageEigenschaften dazu sp ter mehr Sie liest dann den Prim rschl sselwert einer eventuell bereits in der Tabelle tblAbfragen gespeicherten Abfrage in d
7. Wichtig ist hier vor allem Unterformular das Feld DHLKundennummer welches Sie mit der von Damit das Unterformular gleich den Einzelpreis das Ge DHL gelieferten Kundennummer f llen s Bild 7 wicht und die Menge f r die Bestellposition einstellt legen wir f r das Ereignis Vor Aktualisierung des Kombinati Ein weiteres Recordset namens rstBestellungEmpfaen onsfeldes cboArtikellD noch die folgende Ereignisproze ger greift auf den Datensatz der Abfrage qryBestellun dur an gEmpfaenger zu der dem per Parameter bermittelten Prim rschl sselwert entspricht s Bild 8 Private Sub cboArtikelID Beforelpdate Cancel As Integer MelEinzelpreis DLookup Einzelpreis _ Das dritte Recordset hei t rstBestellpositionen und greift tblArtikel ArtikelID amp Nz Me cboArtikel1D auf die Abfrage qryBestellpositionenNichtVersendet zu Me Gewicht DLookup Gewicht tblArtikel _ Diese liefert die Daten der Tabelle tblBestellpositionen ArtikelID amp Nz Me cboArtikelID plus das Feld Kurzbezeichnung der Tabelle tblArtikel Me Menge 1 wobei nur solche Datens tze herangezogen werden End Sub deren Feld Versanddatum noch leer ist Au erdem muss der Wert des Feldes Gewicht gr er als O sein so werden Die Prozedur holt sich die entsprechenden Werte f r den beispielsweise eBooks oder sonstige digitale Artikel nicht gew hlten Artikel aus der Tabelle tblArtikel Werden diese ber cksichtigt und die BestellungID muss der aktuell
8. bei den beiden Textfeldern txtVon und txtBis mit denen ja der Zeitraum f r die E Mails zusammengesetzt werden soll Die Prozedur pr ft dann in einer ersten If Then Bedingung ob der Benutzer im Feld txtVon ein Startdatum angegeben hat Falls ja pr ft sie auch noch ob txtBis gef llt ist In diesem Fall kann sie einen Ausdruck wie den folgenden zusammenstellen Erhalten gt 2015 01 01 00 00 00 AND Erhalten lt 2015 01 31 00 00 00 Seite 30 Bi Andre Minhorst Verlag lt info amvshop de gt Ihre Bestellung im Andre Minhorst Verlag OUTLOOK MAILS IN ACCESS ARCHIVIEREN Il Hat das Feld txtBis keinen Wert enth lt der Ausdruck nur das Startdatum f r den Datumsbereich gt Kategorien Bearbeiten Zoom Erhalten gt 2015 01 01 Zoom 00 00 00 Fehlt noch die Variante dass nur txtBis gef llt ist D Klicken Sie hier um Bilder herunterzuladen Um den Datenschutz zu erh hen hat Outlook den on Bildern in dieser Nachricht verhindert Erhalten lt 2015 01 31 00 00 00 Nun hat die Prozedur kein ein oder mehrere Kriterien zusammengestellt die jeweils mit dem AND Schl sselwort beginnen Das erste Auftreten dieses Schl sselworts m ssen wir nat rlich abschneiden was die Prozedur mit der Mid Funktion er ledigt sofern strFilter nicht leer ist Schlie lich stellt sie die Eigenschaft Filter des Unterformulars auf den Wert aus strFilter ein und aktiviert den Filter durch Einstellen der Eigenschaf
9. r den Versand KLASSE F R DHL INTRASHIP CSV DATEIEN ber DPEEShipment stellen Sie so etwa den Produktcode das Sendungsdatum oder das Gesamtgewicht ein DPEESender stellt Eigenschaften bereit mit denen Sie die Kundennummer und die Adresse des Absenders festlegen Dementsprechend dient das Objekt DPEEReceiver dazu die Adresse des Empf ngers zu bergeben Auf die Objekte DPEEItem und DPEE Notification greifen Sie nicht wie auf die anderen Elemente zu Der Grund ist dass Sie beide mehrfach anlegen k nnen Daher legen Sie diese jeweils mit der entsprechenden Add Methode an also etwa AddDPEEItem oder AddDPE ENotification Da die beiden Methoden aber auch jeweils ein Element des Typs cIsDPEEItem beziehungsweise cIsDPE ENotification zur ckliefern k nnen Sie auf die Add Methode jeweils mit der With Anweisung verweisen und dar ber die einzelnen Eigenschaften festlegen bei der Satzart Packst ck also etwa das Gewicht und die Packart Paket oder Palette Bei der Benachrichtigung verwenden Sie die Methode AddDPEENotification f r die Sie nur die jeweilige E Mail Adresse des Empf ngers angeben m ssen Im Beispiel legen wir gleich zwei E Mail Adressen f r die Versandbest tigung an eine f r den Sender und eine f r den Empf nger Schlie lich erstellt die Prozedur eine neue Textdatei mit der Endung csv www access im unternehmen de 992 KLASSE F R DHL INTRASHIP CSV DATEIEN Lesepro
10. tblTest Test INT u A INSERT INIO tblTest Test VALUES 123 k nnen Sie dann gleich mit SELECT FROM tblTest a i nn der Eingabe von SQL An weisungen loslegen Diese tragen Sie einfach in das gro e Textfeld direkt unter a en der Verbindungsauswahl CREATE TABLE tblTest Test INT l Bu INSERT INTO tbITest Test VALUES 123 ein Dabei k nnen Sie dort SELECT FROM tblTest A ES eine oder mehrere SQL Anweisungen unterbringen verbindung Azuredatenbank Ergebnis Test Der Clou ist Wenn Sie mehrere Anweisungen Er 5 EZ unterbringen werden diese Datensatz 4 ivona ne Suchen auch nacheinander abgear Bild 1 Formular zur direkten Eingabe von SQL Anweisungen gegen ein SQL Server Backend beitet Manchmal m chten www access im unternehmen de 989 Seite 15 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de d Bezeichnung Beispiele Buch verbindung Azuredatenbank SOL CREATE TABLE tblTest Test INT frmVerbindungszeichenfolgen Azuredatenbank Server database windows net Schnellauswahl Bezeichnung Port 1433 Ausf hren Ergebnis CH Treiber SAL Serwer 2014 kzl c Authentifizierung Windows Authentifizierung SQL Server Authentifizierung Benutzername andre minhorst com Test Kennwort a Verschl sseln Verschl sselt Datenbank Testdatenbank Verbindun E E 5 ODEC DRIVER ODBC Driver 11 for SOL z
11. und ge gebenenfalls auch die in den Unterordnern in Access archiviert Im vorliegenden zweiten Teil der Reihe schauen wir uns an welche Daten wir dort nun produziert haben und was wir mit diesen alles anfangen k nnen Dazu geh rt unter anderem dass wir die Daten da wir diese nun in Tabellenform vorliegen haben mit den gewohnten Mitteln durchsu chen k nnen Damit wollen wir nun nicht mehr ben tigte Mails endg ltig l schen oder Mails wiederherstellen die wir in Outlook doch nochmal brauchen ra Mit den im ersten Teil vorgestellten Prozeduren im For un Ze Ber j G a Mail Outl v Outlookarchiv durchsuchen p mular frmMailimport haben wir die Tabellen der Daten Organisieren v In Bibliothek aufnehmen gt v1 bank mit den Daten der Outlook pst Datei gef llt und A s Name Anderungsdatum Typ Gr e auch noch zwei Verzeichnisse die sich auf der gleichen D An N ENGER R f niagen V U2 2U15 13 46 Jate ordner Ebene wie die Datenbankanwendung befinden dJ MSG 07 05 2015 13 45 Dateiordner A Outlook_I accdb 07 05 2015 13 44 Microsoft Access 734 260 KB Die Verzeichnisstruktur sieht nun wie in Bild 1 aus Das Verzeichnis MSG enth lt die im Dateisystem abgelegten m msg Dateien Die L sung bietet die M glichkeit diese Dateien entweder mit dem Datensatz in einem Anlage feld der Tabelle tbIMailltems zu speichern oder aber Bild 1 Verzeichnisstruktur der L sun
12. 2015 Neu Datensatz 4 ilvon4 gt Mi Suchen OK Versand vorbereiten Bild 4 Das Formular frmBestellungsdetails_Versand in der Formularansicht lichkeit alternativ alle Bestellpositionen anzuzeigen die bereits versendet wurden oder diejenigen die noch nicht versendet wurden Auch hier gibt es eine Schaltfl che namens cmdVersand Vorbereiten Diese ber cksichtigt aber direkt alle noch offenen Bestellpositionen also diejenigen deren Feld Versanddatum noch leer ist Formular frmBestellungsdetails erstellen Das Formular frmBestellungsdetails sieht im Entwurf wie in Bild 5 aus Es verwendet die Tabelle tblBestellun gen als Datenherkunft Das Kombinationsfeld cboKun delD bezieht seine Daten aus der folgenden Abfrage E3 frmBestellungsdetails D X TEREE are rue R a EEE a Ze Eure Detailbereich Beselungo 1 Best lat Bestelldatum BestellungID KundelD v m Pestelposttonen redete Z2r 13er teen a ie 7er tee dee Detailbereich _ Beste ID BestellpositionID 1 Artikelip ArtikeliD m Einzelpreis Einzelpreis v OK Versand vorbereiten OD ie Bild 5 Das Formular frmBestellungsdetails in der Entwurfsansicht www access im unternehmen de 993 SELECT KundeID Firma FROM tbIKunden Wenn der Benutzer auf die Schaltfl che cemdKunden details klickt l st dies die Prozedur aus Listing 1 aus Dies ffnet das Formular frm
13. 48749 Stammtisch Thema Hi Andre und wie die entsprechenden 43341 00000000809CC08917748749 Stammtisch 43342 00000000809CC089177487491 Frage zu VBA Guten Abend Dateien hei en Damit haben wir 43343 00000000809CC08917748749 Re Anfrage Formular Shopware _ super eigentlich alle Informationen die Datensatz H 1 von 48560 P H oki Suchen 4 fi ne wir ben tigen um unsere Such Bild 2 Die Tabelle tbIMailltems mit einigen Datens tzen Funktion zu implementieren Seite 26 www access im unternehmen de 990 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de INTERAKTIV OUTLOOK MAILS IN ACCESS ARCHIVIEREN Il Suchformular Das Suchformular soll wie in Bild 4 aussehen Dort finden wir im oberen Bereich zun chst die Felder zur Eingabe der Suchkrite rien Darunter befinden sich drei Schaltfl chen 2045 5046 047 5048 3049 5050 5051 5052 5053 2054 Datensatz H e Suchen Startet die Suche auf Basis der angegebenen Suchkriterien e Alle anzeigen Hebt den durch die Suche angewen deten Filter wieder auf e In OL wiederherstellen Legt eine Kopie der E Mail in Outlook in dem Ordner an aus dem sie urspr nglich Kopiert wurde Der Entwurf des Formulars sieht wie in Bild 5 aus Das Unterformular sfmMailltems verwendet die Tabelle tbIMailltems als Datenherkunft FAnlaeeiD MailltemiD lvonsii6 H ACCESS Anlagepfad r Dateiname 43336 C Users Andre Documents A
14. 5 22 34 34 Ihre Bestellung im Andre Minho info amvshop de 25 02 2015 21 38 45 Ihre Bestellung im Andr Minho info amvshop de 25 02 2015 21 36 41 Ihre Anmeldung bei Andre Mint info amvshop de 25 02 2015 14 35 01 Ihre Bestellung im Andre Minho info amvshop de 25 02 2015 09 30 57 Ihre Bestellung im Andre Minho info amvshop de 25 02 2015 09 30 35 Ihre Anmeldung bei Andr Minf info amvshop de frmMailltems 24 02 2015 17 06 27 Ihre Bestellung im Andr Minho info amvshop de 23 08 2014 09 07 05 Newsletteranmeldung 22 08 2014 23 06 02 Newsletteranmeldung andre minhorst com 22 08 2014 22 22 23 AND ONE auf Platz 2 der deuts newsletter news andone de 22 08 2014 20 10 10 Newsletteranmeldung andre minhorst com andre minhorst com 22 08 2014 19 31 07 Bild und aktuelle Beispieldateie info berndjungbluth de 22 08 2014 19 23 47 RechnungOnline Monat Septem rechnungonline telekom de 22 08 2014 14 10 02 Newsletteranmeldung Ungefiltert andre minhorst com Datensatz 4 1von 45560 gt M ri Suchen Bild 4 Formular zum Durchsuchen der E Mails www access im unternehmen de 990 r Empfaenger r Pfad Groesse sfegger gmx at Outlook Posteingang 9944 chmoe gmx net Outlook Posteingang 10290 info cdhr de Outlook Posteingang 10232 info cdhr de Outlook Posteingang 5810 hermanns hermanns g Outlook Posteingang 11208 monika maiershofer d Outlook Posteingang 9959 monika maiershofer d Outlook Posteingang 5958 werner fa gmx de Outl
15. CHT ENTWICKLERTOOLS A Andre Minhorst v t a ln z T Bedi B Ba Entana Ayr Neu ee ffnen in amp Calibri Ju JA P Standard FE Bedingte Formatierung a Einf gen gt 3 7Y Q Vorschau 61 Eigenschaften Gi i EB a 000 L Als Tabelle formatieren L schen o v v B inf gen DM E3 H 0 00 es E Drucken B Schlie en gt FKU or Fan an so 3 0 i Zellenformatvorlagen v BE Format v Excel Dokumente Zwischenablage Ma Schriftart Ta Ausrichtung F Zahl F Formatvorlagen zellen Bearbeiten A G5 v fx v A B C D E F G H I J K L M N 1 1 DPEE SHIPMENT EPN 20150630 3 1 AEMA ASQL III II ITITITIITaS7leEuR III 1102 a IUUTTEIITTNNDTTDTTEIIITRNDDDDTTETITTRNDDDDDTETIETRNNIANN 2 1 DPEE SENDER 6275498028 Andr Minhorst Verlag Andr amp Minhorst Borkhofer Str 17 47137 Duisburg DE andre minhorst com 0203 12121212 I III III I I 3 1 DPEE RECEIVER Herr Andr Minhorst Andr Minhorst Verlag Herr Andr Minhorst Borkhofer Str 17 47137 Duisburg DE Jandre minhorst com I I III III 4 1 DPEE ITEM 3 PK 5 A DPEE NOTIFICATION andre minhorst com 1 6 DHL_20150630 amp 4 p Bild 6 Frisch erstellte Versanddatei in Excel mit Excel Das Ergebnis sieht dann beispielsweise wie in Sie greift zun chst auf ber das Recordset rstOptionen Bild 6 aus auf eine Tabelle namens tblOptionen zu welche die Infor mationen zum Versender enth lt
16. Dabei sollen der aktuelle Preis und das aktuelle Gewicht des Artikels in zwei entsprechenden Feldern dieser Tabelle gespeichert werden Damit sichern wir die zum Zeitpunkt Beziehungen tblArt kel ArtikellD tblBestellpositionen Artikelname Y BestellpositioniD BestellungID ArtikellD Einzelpreis Einzelpreis Gewicht Kurzbezeichnung VWersanddatum Sendungsverffolgung Bild 1 Datenmodell der Beispielanwendung Seite 51 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de L SUNGEN BESTELLVERWALTUNG MIT VERSAND ACCESS der Bestellung g ltigen Daten falls sich Een ats a n a a a p 1 Preis oder Gewicht eines Artikels einmal TT ndern sollten Andr Minhorst Verlag mme BR Bestellposit ArtikeliD Einzelpreis Menge Versanddatum Die Tabelle tblBestellpositionen nimmt 4 Anwendungen entwickeln mit Access 59 00 1 30 06 2015 5 Access und SQL Server 69 00 2 30 06 2015 aber auch noch ein Feld namens Ver Teer par sanddatum auf welches bei Erstellung des Versandetiketts mit dem entspre chenden Datum gef llt wird Auf diese Weise erkennen wir dass ein Artikel Datensatz 4 ivon 2 b p Suchen OK versand vorbereiten bereits versendet wurde Schlie lich finden Sie in dieser Tabelle das Feld Sen dungsverfolgung Wenn wir schon mit DHL Paketen arbeiten die sich ja online verfolgen lassen wollen wir auc
17. EXTERNE DATEN DATENBANKTOOLS ENTWURF u gt SD Union aH zZ E KS EEE E u f g Pass Through Ansicht Ausf hren Ausw hlen Tabelle Anf gen Aktualisieren Kreuztabelle L schen Tabelle Die auf diese Weise ge ffnete br Er i 7 erstellen e Datendefinition anzeiger Abfrage zeigt gar nicht erst das Tabelle anzeigen Fenster an sodass Sie die als Datenquelle a zu verwendenden Tabellen oder _ Abfragen direkt aus dem Navigati onsbereich in den Abfrageentwurf ziehen k nnen s Bild 6 Ergebnisse tbl rtikel tblEestelldeta ils tblBestellungen tblKategorien tblKunden Mit dem entsprechenden Kontext men Eintrag k nnen Sie dieses Fenster aber auch nachtr glich noch anzeigen tblLiefer nten tblPersonal HEBE BEE BEE tbIVersandfirmen Formulare Eg frmAbfrageverwalter Was aber geschieht wenn die Abfrage fertiggestellt ist wie be kommt das Formular mit dass es soweit ist und wie wird dann die Abfrage in der Tabelle tblAbfragen gespeichert Dazu nutzen wir das Ereignis Bei Aktivierung des Formu lars frmAbfragen Dieses wird beispielsweise ausgel st wenn der Benutzer ber die Schaltfl che cmdNeu eine neue Abfrage erstellt hat und diese dann schlie t Das Formular wird dann wieder aktiviert und f hrt die genann te Ereignisprozedur aus Deren Code finden Sie in Listing 1 Die Prozedur pr ft zun chst ob die Variable strAktuelleAbfrage einen Wert enth lt Dies ist beispielsweise der Fall wenn
18. Einzelpreis und Gewicht auf die in der zugrun de liegenden Tabelle tblArtikel ein und legt f r das Feld Menge den Standard wert 1 fest Ein Klick auf die Schaltfl che cmdVersandVorbereiten soll schlie lich die CSV Datei genau f r diese eine Be stellung anlegen Das zweite Formular namens frmBestel lungsdetails_Versand ist etwas anders aufgebaut s Bild 4 Es soll zun chst alle Bestellpositionen deren Gewicht gr er als 0 ist anzeigen egal ob diese bereits versendet wurden oder nicht Oben bietet eine Optionsgruppe die M g Herr t Duisburg Andre and Deutschland Minhorst F andre minhorst com Borkhofer Str 0123 456789 Datensatz 4 i von2 bo bi b Suchen Bild 3 Bearbeiten der Kundendetails Seite 52 www access im unternehmen de 993 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de L SUNGEN BESTELLVERWALTUNG MIT VERSAND ACCESS frmBestellungsdetails_Versand 5 t Bestellungll KundelD Bestelldatum ArtikeliD v Einzelpreis Gewicht Menge Versanddatum 1 Andr Minhorst Verlag 30 06 2015 Anwendungen entwickeln mit Access 59 00 1 00 1 30 06 2015 1 Andr Minhorst Verlag 30 06 2015 Access und SQL Server 69 00 1 00 2 30 06 2015 2 Klaus M ller GmbH 30 06 2015 Onlinebanking mit Access 79 00 1 00 1 30 06 2015 2 Klaus M ller GmbH 30 06 2015 Das Access Entwicklerbuch 59 00 2 00 1 30 06
19. ErrorCustomerText gt Der Dialog wurde abgebrochen Bitte melden Sie sich erneut an 9800 Ung ltige Dialogkennung Bitte melden Sie sich erneut an 9010 lt ErrorCustomerText gt lt NoFurtherRequestsPreferred gt false lt NoFurtherRequestsPreferred gt lt fEr or gt lt StatementRequestResult gt lt StatementRequestkesponse gt lt soap Body gt lt soap Envelope gt Listing 3 R ckgabe f r eine fehlerhafte Anfrage Seite 64 www access im unternehmen de 994 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de L SUNGEN ONLINEBANKING PER WEBSERVICE Ill ACCESS Public Sub UmsaetzeVerarbeiten strXML As String strAccountnumber As String Dim objXML As MSXML2 DOMDocument Dim db As DAO Database Dim rst As DAD Recordset Dim objBACStatementLine As MSXML2 IXMLDOMNode Dim strBankCode As String Dim strCustomerID As String Set objXML New MSXML2 DOMDocument obJXML loadXML strXML strBankCode obJXML selectSingleNode CustomerData BankCode nodeTypedValue strCustomerID obJjXML selectSingleNode CustomerData CustomerId nodeTypedValue Set db CurrentDb Set rst db OpenRecordset SELECT FROM tblUmsaetze dbOpenDynaset For Each objBACStatementLine In obDJXML selectNodes BACStatementLine rst AddNew rst BankCode strBankCode rst AccountNumber strAccountnumber rst BusinessTransactionCode objBACStatementlLine selectSingleNode BusinessTransactionCode nod
20. Formular erstellten und gespeicherten Abfragen an Darunter folgen die Steuerelemente f r die Verwaltung der e Zur bersicht hinzuf gen Zeigt das Ergebnis der aus Abfragen gew hlten Abfrage auf einer Registerseite im unteren Bereich des Formulars an e Neu ffnet den Entwurf einer neuen leeren Abfrage e Aus bersicht entfernen Entfernt eine Abfrage aus e Entwurf Zeigt den Entwurf der im Listenfeld markier dem Registersteuerelement und blendet die entspre ten Abfrage an chende Registerseite aus frm bfrageverwalter Bestellungen mit Artikeldetails Alle Kategorien Alle Artikel Bestellungen mit Artikeldetails Alle Kategorien ArtikellD Artikelname Lieferant 1 Chai Exotic Liquids 2 Chang Exotic Liquids 3 Aniseed Syrup Exotic Liquids 4 Chef Anton s Cajun Seasoning New Orleans Cajun Delights 5 Chef Anton s Gumbo Mix New Orleans Cajun Delights 6 Grandma s Boysenberry Spread Grandma Kelly s Homestead 7 Uncle Bob s Organic Dried Pears Grandma Kelly s Homestead Datensatz H 1 von 77 FOR HE Suchen q Bild 1 Benutzeroberfl che des Abfrageverwalters Kategorie Getr nke Getr nke Gew rze Gew rze Gew rze Gew rze Naturprodukte Liefereinheit 10 Kartons x 20 Beutel 24 x 12 o7 Flaschen 12 x 550 ml Flaschen 48 x 6 0z Gl ser 36 Kartons 12 x 8 0z Gl ser 12 x 1 Ib Packungen www access im unternehmen de 988 Seite 2 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access i
21. Informationen enthalten Info Info _ import succeeded Zusammenfassung Import succeeded Bild 4 Ergebnis des Imports mit der entsprechenden Dokumentation sowie Beispiel dateien Ablauf beim Auftragsimport Bevor wir uns im Detail ansehen wie wir die ben tigte CSV Datei mit den Daten aus einer Datenbank f llen sehen wir uns den grundlegenden Ablauf bei der Verwen dung von IntraShip an Nach dem Klick auf Versandabwicklung PaketlImport von Auftr gen klicken Sie auf die Schaltfl che Datei ausw hlen Im nun erscheinenden Dateiauswahl Dialog geben Sie die zu importierende Datei an und klicken dann unter Beibehaltung der brigen Einstellungen auf Datei importieren Pong rss moooseren zes un EN Fehlermeldung Er EEE Wenn Sie mehr Details sehen m chten wechseln Sie mit dem Men befehl Versandabwicklung Paketl bersicht zu einer Listenansicht der aktuell beauftragten Sendungen s Bild 5 Hier k nnen Sie nun mit einem Klick auf die Eintr ge der Spalte Absender Kundennr eine Detailansicht des Auftrags ansehen hier sind unter anderem eine Bearbei tung sowie das L schen des Auftrags m glich Hier k nnen Sie gerade nach den ersten Importversuchen pr fen ob alle Informationen wie gew nscht bergeben wurden Die interessanteren Funktionen finden sich jedoch gleich in der bersicht Hier k nnen Sie ein oder mehrere Auf tr ge ausw hlen und mit einem Klick auf die Schaltfl che Label drucken di
22. IngKundeID amp DPEE SHIPMENT amp strPaketart amp amp Format Date yyyymmdd amp amp Replace curGewicht 5 98 amp strKuerzel amp I amp IR I IOT IN Replace curWert Sobald Sie aber mal einen Parameter in der CSV Datei ben tigen den Sie hier nicht ber cksichtigt haben und der irgendwo zwischen dem 80 und 81 Pipe Zeichen einge f gt werden muss d rfen Sie erstmal die Dokumentation suchen die Zeile anpassen et cetera Der Ansatz in der beschriebenen Codezzeile ist Teil meines ersten Versuchs die Erstellung der CSV Datei zu automa tisieren und funktioniert nat rlich gut zumindest bis man dann etwas an der Programmierung ndern oder noch schlimmer den Code anderen Entwicklern zug ng lich machen m chte also beispielsweise den Lesern dieses Beitrags Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de ACCESS Gerade in letzterem Fall werden doch die unterschied lichsten Anforderungen zusammentreffen die sich unm glich mit einer einzigen Zeile Code je Element der CSV Datei erledigen lassen So ist dann nach einigem Hin und Her die Idee entstanden ein System von Klassenmo dulen aufzusetzen von denen eines die Hauptschnittstelle zum Erstellen der CSV Datei bildet und weitere Klassen jeweils eine Zeile der CSV Datei repr sentieren CSV erstellen mit Klassen Schauen wir uns zun chst an wie Sie mit den nachfol gend erl uterten Klassen die CSV
23. Kundendetails Wenn f r das Kombinationsfeld cboKundelD noch kein Eintrag ausgew hlt wurde soll das Formular frmKundendetails einen neuen leeren Datensatz anzeigen anderenfalls den aktuell im Kombinationsfeld ausgew hlten Zu diesem Zweck wird der Prim rschl sselwert f r diesen Datensatz per ffnungsargument an das Formular frmKundende tails bergeben In beiden F llen speichert die Prozedur nun einen Verweis auf das Formular in der Variablen frmKundendetails welches im Kopf des Klassenmoduls des Formulars frm Bestellungsdetails wie folgt deklariert wurde Dim WithEvents frmKundendetails As Form Dadurch k nnen wir in diesem Klassenmodul auch Er eignisprozeduren f r dieses Formular implementieren In diesem Fall m chten wir auf das Ereignis Beim Entladen reagieren indem wir den aktuell im Formular frmKunden details angezeigten Datensatz einlesen und im Kombi nationsfeld cboKundelD ausw hlen Dazu stellen wir zun chst die Eigenschaft OnUnload von frmKundende Seite 53 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de L SUNGEN ACCESS Private Sub cmdKundendetails Click If IsNull Me cboKundeID Then DoCmd OpenForm frmKundendetai Is DataMode acFormAdd Else DoCmd OpenForm fTrmKundendetails DataMode acFormEdit OpenArgs Me cboKundelID End If Set frmKundendetails Forms frmKundendetails With frmKundendetai s Modal True OnUnload Event Procedure E
24. Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de 3 121 au SEE Ausgabe 04 201 5 BESTELLVERWALTUNG MIT VERSAND Was hilft die sch nste Bestellverwaltung wenn Sie die Versandetiketten von Hand ausf llen m ssen Erfahren Sie wie Sie die Erstellung von DHL Etiketten professionell direkt aus Ihrer Datenbank heraus steuern IM UNTERNEHMEN In diesem Heft ONLINEBANKING PER T SQL PER FORMULAR ABFRAGEN IM GRIFF WEBSERVIGE Ill Fomulieren Sie Ihre Auswahl oder Erstellen Sie so viele Abfragen Das Ende der Trilogie Diesmal Aktionsabfragen mit einem weite wie Sie m chten ohne damit rufen Sie Kontoums tze ab und rem hilfreichen Tool f r den Zugriff den Navigationsbereich zu lernen berweisungen zu auf den SQL Server berfrachten beauftragen www access im unternehmen de Mat Nr H1583 5090 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de AC C ESS INHALTSVERZEICHNIS IMPRESSUM ABFRAGETECHNIK UND SQL Abfrageverwalter 2 SQL SERVER UND CO T SQL per Formular 15 INTERAKTIV Outlook Mails in Access archivieren Il 26 Versandetiketten mit DHL IntraShip 35 VBA UND PROGRAMMIERTECHNIK Klasse f r DHL Intraship CSV Dateien 40 L SUNGEN Bestellverwaltung mit Versand 51 Onlinebanking per Webservice Ill 61 SERVICE Impressum U2 Editorial 1 DOWNLOAD Die Downloads zu dieser Ausgabe finden Sie wie gewohnt unter http www access im unternehmen de download
25. SQL Server Datenbank abzusetzen Viel sch ner w re es doch wenn man dies direkt vom Access Fenster aus erledigen k nnte Kein Problem Da wir in den vorherigen Ausgaben ohnehin schon Add Ins f r den Einsatz mit dem SQL Server vorgestellt haben machen wir hier gleich weiter In den Beitr gen RDBMS Tools Verbindungen ver Dieses Formular sieht wie in Bild 1 aus und soll ebenfalls walten www access im unternehmen de 976 ber einen Befehl des Add In Men s verf gbar sein RDBMS Tools Tabellen verkn pfen www access im unternehmen de 977 und RDBMS Tools als Add In Das Formular soll zun chst ber das obere Kombinati nutzen www access im unternehmen de 978 haben onsfeld die Auswahl einer Verbindung erm glichen Diese wir bereits zwei kleine Tools vorgestellt und als Add In haben wir nat rlich zuvor mit einem der anderen beiden aufbereitet Add Ins hergestellt namlich mit dem aus dem Beitrag RDBMS Tools Verbindungen verwalten Diese Add In Datei namens RDBMSTools mda bauen wir jetzt weiter aus indem wir ein Formular hinzuf gen Das Kombinationsfeld zeigt also soweit bereits eingege mit dem Sie direkt Abfragen an die Datenbank eines SQL ben die vorhandenen Verbindungen an Alternativ klicken Servers absetzen K nnen Sie auf die Schaltfl che rechts vom Kombinationsfeld und ffnen so den Dialog aus Bild 2 frm amp QLBefehle P Bezeichnu ng Beispiele Buch Nach dem Ausw hlen der Verbindungszeichenfolge CREATE TABLE
26. Tabelle tblFehler www access im unternehmen de 989 Das Textfeld txtSQL ist an das Feld SQLBefehl der Tabelle tbISQLBefehle gebunden Damit Sie darin Zeilenumbr che einfach mit der Eingabetaste herbeif hren k nnen ohne dass der Fokus auf das n chste Steuerelement verschoben wird stellen wir die Eigenschaft Eingabetas tenverhalten auf Neue Zeile im Feld ein Das Bezeichnungsfeld IbISQL soll jeweils den SQL Ausdruck aus dem Textfeld txtSQL anzeigen der beim Bet tigen von F5 beziehungsweise beim Anklicken der Schaltfl che cemdAusfueh ren ausgef hrt w rde Das ist normalerweise der komplette SQL Text au er der Benutzer markiert nur einen Teil des enthaltenen Textes Dann wird nur dieser Teil in IbISQL abgebildet und auch ausgef hrt Das Formular enth lt au erdem eine Schalt flache namens cmdAusfuehren auf deren Standardwert Ein Feldname kann bis zu 64 Zeichen lang Funktion wir weiter unten eingehen G ltigkeitsregel sein einschlie lich Leerzeichen Dr cken Sie FL um Hilfe zu Feldnamen zu erhalten Au erdem enth lt das Formular ein Unter formular Steuerelement dessen Eigenschaft Herkunftsobjekt wir auf das Formular sfmSQL Befehle einstellen SICH Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de INTERAKTIV OUTLOOK MAILS IN ACCESS ARCHIVIEREN Il Outlook Mails in Access archivieren Il Im ersten Teil dieser Beitragsreihe haben wir alle Outlook Mails eines Ordners
27. ailitemID Nun ist es interessant ob die Originalmail im msg End Sub Format im Anlagefeld Mailltem der Tabelle tblMailltems gespeichert wurde oder ob sich diese im Unterverzeich Private Sub Betreff DblClick Cancel As Integer nis MSG befindet MailOeffnen Me MailitemID End Sub Um dies herauszufinden referenziert die Prozedur zu n chst das im Anlagefeld Mailtem enthaltene und ber Private Sub Empfaenger DbIClick Cancel As Integer die Value Eigenschaft verf gbare Recordset mit der MailOeffnen Me MailitemID eigentlichen Anlage hier bitte Anlage eines Anlagefeldes End Sub nicht mit Anlage einer E Mail verwechseln und speichert es in rstAttachment Enth lt rstAttachment nun genau Private Sub Erhalten DbIClick Cancel As Integer einen Recordset RecordCount 1 dann liegt die Origi MailOeffnen Me MailitemID nalmail im msg Format im Anlagefeld der Tabelle vor End Sub Das Feld FileData des Recordsets rstAttachment Private Sub Pfad DblClick Cancel As Integer f llt die Prozedur dann in die Variable fldAttachment MailOeffnen Me MailitemID Das Field2 Objekt fldAttachment bietet dann mit der End Sub Methode SaveToFile die M glichkeit den Inhalt des Anlagefeldes als Datei zu speichern Da es durchaus Damit ist sichergestellt dass die von diesen Ereignis vorkommen kann dass wir einmal mehrere Mail gleich prozeduren aufgerufene Prozedur MailOeffnen immer zeitig anzeigen m ssen wir eine Konvention f r die ausgel st wird egal auf welches
28. als eingelesen wird Formularelemente zum Abruf der Ums tze Nun ben tigen wir noch ein Element in der Benutzerober flache um die Ums tze abzurufen und auch anzuzeigen Dazu erweitern wir einfach das Formular frmKonten und zwar um eine Schaltfl che namens cmdUmsaetzeEinle sen zwei Textfelder namens txtStartdatum und txtEnd datum mit denen Sie den Zeitraum f r die einzulesenden Ums tze einstellen k nnen sowie ein Unterformular zur Anzeige der Ums tze s Bild 2 Das Unterformular verwendet die Tabelle tplUmsaetze als Datenherkunft und zeigt davon die Felder Amount Valuta Purpose RecBanklD RecAccountNr und RecName an tblUmsaetze AutoWert Kurzer Text Kurzer Text Kurzer Text Kurzer Text w hrung StatementNr Zahl Datum Uhrzeit Kurzer Text Datum Uhrzeit Kurzer Text Langer Text Kurzer Text Kurzer Text Kurzer Text Felddatentyp Beschreibung optional Prim rschl sselfeld der Tabelle Bankleitzahl Kontonummer Transaktioncode Eindeutiger Wert f r diesen Umsatz Betrag Nummer Buchungsdatum W hrung Valuta Buchungsreferenz Verwendungszweck Zielbank Zielkonto Zielname Bild 1 Tabelle zum Speichern der Ums tze Seite 61 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de L SUNGEN ONLINEBANKING PER WEBSERVICE III frmKonten Idee Zee Beer ee Free ide Detailbereich _ Neuer Kontakt f kontakt aktualisieren Ungebunden U
29. be Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de VBA UND PROGRAMMIERTECHNIK ACCESS 1234 DPEE SHIPMENT EPN 20150629 1 3 AEMA III LI 11 Z00 EUR IOL IHOA 1234 DPEE SENDER 6275498028 Andr Minhorst Verlag Andr Minhorst Borkhofer Str 17 147137 Duisburg DE 7 andre minhorst com 0123 4567890 I I I II II III II II II I 1234 DPEE RECEIVER Andr amp Minhorst Verlag Herr Klaus M ller Borkhofer Str 17 47137 Duisburg DE 7 Klaus mueller de ITTEEEIIEN 1234 DPEE TTEM 1 3 PK 1234 DPEE NOTIFICATION andre minhorst com 1234 DPEE NOTIFICATION test test de Listing 2 Frisch erstellte CSV Datei mit Sendungsdaten und schreibt den Wert der Eigenschaft Satz des Objekts objDPEEMain hinein Diese Eigenschaft liefert den Inhalt der CSV Datei den die Klasse auf Basis der bergebenen Werte zusammengestellt hat F r unser Beispiel sieht diese Datei nun genau wie in Listing 2 aus Das Tolle bei der Verwendung dieser Klassen ist dass Sie nicht erst die Dokumentation nach den Namen der einzel nen Eigenschaften einer Zeile der CSV Datei suchen oder die Position innerhalb der Zeile ermitteln m ssen sondern einfach einen Punkt hinter dem Objektbezeichner einf gen und dann alle m glichen Eigenschaften per IntelliSense pr sentiert bekommen s Bild 1 amp DHL mdIDPEE Code Allgemein BeispielDHL Public Sub BeispielDHL Dim objDPEEMa
30. ce auf den Request aufnehmen lt ser StatementRequestData gt lt ser Pin gt 12345 lt ser Pin gt Das Ergebnis dieses Aufrufs die Routine Request haben lt ser StatementRequest gt wir bereits im ersten Teil der Beitragsreihe beschrie lt soapenv Body gt ben speichert die Prozedur dann in der String Variablen lt soapenv Envelope gt strResponse Die im Modul mdiWebservice befindliche Funktion GetXMLElement ermittelt aus dieser Antwort den Wenn der Benutzer ein Start oder Enddatum angegeben Inhalt der Elemente Result Error ErrorCode und Result hat wird die Anfrage noch entsprechend erweitert Error ErrorText und speichert diese soweit gef llt in www access im unternehmen de 994 Seite 63 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de L SUNGEN ONLINEBANKING PER WEBSERVICE III Public Function StatementRequest strContactData As String strAccountId As String strErrorCode As String _ strErrorText As String Optional datStart As Date Optional datEnde As Date As String Dim objXMLResponse As MSXML2 DOMDocument Dim strRequest As String strResponse As String strPIN As String Dim strStartdate As String strEnddate As String strFunction As String strFunction StatementRequest strPIN InputBoxC PIN strRequest lt ser StatementRequestData gt amp vbCrLf strRequest strRequest amp lt ser ContactData gt amp strContactData amp lt ser ContactData gt amp vbCrLf strReque
31. ch chende Fehlermeldung wenn Sie eine ung ltige je een pr re SQL Abfrage absetzen s Bild 4 Eeo i HEERmEIR SQLBefehl Und noch ein wichtiges Feature M glicher weise ben tigen Sie die eine oder andere SQL Anweisung im Laufe der Entwicklung der Anwendung mehrmals Die eingegebenen Daten i samt Bezeichnung Verbindungszeichenfolge 5 und SQL Befehlen werden in einer Tabelle gespeichert sodass Sie durch Bl ttern durch 7 die Datens tze die verschiedenen SQL Befehle ng ansteuern k nnen TR Ungebunden Formular erstellen e Texo Ungebunden Das Formular sieht in der Entwurfsansicht wie Teto Ungebunden in Bild 5 aus Da die eingegebenen SQL Befehle EHE gespeichert und bei Bedarf wieder aufrufbar sein sollen binden wir das Formular an die Bild 5 Entwurf des Formulars frmSQLBefehle www access im unternehmen de 989 Seite 17 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de SQL SERVER UND CO T SQL PER FORMULAR tbISQLBefehle sQLBefehliD AutoWert saLBefehl Langer Text VerbindunglD Zahl Bezeichnung Kurzer Text Text des SQL Befehls Feldeigenschaften Allgemein Nachschlagen Feldgr e 255 Format Eingabeformat Beschriftung Standardwert Gu ltigkeitsregel G ltigkeitsmeldung Eingabe erforderlich Mein Leere Zeichenfolge Ja Indiziert Ja Ohne Duplikate Unicode Kompression Ja IME Modus keine Kontrolle IME Satzmodus Keine Textausrichtung Standard
32. chaften Property Let Prozeduren re nE o i i 10 Referenznummer String 2 und Eintr ge in die Satz Eigenschaft vor 0 genommen werden m ssten Nein Von Hand wollen wir das nicht erledigen BEE von 10 Kubi ee Bild 4 Felder in der Zieltabelle Seite 44 www access im unternehmen de 992 BESTELLVERWALTUNG MIT VERSAND Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de L SUNGEN ACCESS Bestellverwaltung mit Versand Zu einer ordentlichen Bestellverwaltung geh rt die M glichkeit den Versand der be stellten Artikel vorzubereiten In diesem Beitrag stellen wir das Grundger ste einer ein fachen Bestellverwaltung vor deren Daten wir dann nutzen um Versendungen ber das DHL Gesch ftskundenportal vorzubereiten Dazu m ssen wir aus den eingegebenen Bestelldaten die Daten zu einer CSV Datei zusammenf hren die wir dann an ber das Internetportal von DHL einreichen und als Ergebnis die ben tigten Versandetiketten er halten Im Beitrag Versandetiketten mit DHL IntraShip www access im unternehmen de 991 erhalten Sie die grundlegenden Informationen ber den Einsatz des Gesch ftskundenportals von DHL der Beitrag Klasse f r DHL Intraship CSV Dateien www access im unter nehmen de 992 liefert eine Bauanleitung f r eine Klasse mit der Sie die f r die CSV Datei ben tigten Daten auf einfache Weise eingeben k nnen Die Informationen dieser beiden Beitr ge flie en in
33. d Sendungsimport Format 6 1_ DE csv ben tigen Davon abgesehen k nnen wir noch ein CSV Daten importieren Mandanten Standard Sendungsimport Format 1_DE csw L Importdatei mit berschriften Typ des Sendungsimports Standard Sendungsimport r Datei importieren Die Daten m ssen im CSW Format vorliegen Durchsuchen Kombinationsfeld namens Typ des Sendungsim ports auf einen der Werte Standard Sendungsim port Personalisierter Sendungsimport oder Ad hoc Sendungsimport einstellen Schlie lich l st ein Klick auf die Schaltfla che Datei importieren den Import aus Informationen zu allen m glichen Belangen des Umgangs mit IntraShip erhalten Sie wenn Sie auf den Men punkt Info klicken Dort finden Sie dann bei spielsweise Links zu einem Benutzerhandbuch zu den verschiedenen Import Spezifikationen oder auch die Telefonnummern der unterschiedlichen Kunden dienste Wir schauen also zu n chst in das IntraShip Benutzerhandbuch Dieses liefert genau zu dem von uns ben tigten Men punkt keine Informationen also schauen wir uns die bri gen Dokumente an Hier ist kein Dokument namens Mandanten Standard Sendungsimport Format 6 1_DE csv zu finden Jede weitere Suche an dieser Stelle ist vergeblich denn Sie erhalten nach der Freischaltung von IntraShip eine E Mail www access im unternehmen de 991 Seite 36 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unt
34. de As String Dim strErrorText As String Dim strXML As String If IsNull Me cboKontakte Then MsgBox W hlen Sie einen Kontakt aus Me cboKontakte SetFocus Exit Sub End If strContactData DLookup ContactData tblKontakte KontaktID _ amp Me cboKontakte wegen L ngenbeschr nkung auf 255 Zeichen strAccountld Me cboKonten Column 5 strAccountnumber Me cboKonten Column 2 strXML StatementRequest strContactData strAccountld strErrorCGode strEerrorText Nz MeltxtStartdatum 0 Nz Me txtEnddatum 0 If Len GetXMLElement strXML SuccessText gt 0 Then UmsaetzeVerarbeiten strXML strAccountnumber Me sfmUmsaetze Form Requery Else MsgBox Fehler amp vbCrLf amp strErrorCode amp vbCrLf amp strErrorText End If End Sub Listing 1 Start des Einlesevorgangs der Ums tze lt soapenv Envelope xmIns soapenv http schemas xmlsoap org soap envelope xmIns ser http service ddbac de gt lt ser StartDate gt 2015 01 01 lt ser StartDate gt lt soapenv Body gt lt ser EndDate gt 2015 05 31 lt ser EndDate gt lt ser StatementRequest gt lt ser StatementRequestData gt lt ser ContactData gt Ggx b1115NitZ Danach ruft die Funktion die Routine Request auf und lt ser ContactData gt bergibt ihr den Request als ersten und ein leeres DOM lt ser AccountId gt 5E3A4E4882B730A Document Objekt als zweiten Parameter Letzterer soll die lt ser Account1d gt Antwort des Webservi
35. der Textfelder in der Dateinamen der msg Dateien festlegen die ausschlie t SIGWA www access im unternehmen de 990 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de INTERAKTIV OUTLOOK MAILS IN ACCESS ARCHIVIEREN Il ACCESS Private Sub MailOeffnen lngMailItemID As Long Dim db As DAO Database Dim rst As DAO Recordset Dim rstAttachment As DAO Recordset2 Dim fldAttachment As DAO Field2 Set db CurrentDb Set rst db OpenRecordset SELECT FROM tbIMailItems WHERE MailItemID amp IngMailItemID dbOpenDynaset Set rstAttachment rst Fields Mailltem Value If rstAttachment RecordCount 1 Then Set fldAttachment rstAttachment Fields FileData On Error Resume Next Kill CurrentProject Path amp Mailltemfemp_ amp IngMailItemID amp msg On Error Golo 0 fldAttachment SaveTofile CurrentProject Path amp MailItemTemp_ amp IngMailItemID amp msg Else FileCopy CurrentProject Path amp MSG amp IngMailItemID amp msg CurrentProject Path amp MailItemTemp_ amp IngMailItemID amp msg End If Call ShellExecute Me huWnd open CurrentProject Path amp MailltemTemp amp IngMailItemID amp msg SW NORMAL End Sub Listing 1 Die Prozedur zum Anzeigen einer E Mail im Mail Inspector dass Dateien doppelt vorhanden sind Das ist aber kein E Mail in diesem Fall Outlook aussucht und die E Mail Problem denn wir haben ja zu jeder Mail einen Prim r
36. die Tabelle mehrere Abfragen F ArtikellD mit der gleichen Bezeichnung auf Antibi er affe T X nimmt Das Feld AbfrageSQL ent LieferantID Eigenschaftenblatt KategorielD Auswahltyp Abfrageeigenschaften h lt sp ter den SQL Ausdruck den Liefereinheit Allgemein Sie mithilfe der Entwurfsansicht Beschreibung Beispielbeschreibung f Abf i It Standardansicht Dae ur ragen zusammengeste A eee oee Abe Felder ausgeben Nein haben Das Feld Abfrageeigen Mis DDR uni nie Keine Duplikate Nein ht we Eindeutige Datens tze Mein schaften nimmt die wichtigsten ei m Ku Ausf hrungsberechtigungen Benutzer Eigenschaften der Abfrage auf oder Suelldstenbank faktuel Quellverbindung die Cie blicherweise ber das Datens tze sperren Keine Sperrungen Recordsettyp Dynaset Eigenschaftsfenster der Abfrage ODBC Wartezeit 60 Filter Ei eingeben wie etwa in Bild 3 die Beschreibung der Abfrage Bild 3 Einstellen von Eigenschaften f r die Abfrage Die meisten der hier angegebenen Eigenschaften landen Registersteuerelement erscheinen Nur wenn dieses Feld indes ohnehin in Form entsprechender Schl sselw rter einen Zahlenwert enth lt soll dies geschehen In diesem im SQL Text der Abfrage zum Beispiel die Eigenschaft Fall werden die Abfragen in aufsteigender Reihenfolge Spitzenwerte als TOP entsprechend dem Wert des Feldes dort angezeigt Das Feld Uebersichtsposition enth lt einen Wert der Damit k nnen wir uns nun an das Formular zur Ve
37. dieser Stelle nicht eingehen Vorteile IntraShip Neben IntraShip f r Gesch ftskunden gibt es ja auch noch die M glichkeit als Privatkunde online die Etiketten f r den Versand von DHL Paketen zu erhalten Dort m ssen Sie allerdings etwa Ihre Portokasse aufladen und bezahlen das Porto dann aus dieser Kasse Eine genaue Auflistung welche Positionen damit bezahlt wurden erh lt man nicht Bei Intraship brauchen Sie sich beim Einreichen der CSV Dateien f r die Erstellung der Versandetiketten nicht um die Bezahlung zu k mmern es erfolgt alle zehn Tage eine Abrechnung Au erdem Startseite erhalten Sie bei IntraShip kostenlos Etiketten f r den Ausdruck der Versandmarken Ablauf der Versandabwicklung Sind Sie einmal registriert loggen Sie sich auf dieser Seite mit Ihren Zugangsdaten ein Anschlie end sehen Sie bereits die Men struktur mit den unterschiedlichen Funk tionen S Bild 1 Hier interessiert uns aktuell der Bereich Versenden Einen Klick sp ter landen Sie auf der IntraShip Seite von DHL s Bild 2 Hier K nnen Sie nun manuell die Daten f r ein Paket eingeben Versandabwicklung PaketlNeuer Auftrag Unter Absender legen Sie Ihre eigenen Daten fest unter Empf nger die Adresse des Empf ngers Das ist aber nicht unser Ziel wir wollen ja DHL Sendungen auf Basis der Daten einer Tabelle mit den Empf ngerdaten erzeugen Um einen ersten Einblick zu gewinnen was wir dazu ben tigen w hlen wir den Men p
38. e Satzart namens Absender auch mit dieser Zahl enth lt aber die Absenderinformationen 1234IDPEE SENDERI6275498028lAndr Minhorst VerlagllAndr MinhorstiBorkhofer Str 11711471371Duis burgIDEllandre minhorst comI0123 45678901111111111111 III Das Element der Satzart Empf nger enth lt logischerwei se die Adresse und weitere Informationen zum Empf nger der Sendung 1234IDPEE REGEIVERIAndre Minhorst VerlagllilHerr Klaus M llerlBorkhofer Str 1171147137IDuisburgiDEllkla us mueller delllililiiliiilill Danach folgt eine Zeile welche die Daten f r die Satzart Packst ck aufnimmt diese Zeile kann wenn es sich um www access im unternehmen de 992 VBA UND PROGRAMMIERTECHNIK KLASSE F R DHL INTRASHIP CSV DATEIEN mehrere Packst cke handelt auch mehrfach vorkommen Sie sieht so aus 1234IDPEE ITEMI1 311lIIPKIl Die letzte von uns in diesem Beitrag behandelte Zeile enth lt die E Mail Adresse des Empf ngers der Versand benachrichtigung Satzart Benachrichtigungen Auch hier k nnen Sie mehrere S tze der gleichen Art an geben beispielsweise um sich selbst und dem Empf nger eine Benachrichtigung zu schicken die etwa die Nummer f r die Sendungsverfolgung enth lt Sie ist beispielsweise wie folgt aufgebaut 1234IDPEE NOTIFIGATIONIlandre minhorst comill Warum Klassen Man k nnte beispielsweise das erste Element mit den grundlegenden Informationen zur Sendung wie folgt in die CSV Datei schreiben Print 1
39. e Versandmarken im PDF Format erstel len lassen Ein Klick auf die Schaltfl che Alle ausw hlen Seite 37 www access im unternehmen de 991 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de ACCESS VBA UND PROGRAMMIERTECHNIK KLASSE F R DHL INTRASHIP CSV DATEIEN Klasse f r DHL Intraship CSV Dateien Die CSV Dateien die f r die Einreichung bei DHL f r die Erstellung von Versandetiket ten gefordert werden sind erstens sehr umfangreich und zweitens auch noch komplex Diese einfach per Code zusammenzusetzen mag auf den ersten Blick schnell gehen aber was geschieht wenn sp ter einmal nderungen n tig sind Um die Programmie rung des Exports einer CSV Datei f r DHL Intraship zu vereinfachen erstellen wir in diesem Beitrag einige Klassen mit denen das Zusammenstellen der CSV Dateien zum Kinderspiel wird Im Beitrag Versandetiketten mit DHL IntraShip www access im unternehmen de 991 zeigen wir wie Sie eine CSV Datei mit den Versandinformationen an die Webseite von DHL IntraShip bergeben und damit entsprechende Versandetiketten erhalten Dabei setzen Sie dort einen Satz von Klassen ein welcher die einfache Erstellung der GSV Datei erm glicht Den Aufbau und die Erstellung dieser Klassen m chten wir im vorliegenden Beitrag erl utern Ausgangsmaterial PDF Dokument mit CSV Beschreibung Grundlage f r die Erstellung der Klasse ist ein PDF Dokument das die verschied
40. eTypedValue rst HashValue objBACStatementlLine selectSingleNode HashValue nodeTypedValue rst Amount Eval objBACStatementlLine selectSingleNode Amount nodeTypedValue rst StatementNr objBACStatementLine selectSingleNode StatementNr nodeTypedValue rst BookingDate DatumAusXML objBACStatementlLine selectSingleNode BookingDate nodeTypedValue rst Currency objBACStatementLine selectSingleNode C Currency nodeTypedValue rst Valuta DatumAusXML objBACStatementLine selectSingleNode C Valuta nodeTypedValue rst Bookingref objBACStatementLine selectSingleNode BookingRef nodeTypedValue On Error Resume Next rst Purpose objBACStatementLine selectSingleNode C Purpose nodeTypedValue rst RecBankId objBACStatementlLine selectSingleNode RecBankId nodeTypedValue rst RecAccountNr objBACStatementLine selectSingleNode RecAccountNr nodeTypedValue On Error Golo 0 rst RecName objBACStatementLine selectSingleNode RecName nodeTypedValue On Error Resume Next rst Update Select Case Err Number Case 0 3022 Case Else MsgBox Fehler amp Err Number amp amp Err Description End Select On Error Golo 0 Next objBACStatementLine End Sub den beiden Variablen strErrorGode und strErrorText Ein diesen Fehler beispielsweise hervorrufen indem Sie im Response Dokument mit diesen Fehlerinformationen Testsystem als PIN einen Wert eingeben der mit 0 beginnt sieht beispielsweise wie in Listing 3 aus Sie K nnen al
41. ei nicht herumkommen au er Sie lagern diese aus aber zumindest die Erstellung der Versandetiketten wollen wir soweit es geht vereinfachen Deshalb schauen wir uns in dieser Ausgabe an welche M glichkeiten DHL in diesem Bereich f r Gesch ftskunden bietet Wir K nnten uns der Aufgabe zwar auch auf der Privatkunden Schiene n hern aber die besseren M glichkeiten der technischen Anbindung erh lt man als Gesch ftskunde Im Beitrag Versandetiketten mit DHL IntraShip schauen wir uns ab S 35 zun chst einmal an wie Sie sich am Gesch ftskundenkonto anmelden und dort eine CSV Datei mit den Daten f r die Erstellung der Versandetiketten einrei chen Weiter geht es mit dem Beitrag Klasse f r DHL Intraship CSV Dateien der ab S 40 erkl rt wie Sie die Daten f r die Er stellung der Versandetiketten strukturiert erstellen Dabei tauchen wir einmal mehr in die objektorientierte Programmierung ein denn wir verwenden dort eine kleine Struktur aus verschachtelten Klassen Das Ergebnis nutzen wir dann in der L sung aus dem Beitrag Bestellverwaltung mit Versand ab S 51 Wir legen den Grundstein f r die Zusammenstellung der Versanddaten indem wir einen Satz von Tabellen und Formularen vorstellen mit denen Sie schnell Kunden und Bestellun gen eintragen k nnen Diese wandeln wir mithilfe der zuvor vorgestellten Klasse in eine CSV Datei um die wir dann ber die Internetseite von DHL zur Erstellung der gew nschten V
42. eichenfolge Servery SERVER I database windows net PORT 14 33 DATABASE Testdatenbank UID Datensatz 4 4 1von4 PWDS OK Testen Als Standard I Neu Kopieren als L schen Im Export Datensatz H Bild 2 Verwalten der zu verwendenden Verbindungszeichenfolge s frmSQLBefehle Bezeichnung Beispiele Buch Verbindung Azuredatenbank Cr L Ra ul Ausf hren INSERT INTO tblTest Test VALUES 123 Bild 3 Markieren der auszuf hrenden SQL Anweisung Sie aber vielleicht ein paar Anweisungen eingeben und diese nacheinander ausf hren e Auswahlabfragen SELECT Dann k nnen Sie die jeweils auszuf hrende Anweisung einfach markieren und diese dann durch Bet tigen der Schaltfl che Ausf hren oder der Taste F5 starten UPDATE DELETE SQL SERVER UND CO T SQL PER FORMULAR Damit Sie wissen welche Anweisungen aktuell f r die Ausf hrung vorgesehen sind zeigt das Formular diese Zeilen unter dem Eingabefeld f r die SQL Anweisungen an Wenn Sie also nur eine einzige Zeile wie in Bild 3 markieren dann wird auch nur diese angezeigt und durch F5 oder Ausf hren auch ausgef hrt Fehlt noch das Unterformu larsteuerelement im unte ren Bereich des Formulars Dieses zeigt die Ergebnisse der ausgef hrten Anwei sungen an Bei Datensatz nderungen wie dem L schen ndern oder Hinzuf gen wird hier beispielsweise die Anzahl der betroffenen Datens tze ausgegeben Wen
43. eine neue Abfrage in der Entwurfsansicht ffnen und dem Benutzer die M glichkeit geben die Feld AbfragelD Abfragebezeichnung m Tabelle tblAbfragen tblAbfragen gew nschten Tabellen und Felder in den Entwurf Sortierung Aufsteigend i Bu i j Anzeigen Fl Fj zu ziehen Dieser Teil ist einfach und wird durch Kriterien oder die folgende Prozedur realisiert Private Sub cmdNeu_CIickO Bild 5 Abfrage die als Datensatzherkunft des Listenfeldes IstAbfragen dient Dim db As DAQ Database Die Prozedur definiert in strAktuelleAbfrage den tem Dim qdf As DAO QueryDef por ren Namen der zu erstellenden Abfrage Die Variable Set db CurrentDb strAktuelleAbfrage ist modulweit deklariert strAktuelleAbfrage qryTemp New On Error Resume Next Private strAktuelleAbfrage As String db QueryDefs Delete strAktuel leAbfrage On Error GoTo 0 Die Prozedur l scht dann eine eventuell noch vorhandene Set qdf db CreateQueryDef strAktuelleAbfrage tempor re Abfrage mit dem Namen qryTemp_New und DoCmd OpenQuery strAktuelleAbfrage acViewDesign legt diese mit der Methode GreateQueryDef neu an Da End Sub nach ffnet die OpenQuery Methode des DoGmd Objekts Seite 4 www access im unternehmen de 988 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de ABFRAGETECHNIK UND SQL ABFRAGEVERWALTER E H mN z ABFRAGETOOLS diese Abfrage in der Entwurfsan sicht START ERSTELLEN
44. enen S tze beschreibt die Sie ben tigen um die Informationen zu einer Versendung unterzubringen Dieses Dokument namens Auftragsim port DD Shipments 6 1 DE PDF das Sie als Gesch fts kunde anfordern k nnen wir k nnen es leider nicht zum Download anbieten ist immerhin 27 Seiten lang Wir haben davon die f r eine Sendung von Deutschland aus an ein Ziel innerhalb Deutschlands oder in ein anderes EU Land n tigen Elemente in Form entsprechender Klassen umgesetzt Es gibt noch einige weitere Elemente die beispielsweise zur Erstellung einer ProForma Rechnung oder der Zollpapiere f r den Versand etwa in die Schweiz ben tigt werden Deren Umsetzung beschreibt der vorlie gende Beitrag nicht Das PDF Dokument enth lt die Beschreibung verschie dener Satzarten von denen einige verpflichtend sind ein paar andere k nnen optional hinzugef gt werden F r SIGEAN einen Auftrag ben tigen Sie auf jeden Fall eine Zeile der Satzart Sendung die etwa so aussieht jede Information ist durch das Pipe Zeichen von der n chsten Information getrennt 1234IDPEE SHIPMENTIEPNI2015062911 311l AEMAIIINNNI III OOIEURIIIIINOG IIIIIIIIIIIIIIIIIIIIIIIIIIITNN Sie enth lt die grundlegenden Informationen zu der Sendung wie die Sendungsart das Datum das Gewicht den Warenwert oder eine Sendungsreferenz Au erdem enth lt sie als Erstes eine Zahl die f r alle weiteren S tze f r diese Sendung gleich sein muss Dementsprechend beginnt die zweit
45. ernehmen de Lie a to EZ BEE Hauptmen CSV Daten importieren 3 Produktcode Im komonummel _ snomenine _ Jsenunassum PEHERSSTenptne gene 6275498028 1003404338367381 10442 21 06 15 EPN 01 PF Fehlermeldung m mn Fehlermeldun Sendungen wurden korrekt und 0 Sendungen davon fehlerhaft i Import Koptonumme Shipment No Sendungsdatum an Empf nge 69003031 6275498028 003404338367381 10442 21 06 15 EPN 01 FEN M Fehlermeldung Info nfo Import succeeded Produktcode 2 99003032 6275498028 10034043383673811043 21 06 15 EPN 01 Error Level Fehlermeldung nfo Info Import succeeded Produktcode Import Kontonummer Shipment No Sendungsdatum Empf nge 99003033 6275498028 1003404338367381 10428 21 06 15 EPN 01 Fehlermeldung Info Info Ga EEEE Info Import succeeded Produktcode Fehlermeldung aeea Info Produktcodej Sendungsdatum nn Empf nger nfo Import succeeded INTERAKTIV VERSANDETIKETTEN MIT DHL INTRASHIP Das Ergebnis sieht optima lerweise wie in Bild 4 aus Alle bereitgestellten Daten der CSV Datei wurden ohne Fehler eingelesen Dies er kennen Sie gleich im ersten Datensatz mit der Import ID 1 000 000 eigentlich sollte dieser Datensatz ganz unten stehen was aber wegen der von mir verwen deten hohen Zahlen f r die Import ID fehlschl gt Darunter folgen die ei gentlichen Positionen f r die einzelnen Lieferungen wobei diese leider nur recht wenige
46. ersandetiketten berge ben Als Ergebnis erhalten wir dort unter anderem eine Liste der Sendungsnum mern die wir zum Zwecke der Sen dungsnachverfolgung zu den Bestelldaten hinzuf gen In den weiteren Beitr gen dieser Ausgabe Schauen wir uns zum Beispiel an wie Sie mal eben schnell eine Abfrage erstellen und speichern ohne damit den Navigali onsbereich der aktuellen Access Daten bank zu berfrachten siehe Abfrage verwalter ab S 2 Das dazu ben tigte Formular bietet auch die M glichkeit mehrere Abfrageergebnisse parallel auf mehreren Seiten eines Registersteuerele ments anzuzeigen Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de ACCESS Au erdem beenden wir unsere Beitrags reihe zum Thema Onlinebanking per Webservice Im dritten Teil erfahren Sie ab S 61 wie Sie die Ums tze Ihrer Konten direkt von Access aus einlesen k nnen und eine berweisung von einem Access Formular aus durchf hren k nnen Der Beitrag T SQL per Formular liefert ein weiteres Tool f r unsere Sammlung der RDBMS Add Ins Hier k nnen Sie eine SQL Server Abfrage ausw hlen und Abfragen auf Basis der Tabellen der gew hlten Datenbank ausf hren egal ob es sich um Auswahl oder Aktionsab fragen handelt ab S 15 Schlie lich finden Sie in dieser Ausga be den zweiten Teil der Beitragsreihe Outlook Mails in Access archivieren ab S 26 Dort liefern wir die Techniken um die im ersten Teil de
47. esch tzt Jede Verwertung die nicht ausdr cklich vom Urheberrechtsge setz zugelassen ist bedarf der vorherigen Zustimmung des Verlags Das gilt insbesondere f r Vervielf ltigungen Bearbeitungen bersetzungen Mikroverfilmung und f r die Einspeicherung in elektronische Systeme Wir weisen darauf hin dass die verwendeten Bezeichnungen und Markennamen der jeweiligen Firmen im Allgemeinen warenzeichen marken oder patentrechtlichem Schutz unterliegen Die im Werk gemachten Angaben erfolgen nach bestem Wissen jedoch ohne Gew hr F r m gliche Sch den die im Zusammenhang mit den Angaben im Werk stehen k nnten wird keine Gew hrleistung bernommen Seite U2 www access im unternehmen de Geschickt verschicken Wer die Bestellungen seiner eigenen Produkte mit einer Access Datenbank verwaltet oder eine solche Datenbank f r seine Kunden programmiert schlie t eine Bestellung in der Regel mit dem Versand des bestellten Produkts ab F r den Versand gibt es nicht nur diverse Dienstleister sondern auch verschiedene M glichkeiten die f r den Versand n tigen Daten letztlich in ein Versandetikett umzuwandeln In dieser Ausgabe von Access im Unter nehmen legen wir zun chst den Grund stein zur weitgehenden Automatisierung des Versands Weitgehend deshalb weil Sie ja immer noch die Ware verpacken mit dem Versandetikett versehen und die Ware zur Post bringen oder abholen lassen m ssen Um ein paar Handgriffe werden Sie dab
48. ette hinzu www access im unternehmen de 990 Seite 29 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de INTERAKTIV ACCESS frmMailltems 7 Ihre Bestellung im Andr Minhorst Verla NACHRICHT ENTWICKLERTOOLS vg Verschieben 2 Antworten l Er Allen antworten In OL wi T 3 Weiterleiten Suchen Alle anzeigen Erhalten 20 10 2013 18 27 45 Ihre Bestell 20 10 2013 18 51 08 Re Kater fl 20 10 2013 21 51 59 Newsletter 20 10 2013 22 20 07 Ihre Anmel 20 10 2013 22 20 55 e Bestellun 21 10 2013 07 40 13 Newsletter 21 10 2013 08 16 11 Ihre Anmel 21 10 2013 08 36 27 Antwort Ih Verschieben Antworten So 20 10 2013 22 21 An automatischen Download Datensatz 4 4 39714 von 48560 gt M Bild 6 Eine per Doppelklick ge ffnete E Mail Wenn der Benutzer beispielsweise als Absender den Wert andre minhorst com eingibt lautet der Ausdruck in strFilter f r diesen Schritt wie folgt AND Absender LIKE andre minhorst com Sie erkennen hier bereits dass wir mit dem LIKE Opera tor und dem Sternchen als f hrenden und abschlie en den Platzhalter arbeiten Dadurch liefert das Suchergeb nis auch solche Eintr ge die den angegebenen Text nur enthalten nicht aber komplett mit diesem identisch sein m ssen Auf diese Weise f gt die Prozedur schrittweise die in den Textfeldern angegebenen Vergleichswerte zu einem Filterausdruck zusammen Ein Unterschied ergibt sich
49. g diese im Dateisystem abzulegen Letzteres legen Sie sich auch in den jeweiligen pst Dateien sodass ein durch den Wert f r die maximale Gr e der in der Da separates Speichern grunds tzlich nicht erforderlich ist tenbank zu speichernden msg Dateien in den Optionen Die Tabelle tbIMailltems enth lt nun einige Datens t der L sung fest Alle Dateien die gr er sind landen im ze mit den Metadaten einer E Mail sowie dem Inhalt Verzeichnis MSG Au erdem enth lt die Tabelle ein Anlagefeld das die msg Datei aufnehmen kann sofern diese die maximal Das Verzeichnis Anlagen enth lt soweit Anlagen noch zul ssige Gr e nicht berschreitet s Bild 2 mals in separate Dateien extrahiert werden sollen alle Anlagen der archivierten E Mails Die Anlagen befinden Die Tabelle tblAnlagen speichert zu jeder Anlage einer Mail einen Datensatz der ber tblMailltems das Feld MailltemID mit der EntryID ea i Hay Tabelle tblMailltems verkn pft RERS 00000000809CC08917748749 AW Kontaktformular Shopware Hallo Herr Minnhors f 43336 00000000809CC08917748749 Re AW Intellisense f r SQL Onlir Hallo Andre ist s Bild 3 Die dortigen Felder 43337 00000000809CC08917748749 K ndigung Abo Access Basic Acce geben an in welchem Verzeich 43338 00000000809CC08917748749 Kontaktformular Shopware Kontaktformular She j 43339 00000000809CC089177487494 WG Anfrage Json Datei nis die Anlagen gespeichert sind 43340 00000000809CC089177
50. ges Heft nur f r Abonnenten www access im unternehmen de VBA UND PROGRAMMIERTECHNIK ACCESS Public Sub BeispielDHL Dim Set objDPEEMain As cIsDPEEMain objDPEEMain New cIsDPEEMain With objDPEEMain End End Sub Listing 1 ST CCW rdnungsnummer 1234 With DPEEShipment Produktcode eDHLPaket Sendungsdatum Date Gewicht 1 3 Sendungsreferenz AEMA Warenwert 100 narenwertWaehrung EUR Teilnahme 01 End With With DPEESender Kundennummer 6275498028 Firmennamel Andr Minhorst Verlag Kontaktperson Andr Minhorst Strasse Borkhofer Str Hausnummer 17 PLZ 47137 Stadt Duisburg Laendercode LaendercodeAusLand Deutschland Emailadresse andre minhorst com Telefonnummer 0123 4567890 End With With DPEEReceiver Firmenname Andr Minhorst Verlag Firmenname2 Kontaktperson Herr Klaus M ller Strasse Borkhofer Str Hausnummer 17 PLZ 47137 Stadt Duisburg Land LaendercodeAusLand Deutschland Emailadresse klaus mueller de End With With AddDPEEItem GewichtDesPackstueckesInkg 1 3 PackartKollitraeger ePaket End With With AddDPEENotification Emailadresse andre minhorst com End With With AddDPEENotification Emailadresse test test de End With Open CurrentProject Path amp dhltest csv For Output As 1 Print 1 Satz Close 1 With Erstellen einer CSV Datei f
51. gxGbIl1l5Nit lt ContactData gt lt Account Id gt C29990EF 1F05175C1E952DF20054986679829427 lt Account 1d gt lt StatementlLines gt lt BACStatementLine gt lt BusinessTransactionCode gt 51 lt BusinessTransactionCcode gt lt HashVa lue gt 62F619DFA221AD05958F6AF06957438DA4E6816C8 lt HashValue gt lt Amount gt 1 lt Amount gt lt StatementNr gt 54 lt StatementNr gt lt BookingDate gt 2015 06 26100 00 00 lt BookingDate gt lt Currency gt EUR lt Currency gt lt Valuta gt 2015 06 26100 00 00 lt Valuta gt lt Book ingref gt NONREF lt Bookingkef gt lt BookingText gt berweisungseingang lt BookingText gt lt Purpose gt Testlastschrift lt Purpose gt lt RecBank Id gt DDBADEMMOO2 lt RecBankId gt lt RecAccountNr gt DE95700009972000735160 lt RecAccountNr gt lt RecName gt USER 735160 lt RecName gt lt BACStatementlLine gt lt StatementLines gt lt SuccessText gt Die Nachricht wurde entgegengenommen 0010 Der Auftrag wurde ausgef hrt lt SuccessText gt lt StatementRequestResult gt lt StatementRequestkesponse gt lt soap Body gt lt soap Envelope gt Listing 5 XML Dokument mit den Umsatzdaten hier nur f r eine Umsatzposition Seite 66 www access im unternehmen de 994
52. h die dazugeh rige Trackingnummer in der Tabelle speichern Diese erhalten wir bei der Verwendung der nachfolgenden Technik zwar nur auf einem kleinen Umweg aber immer noch schneller als wenn wir diese von Hand eintragen Formulare der L sung Das erste Formular hei t frmBestellungsdetails und soll die einfache Eingabe von Bestellungen erm glichen s Bild 2 Dazu geben Sie das Bestelldatum im Feld Be stelldatum ein und w hlen einen der bereits angelegten Kunden aus dem Kombinationsfeld cboKundelD aus Gegebenenfalls handelt es sich um einen neuen Kunden 1 30 06 2015 Andr Minhorst Verlag X om Bestellposit ArtikellD 4 Anwendungen entwickeln mit Access Andre Minhorst Verlag Versanddatum 30 06 2015 Datensatz 4 i von 2 b M bi Suchen Bild 2 Das Formular frmBestellungsdetails in der Formularansicht diesen k nnen Sie dann ber einen Klick auf die Schaltfl che mit den drei Punkten neben dem Kombinationsfeld in einem weiteren Formular hinzuf gen Mit dieser Schaltfl che k nnen Sie das gleiche Formular nach der Auswahl eines Kunden ffnen um dessen Kun dendaten zu bearbeiten s Bild 3 Unten finden Sie ein Unterformular in der Datenblattan Sicht vor mit dem Sie die Bestellpositionen zu der aktuel len Bestellung hinzuf gen k nnen Dazu w hlen Sie den gew nschten Artikel mit dem Kombinationsfeld aus Dadurch stellt das Unterformular automatisch die Inhalte der Felder
53. ie Variable IngAbfragelD ein Nur wenn noch keine Abfrage gleichen Namens vorhan den ist fragt die Prozedur den Benutzer ob dieser die erstellte Abfrage sichern m chte Dann fragt die folgende Seite 5 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de ABFRAGETECHNIK UND SQL ABFRAGEVERWALTER Private Sub Form Activate Dim db As DAO Database qdf As DAO QueryDef Dim strAbfrageSQL As String strAbfragebezeichnung As String strAbfrageeigenschaften As String Dim IngAbfragelD As Long strSQL As String If Len strAktuelleAbfrage gt 0 Then If IstAbfrageGeoeffnet strAktuel leAbfrage Then MsgBox Bitte speichern und schlie en Sie die tempor re Abfrage amp strAktuelleAbfrage amp Exit Sub End If Set db Currentbb Set qdf db QueryDefs strAktuelleAbfrage If CDec adf DateCreated CDec qdf LastUpdated Then Exit Sub Else strAbfragesQL qdf SQL strAbfrageeigenschaften Abfrageeigenschaften adf IngAbfrageID Nz DLookup AbfragelID tblAbfragen qryTemo amp Abfragebezeichnung amp qdf Name amp 0 If IngAbfragelD 0 Then If MsgBox Soeben erstellte Abfrage sichern vbYesNo vbYes Then strAbfragebezeichnung Mid adf Name 9 strAbfragebezeichnung InputBox Bezeichnung der Abfrage Abfrage speichern strAbfragebezeichnung Do While Not IsNull DLookup AbfrageID tblAbfragen Abfragebezeichnung amp strAbfragebezeichnung amp strAbfragebe
54. in As c1sDPEEMain Set objDPEEMain New c1sDPEEMain With objDPEEMain rdnungsnummer 1234 With DPEEShipment Produktcode eDHLPaket Sendungsdatum Date Gewicht 1 3 Sendungsreferenz TAEMA war Versicherungswert Volumen erie VorausverfuegungTransport Wite vorausverfuegungTyp WarenwertWaehrung Zustelldatum Hausnummer 17 PLZ 47137 Stadt Duisburg Laendercode LaendercodeAusLand Deutschland Bild 1 IntelliSense beim Programmieren der Erstellung der CSV Datei www access im unternehmen de 992 Versierte Access Entwickler haben nach der Durchsicht dieses Beispielcodes schon eine Vorstellung wie sie auf dieser Basis den Code erstellen um die ben tigten Infor mationen aus einigen Tabellen zusammenzusuchen und so in die CSV Datei zu schreiben Klassen programmieren Nun fehlt noch die Antwort auf die Frage Wie kommt man von der Definition des Aufbaus der verschiedenen Satzarten aus einem 27 Seiten langen PDF Dokument das beispielsweise wie in Bild 2 aussieht zu einer Reihe von Klassenmodulen welche die Eingabe dann wie hier beschrieben erleichtern Dazu geh rt in der Tat entweder eine Menge Handarbeit oder was wir Access Entwickler eindeutig bevorzugen ein paar Zeilen VBA Code die uns einen Gro teil der Arbeit abneh men Wir haben es im Detail mit f nf Tabellen zu tun die von weniger als zehn bis zu knapp 100 Zeilen enthalten Jede Tabelle beschreibt e
55. ine Satzart also ben tigen wir f r jede Tabelle eine eigene Klasse Jede Zeile der Tabelle beschreibt Seite 43 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de VBA U ND PROGRAMMIERTECHNIK KLASSE F R DHL INTRASHIP CSV DATEIEN Pflicht Feld Datentyp Beispiel l nge NUMMER LI a beschreibt die er E ee des Satzes innerhalb der Datei ee er TEXT 6 SummeVolmen J O 2 NUMMER a ersicherungswert __O 22 NUMMER J 23237 a der Airoa die Sendung Alle zugeh ngen S tze zu einer Sendung verweisen auf diese ummer Bild 2 Umzusetzende Beschreibung aus dem PDF dhl_20150624 cv X rdnungsmummer String 10 Satzart String 30 GewichtDesPackstueckesInfg Currency LaengeDbesPackstueckesIn nm Long BreitebesPackstueckesIncon Long HoeheDbesPackstueckesIn m Long FackstueckBeschreibung String amp 0 Packartkollitraeger String 35 Packstueckreflerenz String 35 Referenznummer String 2 0 0 m an b A IM Dummerweise k nnen wir die Inhalte der Tabellen noch nicht einmal direkt in eine Excel oder Access Tabelle einf gen zwar landet jede Zeile in einer eigenen Zeile der Zieltabelle aber die Spalten werden alle in das erste Feld geschrieben Also sind wir so vorgegangen Wir haben die Ta bellen zun chst in eine Text Datei geschrieben Tab Zeichen zwi schen die erste und zweite Spalte gebracht in die dri
56. lle Fehlerinfor mationen zur ckgeliefert werden k nnen sowie das Start und das Enddatum wenn nur die Ums tze eines begrenzten Zeitraums eingelesen werden sollen dee Zee Beer ee ee Das zur ckgelieferte XML Dokument wertet die Prozedur dann gleich aus zun chst indem sie pr ft ob das Ergebnisdokument ein Element namens SuccessText enth lt Ist dies der Fall war der Aufruf des Webservice erfolgreich und wir k nnen uns an die Auswertung begeben Das bedeutet in diesem Fall dass wir den Inhalt des XML Dokuments zusammen mit dem Wert von strAccountnumber an die Routine Umsaetze Verarbeiten bergeben Danach brauchen wir nur noch das Unterformular sfmUmsaetze zu aktualisieren damit die neu eingelesenen Umsatzpositionen dort angezeigt werden Ums tze vom Webservice holen Die Funktion StatementRequest aus Listing 2 erwartet die bereits erw hnten Parameter Sie fragt als Erstes per InputBox den PIN f r den Zugriff auf das Konto ab und speichert diesen in der Variablen strPIN Dann beginnt sie den Request zusammenzusetzen Die ses sieht anschlie end beispielsweise wie folgt aus www access im unternehmen de 994 SIGE Y Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de L SUNGEN ONLINEBANKING PER WEBSERVICE Ill ACCESS Private Sub cmdUmsaetzeEinlesen Click Dim strContactData As String Dim strAccountld As String Dim strAccountnumber As String Dim strErrorCo
57. m unternehmen de ABFRAGETECHNIK UND SQL ABFRAGEVERWALTER Speicherort der Abfragen B o Nun werden Sie sich zu Recht re Ji Autowert E Prim rschl sselfeld der Tabelle fragen Wenn die Abfragen schon BIEHERESE EINER in ai Au BE idiki Abfrages L Langer Text 5QL Ausdruck der Abfrage nicht im Navigationsbereich Abfragebeschreibung Langer Text Beschreibung der Abfrage Abfrageeigenschaften Langer Text Eigenschaften der Abfrage der Datenbank auftauchen wo UVebersichtsposition Zahl Position der Abfrage im Registersteuerelement werden diese dann gespeichert ERTL SHE Em Ganz einfach Wie legen f r jede Allgemein Nachschlagen hier hinzugef gte Abfrage einen ee gt neuen Datensatz in einer speziell m 1 Standardwert f r diesen Zweck vorbereiteten a Ein Feldname kann bis zu 64 Zeichen lang G ltigkeitsmeldung sein einschlie lich Leerzeichen Dr cken Sie Tabelle an Eingabe erforderlich Nein F1 um Hilfe zu Feldnamen zu erhalten L Zeichenfol J z Ohne Duplikate A i Unicode Kompression la Diese Tabelle hei t tblAbfragen IME Modus Keine Kontrolle IME Satzmodus Keine und sieht in der Entwurfsan Textausrichtung Standard Sicht wie in Bild 2 aus Das Feld Abfragebezeichnung soll die Bezeichnung aufnehmen und ist als eindeutiger Index ausgelegt Bild 2 Entwurf der Tabelle zum Speichern der Abfragen gryTernp_Alle Artikel Auf diese Weise verhindern wir tblArtikel dass
58. n Sie eine SELECT Abfrage ausf h ren liefert das Unterformu lar bis zu zehn Felder des Abfrageergebnisses Sie k nnen also die folgen den Abfragetypen mit dem hier vorgestellten Formular ausf hren e Aktualisierungsabfragen INSERT INTO SELECT INTO www access im unternehmen de 989 Seite 16 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de SQL SERVER UND CO T SQL PER FORMULAR frmSQLBefehle Tabelle tbISQLBefehle als Beispiele Buch Datenherkunft Das Feld Verbindung Azuredatenbank Lan SQLBefehl soll dabei als SQL CREATE TABLE tblTest Test INT INSERT INTO tblTest Test VALUES 234 Memofeld ausgelegt sein INSERT INTO tblTest lest VALUES 345 456 da eine SQL Anweisung leicht einmal mehr als 255 Zeichen umfasst Verbin dunglD ist ein Fremd n schl sselfeld zur Tabelle nn tbIVerbindungszeichen folgen und Bezeichnung ein einfaches Textfeld Ergebnis Diese Tabelle finden Sie in der Entwurfsansicht in Bild Datensatz H lvon Fl ki Suchen 6 Die Felder der Tabelle Datensatz M lvaond FO ki Suchen l en i er werden mit Ausnahme Bild 4 Ausgabe von Fehlermeldungen des Prim rschl sselfel des im oberen Teil des e Datendefinitionsabfragen CREATE TABLE et cetera z3 frmSQLBefehle 1 x DU RcEE Bares BEE Bar a Ze Ba SE Baer BE Bee Br Bere Er TE Das Unterformular liefert sogar eine entspre Detailberei
59. nd With End Sub BESTELLVERWALTUNG MIT VERSAND Diese pr ft ob das ff nungsargument einen Wert enth lt und stellt das Formular in diesem Fall auf den betroffenen Datensatz ein Versand vorbereiten Die Schaltfl che cmd VersandVorbereiten im unteren Bereich l st die Listing 1 ffnen des Formulars zum Bearbeiten der Kundendetails oder zum Erstellen eines neuen Kunden tails auf den Wert Event Procedure ein Dieses Ereignis programmieren wir dann wie folgt Private Sub frmKundendetails Unload Cancel As Integer If Not IsNull frmKundendetails KundeID Then Me cboKundeID Requery Me cboKundeID FrmKundendetails KundelD End If End Sub Dies sorgt daf r dass wenn der Benutzer das Formular frmKundendetails schlie t vorher noch das Ereignis frmKundendetails_Unload im Klassenmodul des Formu lars frmBestellungsdetails ausgef hrt wird und zweierlei erledigt die Datensatzherkunft des Kombinationsfeldes cboKundelD zu aktualisieren und den aktuell im Formular angezeigten Datensatz dort auszuw hlen Kundendetails bearbeiten Damit das Formular frmKundendetails gleich beim ffnen den richtigen Datensatz anzeigt legen Sie die folgende Prozedur f r das Ereignis Beim ffnen des Formulars an Private Sub Form Open Cancel As Integer If Not IsNull Me OpenArgs Then Me Recordset FindFirst KundelD amp Me OpenArgs End If End Sub Seite 54 folgende Prozedur aus Private Sub cmdVersandVorbereiten_Click
60. ndungszeichenfolgen Verbindungszeic sfmSQLBefehle ung Eigenschaftenblatt un Ung Auswa hltyp Textfeld un Ptol Ung Format Daten Ereignis Andere Alle Steuerelementinhalt lee Un Textformat Nur Text Ung Eingabeformat Standardwert Ung G ltigkeitsregel henfolgeID Un G ltigkeitsmeldung k Filter anwenden Datenbankstandard End Sub Aktiviert la Gesperrt Nein Damit rufen wir nun das Formular frmVerbin dungszeichenfolgen auf und k nnen im For Bild 7 Entwurf des Unterformulars sfmSQLBefehle mular frmSQLBefehle auf das Beim Schlie en Ereignis von frmVerbindungszeichenfolgen reagieren Dort aktualisieren wir den Inhalt von cboVerbindung falls im Formular frmVerbindungszeichenfolgen neue Ver bindungszeichenfolgen hinzugef gt oder welche gel scht wurden und stellen das Kombinationsfeld cboVerbin dung auf die zuletzt im Formular frmVerbindungszei chenfolgen gew hlte Verbindungszeichenfolge ein tblFehler Feldname Felddatentyp Beschreibu ng optional TH FehleriD Zahl Prim rschl sselfeld der Tabelle Fehler Kurzer Text Beschreibung des Fehlers Feldeigensch ften Allgemein Feldgr e Long Integer Format Dezimalstellenanzeige Automatisch Eingabeformat Beschriftung G ltigkeitsmeldung Eingabe erforderlich Ja Indiziert Ja Ohne Duplikate Textausrichtung Standard Bild 8 Entwurf der
61. nfolge per ffnungsar gument Dann speichert die Prozedur einen Verweis auf das For mular in einer Objektvariablen namens frmVerbindungs zeichenfolgen die im Kopf des Klassenmoduls wie folgt deklariert wird Dim WithEvents frmVerbindungszeichenfolgen As Form Der Hintergrund ist dass wir im Klassenmodul des aufru fenden Formulars frmSQLBefehle eine Ereignisprozedur definieren wollen die beim Schlie en des Formulars frm Verbindungszeichenfolgen ausgel st wird Dazu m ssen wir die Objektvariable mit dem Schl sselwort WithEvents auszeichnen Nun k nnen wir per VBA eine Ereignisproze dur f r die Ereigniseigenschaft Beim Entladen angeben OnUnload Event Procedure DoCmd OpenForm frmVerbindungszeichenfolgen OpenArgs Nz Me cboVerbindung 0 Set frmVerbindungszeichenfolgen Forms frmVerbindungszeichenfolgen With frmVerbindungszeichenfolgen Modal True OnUnload Event Procedure End With End Sub Listing 1 Formular zum Ausw hlen der Verbindungszeichenfolge ffnen STAG ER www access im unternehmen de 989 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de SQL SERVER UND CO T SQL PER FORMULAR Damit brauchen wir nun nur noch die folgende Ereignisprozedur im Klassenmodul des Formu lars frmSQLBefehle zu hinterlegen Private Sub frmVerbindungszeichenfolgen_ Unload Cancel _ As Integer Me cboVerbindung Requery MelcboVerbindung _ TrmVerbi
62. ngebunden Kontostand Ungebunden Detailbereich Amount waluta Purpose RecBanklD Bild 2 Anpassungen des Formulars frmKonten Ums tze abrufen Das Abrufen der Ums tze startet der Benutzer mit einem Klick auf die Schaltfl che emdUmsaetzeEinlesen Diese Prozedur sieht wie in Listing 1 aus und pr ft zun chst ob der Benutzer f r das Kombinationsfeld cboKontakte berhaupt einen Wert ausgew hlt hat Anderenfalls erscheint eine entsprechende Meldung und die Prozedur wird beendet Danach ermittelt die Prozedur den Wert des Feldes Con tactData f r den aktuellen Kontakt W hrend die folgen den Werte direkt aus den weiteren Spalten des Kombina tionsfeldes cboKontakte ausgelesen werden entnehmen wir diesen Wert per DLookup Funktion aus der Tabelle tbIKontakte Der Grund ist einfach Jede Spalte des Kombinationsfeldes kann nur 255 Zeichen aufnehmen ContactData ist aber l nger Danach liest die Prozedur die Werte der Felder AccountlD und Accountnumber der Tabelle tblKontakte ein die wir aber bereits in den folgenden Spalten des ak tuellen Eintrags des Kombinationsfeldes cboKonten gespeichert haben Kontostand einlesen ElAllekonten Dann setzt die Prozedur einen Aufruf der Funktion StatementRequest ab welche ein XML Dokument mit den angefragten Umsatz Informationen zur ckliefert Die Funktion erwartet die Werte der Felder ContactData und AccountlD zwei Para meter mit denen eventue
63. nlagen r Unbenannte Anlage 00734 png 43336 C Users Andre Documents Anlagen r Unbenannte Anlage 00737 png 43336 C Users Andre Documents Anlagen r Unbenannte Anlage 00740 png 43336 C Users Andre Documents Anlagen r Unbenannte Anlage 00743 png 43336 C Users Andre Documents Anlagen r Unbenannte Anlage 00746 png 43336 C Users Andre Documents Anlagen r Unbenannte Anlage 00749 png 43336 C Users Andre Documents Anlagen r Unbenannte Anlage 00752 png 43336 C Users Andre Documents Anlagen r Unbenannte Anlage 00755 jpg 43339 C Users Andre Documents Anlagen s demodaten zip 43339 C Users Andre Documents Anlagen s Benzinampel Schnittstelle Doku p ri 4 tblAnlagen Bild 3 Tabelle zum Speichern der Pfade zu den Anlagen Mails ber das Unterformular anzeigen Bevor wir auf die Suchfunktion eingehen schauen wir uns an wie Sie ber das Unterformular eine einzelne Mail im Mailfenster von Outlook ffnen k nnen Dazu soll der Benutzer einfach doppelt auf den entsprechenden Datensatz im Unterformular klicken k nnen Da es dazu kein allgemeines Ereignis namens Beim Doppelklicken f r den kompletten Formularbereich gibt m ssen wir dieses f r die einzelnen Textfelder im Unterformular an legen Die folgenden Ereignisprozeduren legen wir also im Klassenmodul des Unterformulars an Suchen Alle anzeigen In OL wiederherstellen Erhalten Betreff r Absender 05 05 2015 09 34 27 Ihre Bestellung im Andre Minho info amvshop de 25 02 201
64. nun im Rahmen dieser Bestellung angepasst hat das bearbeiteten Bestellung entsprechen keine Auswirkungen auf den Originalpreis Die Funktion speichert dann zun chst den Prim rschl s S tze f r die GSV Datei erstellen selwert der Bestellung als Sendungsreferenz in der Die Prozedur SatzErstellen erwartet mit dem Parameter Variablen strSendungsreferenz Anschlie end durchl uft IngBestellunglD den Prim rschl sselwert der Bestellung sie alle Datens tze des Recordsets rstBestellpositionen deren Bestellpositionen f r die Erstellung der S tze f r eine um den Gesamtpreis und das Gesamtgewicht aller zu Verwendung herangezogen werden sollen s Listing 2 versendenden Artikel dieser Bestellung zu ermitteln Und www access im unternehmen de 993 Seite 55 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de L SUNGEN ONLINEBANKING PER WEBSERVICE III Onlinebanking per Webservice Ill In den ersten beiden Teilen dieser Beitragsreihe haben wir uns die Funktionen f r das Einlesen von Informationen und das Konvertieren von Kontonummern in IBAN sowie das Ermitteln des Kontostandes angesehen Im abschlie enden letzten Teil wird es spannend Wir f gen Funktionen hinzu mit denen Sie die Kontoums tze abrufen und berweisungen t tigen k nnen Damit ist auch der aktuelle Leistungsumfang des hier abgebildeten Webservice der Firma B S Banksysteme AG beschrieben Die Nutzung ist weiterhin f r priva
65. ook Posteingang 9864 andre minhorst com Outlook Posteingang Newsle 5074 andre minhorst com Outlook Posteingang Newsle 5028 andre minhorst com Outlook Posteingang 35301 andre minhorst com Outlook Posteingang Newsle 4980 andre minhorst com Outlook Posteingang 18656 andre minhorst com Outlook Posteingang 213255 andre minhorst com Outlook Posteingang Newsle 4970 Seite 27 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de INTERAKTIV OUTLOOK MAILS IN ACCESS ARCHIVIEREN Il frmMailltems Bin Datenblattansicht des Un AA Tr terformulars der Benutzer Detailbereich _ Betreff Ungebunden klickt 1 Ungebunden Ungebunden Die Prozedur MailOeff inger Ungebunden nen finden Sie in Listing Ungebunden Datum bis Ungebunden 1 Die Prozedur nimmt Suchen Alle anzeigen In OL wiederherstellen als Parameter den Pri ee E m rschl sselwert des im e Unterformular angeklickten Betreff Datensatzes der Tabelle Absender tbIMailltems entgegen Empfaenger Empfaenger Sie ffnet dann ein Re Pfad cordset auf Basis der Ta Groesse belle tbIMailltems wobei diese nach dem bergebe nen Prim rschl sselwert gefiltert wird COs Bar a E u Bor BE Bee Be Be BE EL 1 Be Ba Bee Se a Be gt ae Be L Be EB 2 ee Eu Bee Do i f Bild 5 Entwurf des Formulars frmMailltems Private Sub Absender DbIClick Cancel As Integer MailOeffnen Me M
66. r Beitragsreihe eingelesenen E Mails zu durchsuchen anzuzeigen und diese sogar in Outlook wiederherzustellen Viel Spa beim Lesen a Tor Ihr Michael Forster STH www access im unternehmen de Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de ABFRAGETECHNIK UND SQL ABFRAGEVERWALTER Abfrageverwalter Geschieht Ihnen das auch regelm ig Sie wollen mal eben per Abfrage ein paar Da ten filtern sortieren oder zusammenf hren aber die Abfrage nach dieser Anwendung gleich wieder l schen Dummerweise vergessen Sie Letzteres und irgendwann ist das Datenbankfenster voller gespeicherter Abfragen Oder Sie ben tigen gleichzeitig die Ergebnisse verschiedener Abfragen finden die vielen ge ffneten Fenster im Access Hauptfenster aber un bersichtlich F r beides liefert unser Abfrageverwalter die L sung Sie k nnen damit mal eben eine Abfrage erstellen ohne dass diese dauerhaft im Navigationsbereich verbleibt Oder Sie zeigen die Ergebnisse mehrerer Abfragen ber sichtlich im Registersteuerelement eines einzigen Formulars an Damit Sie gleich eine Vorstellung davon bekommen e Anzeigen ffnet die im Listenfeld ausgew hlte Abfra wie diese L sung aussehen soll schauen wir uns das ge in der Datenblattansicht Formular aus Bild 1 an Hier finden Sie eine ganze Reihe Elemente zuoberst ein Listenfeld Dieses zeigt alle mit e L schen Entfernt die Abfrage aus dem Listenfeld dem
67. rwal Folgendes angibt Wenn das Feld leer ist soll diese tung der Abfragen begeben Abfrage nicht in der bersicht der Abfrageergebnisse im www access im unternehmen de 988 Seite 3 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de ABFRAGETECHNIK UND SQL ABFRAGEVERWALTER Das Formular frmAbfragen men nz Das Formular sieht in der Entwurfs u u Ze ansicht wie in Bild 4 aus Es enth lt Abfragen Ungebunden ein Listenfeld zur Anzeige der in der i Tabelle tblAbfragen gespeicherten Abfragen einige Schaltfl chen 3 Neu Entwurf Anzeigen L schen Zu bersicht hinzuf gen Aus bersicht entfernen sowie ein Registersteuerelement pge01 pge02 pgeos pgeos pgeos pgeos pgeor pgeos pgeos pge10 mit zehn Registerseiten z Jj Praedunden Listenfeld zur Anzeige der Abfragen Das Listenfeld hei t IstAbfragen und verwendet die Abfrage aus Bild 5 als Datensatzherkunft Diese s liefert das Prim rschl sselfeld s t AbfragelD und die Bezeichnung Bild 4 Entwurf des Formulars frmAbfragen der Abfrage aus dem Feld Abfra gebezeichnung nach der die Ergebnisse dieser ne ee Abfrage auch sortiert werden Die Eigenschaft tblAbfragen Spaltenanzahl des Listenfeldes erh lt den Wert Rn 2 die Eigenschaft Spaltenbreiten den Wert Ocm Pagea De na Neue Abfrage anlegen za Uebersichtsposition Ein Klick auf die Schaltfl che cmdNeu soll
68. so etwa 01111 Die Prozedur gibt neben eventuell www access im unternehmen de 994 Seite 65 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de L SUNGEN ACCESS vorhandenen Fehlerinformationen das zur ckgelieferte XML Dokument als Funktionswert an die aufrufende Prozedur zur ck Ums tze verarbeiten Die Prozedur UmsaetzeVerarbeiten aus Listing 4 erwartet das XML Dokument das die Funktion StatementRequest geliefert hat sowie die Kontonummer als Parameter Sie erstellt zun chst ein neues DOMDocument Objekt und f llt dieses mit dem Inhalt aus strXML der etwa wie in Listing 5 aussieht In diesem Dokument interessie lt soap Envelope lt soap Body gt ONLINEBANKING PER WEBSERVICE Ill ren uns die einzelnen Elemente unterhalb des Elements StatementLines Jedes Element namens BACsState mentLine enth lt namlich genau einen Buchungssaitz Die einzelnen dort enthaltenen Elemente liefern jeweils eine Information zur Buchung zum Beispiel den Betrag die W hrung oder das Buchungsdatum Au erdem liefert das Dokument im Element GustomerData hier zur Platzersparnis weggelassen noch die Informationen zum Bankkonto Die Prozedur liest per selectSingleNode beispielsweise das Element GustomerData BankCode ein und speichert lt StatementRequestResponse xmIns http service ddbac de gt lt StatementRequestkesult gt lt CustomerData gt lt CustomerData gt lt ContactData gt G
69. st strRequest amp lt ser Accountld gt amp strAccountld amp lt ser Accountld gt amp vbCrLf If datStart gt 0 Then strStartdate Format datStart yyyy mm dd strRequest strRequest amp lt ser StartDate gt amp strStartdate amp lt ser StartDate gt amp vbCrLf End If If datEnde gt 0 Then strEnddate Format datEnde yyyy mm dd strRequest strRequest amp lt ser EndDate gt amp strEnddate amp lt ser EndDate gt amp vbCrLf End If strRequest strRequest amp lt ser StatementRequestData gt amp vbCrLf strRequest strRequest amp lt ser Pin gt amp strPIN amp lt ser Pin gt strRequest CreateSoapkequest strRequest strFunction Request strRequest obJjXMLResponse strResponse 0obJXMLResponse XML strErrorCode GetXMLElement strResponse amp strFunction amp Result Error ErrorCode strErrorText GetXMLElement strResponse amp strFunction amp Result Error ErrorText StatementRequest FormatXML objXMLResponse XML End Function Listing 2 Zusammensetzen des Requests und Zur ckgeben des Ergebnisses lt soap Envelope lt soap Body gt lt StatementRequestResponse xmIns http service ddbac de gt lt StatementRequestkesult gt lt Error gt lt ErrorType gt BUSINESS lt ErrorType gt lt ErrorCode gt 9800 lt ErrorCode gt lt ErrorText gt Der Dialog wurde abgebrochen Bitte melden Sie sich erneut an 9800 lt ErrorText gt lt
70. t FilterOn auf den Wert True Alle Mails wieder einblenden Wenn Sie nicht gefunden haben was Sie suchen k nnen Sie die Filterkriterien zur cksetzen und alle in der Tabelle tbIMailltems enthaltenen Eintr ge wieder einblenden Dazu klicken Sie einfach auf die Schaltfl che cmdAlle Anzeigen was die folgende Prozedur ausl st Private Sub cmdAl leAnzeigen Click MeltxtAbsender Null Me txtEmpfaenger Null MeltxtBetreff Null MeltxtInhalt Null MeltxtVon Null MeltxtBis Null Me sfmMailItems Form Filter End Sub www access im unternehmen de 990 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de INTERAKTIV VERSANDETIKETTEN MIT DAL INTRASHIP Versandetiketten mit DHL IntraShip Wer regelm ig Pakete mit DHL verschickt ist m glicherweise Gesch ftskunde bei DHL Das ist Voraussetzung um das Onlineportal zur Eingabe der Empf ngeradressen und zum Erstellen der Versandetiketten zu nutzen Als Datenbankentwickler wollen wir aber keine Adressen von Hand in ein Formular eingeben sondern diese direkt aus der Datenbank heraus bergeben mit m glichst wenig Aufwand Dieser Beitrag zeigt wie Sie die Daten bergeben wenn die notwendige Datei einmal erzeugt ist Voraussetzungen Den Zugang als Gesch ftskunde erhalten Sie wenn Sie sich unter der folgenden Adresse registrieren https www dhl geschaeftskundenportal de Auf die Einzelheiten der Registrierung wollen wir an
71. te Zwecke kostenlos Ums tze abrufen Diese Funktion ist nat rlich etwas umfangreicher als das Einlesen des Kontostandes da wir ja nicht nur einen ein zelnen Wert einlesen sondern gleich eine ganze Reihe von Werten Dazu ben tigen wir nat rlich eine eigene Tabelle die wir tblUmsaetze nennen und welche im Entwurf wie in Bild 1 aussieht Auf die einzelnen Felder gehen wir gleich bei der Beschrei bung des Zugriffs auf den Webservice ein Wichtig ist an dieser Stelle dass die Tabelle nicht mit der Tabelle tbIKon ten verkn pft ist Stattdessen enth lt sie die beiden Felder BankCode und Accountnumber welche die Bank und das Konto ber das die Transaktionen ausgef hrt wurden eindeutig identifiziert Banken fusionieren ja heutzutage gern mal oder ndern ihre Bankleitzahl aus ande ren Gr nden Bei der hier Fi durchgef hrten Methode behalten Sie auf jeden Fall die Originalbankdaten bei Es steht Ihnen nat rlich frei die Datens tze der Tabelle tblUmsaetze ber ein Fremdschl sselfeld mit der Tabelle tblKonten zu verkn pfen Feldname TH UmsatzID Banklode Accountnumber BusinessTransactionCode HashWalue Amount BookingDate Currency Waluta BookingRef Purpose RecBankID RecAccountNr RecName Weiterhin ist hier zu beach ten dass wir f r das Feld www access im unternehmen de 994 HashValue einen eindeutigen Index definiert haben Damit stellen wir sicher dass ein bereits eingelesener Umsatz nicht nochm
72. tte Spalte den Datentyp unter VBA eingetragen und die maximale Zeichenanzahl in die vierte Spalte geschrieben alles jeweils durch Tabulatorzei chen voneinander getrennt Das Zwischenergebnis sah dann wie in Bild 3 aus Die Anzahl der manuel len Eingriffe h lt sich hier noch in Bild 3 Felder im Textformat Grenzen eine Eigenschaft also ben tigen wir f r jede Zeile eine Danach haben wir den kompletten Inhalt in die Zwischen private Variable in der Klasse um den zugewiesenen Wert ablage kopiert und dann in eine neue Tabelle namens speichern zu K nnen sowie eine Property Let Prozedur tblFelderDPEEItem kopiert die wir zuvor mit den vier um diese Eigenschaften von au erhalb der Klasse f llen ben tigten Feldern ausgestattet haben Der neue Zwi zu k nnen schenstand ist in Bild 4 abgebildet Schlie lich soll jede Klasse noch eine tblFelderDPEEItem Eigenschaft namens Satz bereitstellen Feldname Datentyp Feldgroesse die nach dem Zuweisen der Eigenschaf 1IERERDNNBSTIHITEEIEN ZEN W l 2 Satzart String 30 ten alle Eigenschaften auswertet und die 3 GewichtDesPackstueckesinkg Currency i Zeile der CSV Datei f r diese Satzart zu 4 LaengeDesPackstueckesincm Long 0 sammenstellt und zur ckgibt Das w ren Senna ts Zill h in B 6 HoeheDesPackstueckesin m Long o f r die f nf hier behandelten S tze insge 7 PackstueckBeschreibung String mm samt 289 Zeilen f r die entsprechenden 8 PackartKollitraeger String 5 Eigens
73. unkt Versandabwick Ihr pers nliches Portal f r Ihr Paketgesch ft Mit dem DHL Gesch ftskundenportal steuern Sie Ihren kompletten Paketversand schnell und bequem Folgen Sie einfach der Hauptnavigation sie bildet die wichtigsten Funktionen f r Ihren Paketversand ab Versenden Abholen Retoure Verfolgen Bestellen Unter Services k nnen Sie sich ber DHL Produkte und Services informieren und Ihre Rechnungen einsehen Sie finden Hilfe bei Fragen und aussagekr ftige Reportingkennzahlen zu Ihrem Paketversand Unser Infoblatt zeigt Ihnen alle wichtigen Funktionen und Services auf einen Blick Bild 1 Funktionen im Gesch ftskundenportal Seite 35 www access im unternehmen de 991 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de INTERAKTIV VERSANDETIKETTEN MIT DAL INTRASHIP CE Sendungs bersicht umweist ndige Auftr ge anzeigen gt Versandabwicklung P ake t bersicht bitte w hlen Yv YV vV wY y Intraship bersicht v Absender Datum Status Produkt Empf nger Sach Kundennr bearbeiter Sendungsnummer Stk Auswahl Sendung Email duplizieren 2015 DHL All rights reserved Impressum Datenschutz Privacy amp Cookies Datei Datei ausw hlen Importschema Bild 3 Seite zum Importieren der CSV Datei lung PaketlImport von Auftr gen aus Damit landen wir in dem Dialog aus Bild 3 Hier erfahren wir dass wir ein Mandanten Standar
74. unsere L sung ein wobei wir die Daten aus Tabellen wie tblKun den tblBestellungen tblBestellpositionen und tblArti kel zusammensuchen Datenmodell Das Datenmodell der Beispieldatenbank sieht wie in Bild 1 aus Die enthaltenen Tabellen weisen lediglich die not wendigsten Felder auf um Bestellungen aufzunehmen und die f r den Versand notwendigen Dateien tblKunden zusammenzustellen oe AnredelO Vorname Nachname Dabei ist die Tabelle tbIKunden welche die blichen Kundendaten enth lt per 1 n Beziehung mit der Lookuptabelle an tblAnreden verkn pft welche die verschiedenen Anreden speichert Auf die www access im unternehmen de 993 tblBestellungen tblAnreden Strasse Anredelb Gewicht Hausnummer Anrede Menge Kundentabelle wiederum verweist die Tabelle tblBestel lung per Fremdschl sselfeld Auf diese Weise wird einer Bestellung der Kunde zugeordnet Die Tabelle tblArtikel speichert ein paar grundlegende Artikeldaten wie den Artikelnamen oder den Einzelpreis F r die Erstellung der Versanddatei ist es wichtig das Gewicht der einzelnen Artikel zu kennen daher finden Sie dort auch das Feld Gewicht Schlie lich nimmt das Feld Kurzbezeichnung eine Abk rzung f r den Artikelnamen auf Wozu wir dies ben tigten erfahren Sie weiter unten Die Bestellungen und die Artikel f hrt die Tabelle tblBe stellpositionen zusammen Sie ordnet die einzelnen Artikel aus der Tabelle tblArtikel den Bestellungen zu
75. zeichnung InputBox Unter diesem Namen ist bereits eine Abfrage vorhanden amp Geben Sie eine neue Bezeichnung ein Abfrage speichern strAbfragebezeichnung Loop If Len strAbfragebezeichnung 0 Then Exit Sub End If If Len strAbfragebezeichnung gt 0 Then strSQL INSERT INTO tblAbfragen Abfragebezeichnung AbfrageSQL Abfrageeigenschaften _ amp VALUESC amp strAbfragebezeichnung amp amp strAbfragesQL amp _ amp Replace Replace strAbfrageeigenschaften TU IR db Execute strSQL dbFailOnError Ena If End If Me IstAbfragen Requery Else If MsgBox Soeben ge nderte Abfrage speichern vbYesNo vbYes Then strSQL UPDATE tblAbfragen SET AbfragesSQL amp strAbfragesQL amp Abfrageeigenschaften amp strAbfrageeigenschaften amp WHERE AbfrageID amp IngAbfragelD db Execute strSQL dbFailOnError End If End If End If strAktuelleAbfrage End If End Sub Listing 1 Diese Prozedur pr ft ob der Benutzer neue Abfragen angelegt hat und speichert gegebenenfalls die Daten Seite 6 www access im unternehmen de 988 Leseprobe Vollst ndiges Heft nur f r Abonnenten www access im unternehmen de SQL SERVER UND CO T SQL PER FORMULAR T SQL per Formular Wer Access Frontends mit einem SQL Server Backend entwickelt wird fr her oder sp ter nicht immer zum SQL Server Management Studio wechseln wollen um mal eben eine Abfrage auf die Daten der

Download Pdf Manuals

image

Related Search

Related Contents

Bedienungsanleitung / User Manual Change Top Flex  Sitecom USB 2.0 & Firewire cardbus card    DECCO LUSTR® 631  power network parameter analyser n10 service manual  Nintendo Game Boy Micro Downloadable Instruction Book  User Manual Hammock Sling  排気・排水に係る放射性同位元素濃度管理ガイドライン  Blanco Magnum 501-113-A User's Manual  Heli Watt Meter and Power Analyzer User`s Manual  

Copyright © All rights reserved.
Failed to retrieve file