Held | VBA mit Access | E-Book | www.sack.de
E-Book

E-Book, Deutsch, 803 Seiten

Reihe: Rheinwerk Computing

Held VBA mit Access

Das umfassende Handbuch
4. Auflage 2023
ISBN: 978-3-8362-9303-7
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection

Das umfassende Handbuch

E-Book, Deutsch, 803 Seiten

Reihe: Rheinwerk Computing

ISBN: 978-3-8362-9303-7
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection



Das Standardwerk zu VBA mit Access!

Access-Datenbanken mit VBA gezielt auf Ihre Anforderungen hin optimieren – das ist das Ziel dieses Buches von Erfolgsautor Bernd Held, einem der bekanntesten deutschsprachigen VBA-Spezialisten. Nach einer grundlegenden Einführung in die Programmierung mit VBA lernen Sie die zentralen Objekte wie Tabellen und Abfragen intensiv kennen und erfahren, wie Sie aus Access auf Excel oder Word zugreifen. Außerdem profitieren Sie von der umfassenden Behandlung aller relevanten Sicherheitstechniken , mit denen Sie Datenbanken und Daten schützen. Damit Ihre Datenbanken intuitiv benutzbar sind und als eigenständige Datenbankanwendungen funktionieren, widmet sich ein eigener Teil der Programmierung von Benutzeroberflächen. Ein Troubleshooting-Kapitel und über 600 geprüfte Makros zum Download runden das Angebot ab. Geeignet für Access 2021, Access in Microsoft 365 sowie alle Vorgängerversionen bis Access 2010 .

  • Grundlagen und fortgeschrittene VBA-Programmierung
  • Tabellen, Fragen und Formulare; mit SQL-Integration
  • Sofort einsetzbare Makro-Lösungen und Praxisbeispiele

»Ein gelungener Mix aus Nachschlagewerk und Praxis-Beispielen. Sehr gut!« – dotnetpro zur Vorauflage

Aus dem Inhalt:

  • Grundsätzliches zur Programmierung
  • Variablen, Konstanten und Datentypen
  • Die wichtigsten Sprachelemente in Access
  • Ein Streifzug in die Welt der Objekte
  • Tabellen programmieren
  • Abfragen programmieren
  • Programmierung von Dialogen, Steuerelementen und Formularen
  • Berichte erstellen und programmieren
  • Ereignisse in Access programmieren
  • Access im Zusammenspiel mit Office
  • API-Funktionen einsetzen
  • Datenbanken und Quellcode schützen
  • VBE-Programmierung in Access
  • Anwendungen optimieren und reparieren
  • Access und das Internet
  • Access 2016/2019/2021-Ribbons programmieren
  • FAQ für Access-Entwickler
Held VBA mit Access jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


  Vorwort ... 21

  1.  Grundsätzliches zur Programmierung ... 25


       1.1 ... Wie gehe ich von Anfang an richtig vor? ... 26

       1.2 ... Die Entwicklungsumgebung von Access ... 28

       1.3 ... Hilfsmittel für die Programmierung ... 33

       1.4 ... Die Fenster und die Testumgebung ... 42

       1.5 ... Weitere Einstellungen ... 49

  2.  Variablen, Konstanten und Datentypen ... 53


       2.1 ... Regeln für die Syntax von Variablen ... 54

       2.2 ... Variablen am Beginn der Prozedur deklarieren ... 54

       2.3 ... Die verschiedenen Variablentypen ... 55

       2.4 ... Variablendeklarationen erzwingen ... 57

       2.5 ... Die wichtigsten Variablentypen ... 58

       2.6 ... Noch kürzere Deklaration von Variablen ... 60

       2.7 ... Die Reddick-Namenskonvention ... 60

       2.8 ... Variablendeklaration mit »DefType« ... 62

       2.9 ... Aufzählungstypen (»Enum«-Anweisung) ... 63

       2.10 ... Konstanten verwenden ... 64

       2.11 ... Systemkonstanten einsetzen ... 65

  3.  Die wichtigsten Sprachelemente in Access ... 85


       3.1 ... Prozeduren ... 85

       3.2 ... Verzweigungen/Bedingungen ... 96

       3.3 ... Die Anweisung »Select Case« für mehr Übersicht ... 103

       3.4 ... Schleifen in Access einsetzen ... 106

       3.5 ... »With«-Anweisungen ... 119

       3.6 ... VBA-Funktionen einsetzen ... 120

       3.7 ... Umwandlungsfunktionen ... 153

       3.8 ... Die »Is«-Funktionen in VBA ... 160

       3.9 ... Operatoren ... 178

       3.10 ... Eigene Funktionen schreiben ... 182

  4.  Ein Streifzug in die Welt der Objekte ... 201


       4.1 ... Das »Application«-Objekt ... 201

       4.2 ... Das Objekt »AccessObject« ... 209

       4.3 ... Das Objekt »CodeData« ... 213

       4.4 ... Das Objekt »DoCmd« ... 214

       4.5 ... Integrierte Dialoge einsetzen ... 221

       4.6 ... Das Objekt »FileSystemObject« ... 228

  5.  Tabellen programmieren ... 243


       5.1 ... Tabellen bearbeiten mit »DoCmd« ... 244

       5.2 ... Tabellen mit ADO programmieren ... 253

       5.3 ... SQL-Anweisungen ... 257

       5.4 ... Tabellenstrukturen mit ADOX ermitteln ... 289

       5.5 ... Datenbanken suchen und dokumentieren ... 299

  6.  Abfragen programmieren ... 303


       6.1 ... Abfragetypen ... 303

       6.2 ... Abfragen durchführen ... 305

       6.3 ... Abfragen mit SQL generieren ... 307

       6.4 ... Aktualisierungsabfrage -- Artikelnamen ändern ... 307

       6.5 ... Anfügeabfrage -- Mitarbeiter hinzufügen ... 310

       6.6 ... Löschabfrage ausführen ... 312

       6.7 ... Tabellenerstellungsabfrage durchführen ... 316

       6.8 ... Datendefinitionsabfragen durchführen ... 318

       6.9 ... Daten zusammenführen ... 327

       6.10 ... Abfragen mit ADO programmieren ... 330

  7.  Programmierung von Dialogen, Steuerelementen und Formularen ... 341


       7.1 ... Das Meldungsfeld »MsgBox« ... 342

       7.2 ... Die Eingabemaske »InputBox« ... 346

       7.3 ... Formulare erstellen ... 349

  8.  Berichte erstellen und programmieren ... 441


       8.1 ... Berichtsarten in Access ... 441

       8.2 ... Der Berichtsaufbau ... 442

       8.3 ... Berichte entwerfen ... 443

       8.4 ... Berichte bearbeiten mit »DoCmd« ... 444

       8.5 ... Berichte formatieren ... 451

       8.6 ... Berichte identifizieren ... 457

       8.7 ... Berichte erstellen ... 464

  9.  Ereignisse in Access programmieren ... 483


       9.1 ... Das Ereignis »Form_Open« ... 484

       9.2 ... Das Ereignis »Form_Close« ... 487

       9.3 ... Das Ereignis »Form_Load« ... 490

       9.4 ... Das Ereignis »Form_Current« ... 492

       9.5 ... Das Ereignis »Form_AfterInsert« ... 496

       9.6 ... Das Ereignis »Form_BeforeInsert« ... 499

       9.7 ... Das Ereignis »Form_BeforeUpdate« ... 502

       9.8 ... Das Ereignis »Form_AfterUpdate« ... 508

       9.9 ... Das Ereignis »Form_Delete« ... 508

       9.10 ... Das Ereignis »Form_Dirty« ... 511

       9.11 ... Das Ereignis »BeforeDelConfirm« ... 512

       9.12 ... Das Ereignis »Form_AfterDelConfirm« ... 513

       9.13 ... Das Ereignis »Form_Activate« ... 514

       9.14 ... Das Ereignis »Form_Deactivate« ... 517

       9.15 ... Das Ereignis »Form_Resize« ... 517

       9.16 ... Das Ereignis »Form_DblClick« ... 519

       9.17 ... Das Ereignis »Click« ... 523

       9.18 ... Die Ereignisse »MouseDown« und »MouseUp« ... 524

       9.19 ... Das Ereignis »MouseMove« ... 530

       9.20 ... Das Ereignis »Schaltfläche_Click« ... 532

       9.21 ... Die Ereignisse »GotFocus« und »LostFocus« ... 532

       9.22 ... Die »Key«-Ereignisse ... 533

       9.23 ... Das Ereignis »Steuerelement_BeforeUpdate« ... 537

       9.24 ... Das Ereignis »Steuerelement_Enter« ... 543

       9.25 ... Das Ereignis »Steuerelement_Exit« ... 545

       9.26 ... Die Reihenfolge der Ereignisse ... 546

10.  Access im Zusammenspiel mit Office ... 549


       10.1 ... Textdateien im Zugriff von Access ... 550

       10.2 ... Access im Zusammenspiel mit Word ... 564

       10.3 ... Outlook und Access ... 574

       10.4 ... Access im Duett mit Excel ... 596

11.  API-Funktionen einsetzen ... 627


       11.1 ... Das CD-ROM-Laufwerk ermitteln ... 628

       11.2 ... Den Namen des Anwenders ermitteln ... 631

       11.3 ... Das CD-ROM-Laufwerk bedienen ... 632

       11.4 ... Die Bildschirmauflösung ermitteln (nur 32 Bit) ... 632

       11.5 ... Ist ein externes Programm gestartet? ... 633

       11.6 ... Ein externes Programm aufrufen ... 634

       11.7 ... Wie lange läuft ein externes Programm (nur 32 Bit)? ... 634

       11.8 ... Access schlafen schicken (32/64 Bit) ... 636

       11.9 ... Verzeichnisse erstellen ... 637

       11.10 ... Verzeichnis löschen ... 638

       11.11 ... Verzeichnisbaum anzeigen und auswerten (nur 32 Bit) ... 638

       11.12 ... Die Windows-Version ermitteln ... 639

       11.13 ... Windows-Verzeichnis ermitteln (nur 32 Bit) ... 641

       11.14 ... Windows-Systemverzeichnis ermitteln (nur 32 Bit) ... 641

       11.15 ... Das temporäre Verzeichnis ermitteln (nur 32 Bit) ... 642

       11.16 ... Das aktuelle Verzeichnis ermitteln (nur 32 Bit) ... 643

       11.17 ... Windows-Infobildschirm anzeigen ... 643

       11.18 ... Access-Verzeichnis ermitteln ... 644

       11.19 ... Standardverzeichnis festlegen (nur 32 Bit) ... 644

       11.20 ... Dateityp und Anwendung ermitteln ... 645

       11.21 ... Kurze Pfadnamen ermitteln (nur 32 Bit) ... 646

       11.22 ... Den Computernamen ermitteln ... 647

       11.23 ... Texte mit API-Funktionen konvertieren ... 647

       11.24 ... Die Zwischenablage löschen ... 648

       11.25 ... Soundkarte checken ... 649

       11.26 ... Sounds per API-Funktion ausgeben (nur 32 Bit) ... 649

       11.27 ... PC piepsen lassen ... 649

       11.28 ... Tasten abfangen (nur 32 Bit) ... 650

       11.29 ... Dateien suchen ... 651

       11.30 ... Dateiinformationen auslesen ... 652

       11.31 ... Ist die Internetverbindung aktiv? ... 654

       11.32 ... Cursorposition in Pixeln angeben (nur 32 Bit) ... 655

12.  Datenbanken und Quellcode schützen und pflegen ... 661


       12.1 ... Ihre Access-Lösung mithilfe von Startparametern absichern ... 661

       12.2 ... Eine ACCDE-Datenbank erstellen ... 663

       12.3 ... Eine Datenbank über ein Kennwort schützen ... 663

       12.4 ... Quellcode schützen ... 670

       12.5 ... Eine Datenbank komprimieren und reparieren ... 671

13.  VBE-Programmierung in Access ... 675


       13.1 ... Die VBE-Bibliothek einbinden ... 676

       13.2 ... Weitere Bibliotheken einbinden oder entfernen ... 678

       13.3 ... Fehlerhafte Verweise ermitteln ... 680

       13.4 ... In den VBE springen ... 681

       13.5 ... Objektbibliotheken auslesen ... 681

       13.6 ... Neue Module einfügen ... 682

       13.7 ... Modul(e) löschen ... 683

       13.8 ... Prozedur(en) löschen ... 684

       13.9 ... Einzelne Texte oder Befehle im Quellcode finden ... 686

       13.10 ... Module mit Quellcode versorgen (Import) ... 689

       13.11 ... Prozeduren sichern (Export) ... 692

       13.12 ... Module drucken ... 693

       13.13 ... »Lines Of Code« ermitteln ... 695

       13.14 ... Identifikation von VB-Komponenten ... 696

       13.15 ... Prozeduren auflisten ... 697

       13.16 ... Eine eigene VBA-Datenbank anlegen ... 701

14.  Anwendungen optimieren ... 707


       14.1 ... Die automatische Leistungsanalyse ... 707

       14.2 ... Datenbanken und Quellcode dokumentieren ... 709

       14.3 ... Tabellen optimal anlegen ... 711

       14.4 ... Die richtigen Befehle ... 712

15.  Access und das Internet ... 717


       15.1 ... E-Mail verschicken ... 717

       15.2 ... Tabellen in Internetformate transferieren ... 738

16.  Ribbons programmieren ... 741


       16.1 ... Programmierung über ein XML-Markup ... 742

       16.2 ... Weitere wichtige Quellen und Hilfen ... 748

17.  FAQ für Access-Entwickler ... 751


       17.1 ... Wie hänge ich einer Tabelle ein Feld an? ... 752

       17.2 ... Wie verhindere ich, dass ein Formular geschlossen wird? ... 753

       17.3 ... Wie frage ich alle Tabellen einer geschlossenen Datenbank ab? ... 754

       17.4 ... Wie lege ich in einem bestimmten Verzeichnis eine neue Datenbank automatisch an? ... 756

       17.5 ... Wie verlinke ich eine Tabelle aus einer anderen Datenbank? ... 758

       17.6 ... Wie normiere ich Telefonnummern in Tabellen? ... 759

       17.7 ... Wie dokumentiere ich eine komplette Datenbank? ... 761

       17.8 ... Wie prüfe ich, ob eine bestimmte Tabelle existiert? ... 762

       17.9 ... Wie prüfe ich, ob ein bestimmtes Feld in einer Tabelle angelegt ist? ... 764

       17.10 ... Wie führe ich eine SQL-Abfrage auf eine andere Datenbank aus? ... 765

       17.11 ... Wie ermittle ich alle verfügbaren Drucker? ... 766

       17.12 ... Wie schreibe ich bestimmte Feldinhalte einer Tabelle in eine Textdatei? ... 767

       17.13 ... Wie transferiere ich eine Access-Tabelle nach Word? ... 769

       17.14 ... Wie lege ich eine Parameterabfrage automatisch an? ... 772

       17.15 ... Wie greife ich auf Tabelleneigenschaften einer Datenbank zu? ... 773

       17.16 ... Wie frage ich die beiden Extremwerte einer Spalte in einer Tabelle ab? ... 774

       17.17 ... Wie führe ich eine Durchschnittsberechnung durch? ... 776

       17.18 ... Wie erstelle ich eine Unikatliste? ... 777

       17.19 ... Wie ermittle ich die Gesamtsumme für ein Tabellenfeld? ... 779

       17.20 ... Wie führe ich eine bedingte Summierung durch? ... 780

       17.21 ... Wie lese ich über eine ID den dazugehörigen Lieferanten aus? ... 781

  Index ... 783


1.2    Die Entwicklungsumgebung von Access


Wie bereits erwähnt, gelangen Sie über die Tastenkombination (Alt)+(F11) in die Entwicklungsumgebung von Access. Dort finden Sie das Fenster aus Abbildung 1.2.

Abbildung 1.2     Die Entwicklungsumgebung von Access

Zunächst steht Ihnen noch keine Möglichkeit zur Verfügung, direkt Code einzufügen. Sie müssen erst ein neues, noch leeres Modul anlegen. Dazu haben Sie zwei Möglichkeiten:

  • Klicken Sie im Projekt-Manager mit der rechten Maustaste auf die dort angezeigte Datenbank, und wählen Sie aus dem Kontextmenü den Befehl Einfügen • Modul.

  • Eine alternative Vorgehensweise, bei der Sie vorher nicht über die Tastenkombination (Alt)+(F11) in die Entwicklungsumgebung gehen müssen, besteht darin, in Access 2007/2010/2013/2016/2019/2021 und Access 365 auf der Registerkarte Erstellen das Element Modul anzuklicken.

Bei beiden Varianten wird ein neues Modul eingefügt, das auch gleich im Projekt-Explorer angezeigt wird.

Auf den ersten Blick erkennen Sie, dass sich oberhalb des Codebereichs zwei Dropdown-Felder befinden:

  • Im ersten Dropdown-Feld, Allgemein, werden alle Objekte aufgelistet, die sich in der Entwicklungsumgebung befinden. Das können beispielsweise Tabellen, Formulare und Berichte sein.

  • Im zweiten Dropdown-Feld, Deklarationen, sehen Sie alle Prozeduren und Ereignisse, die auf das im ersten Dropdown-Feld eingestellte Objekt angewandt werden können.

Abbildung 1.3     Das erste Modul

1.2.1    Das Eigenschaftenfenster


Standardmäßig ist ein weiteres Fenster, das Eigenschaftenfenster, in der Entwicklungsumgebung von Access nicht eingeblendet. Dieses Fenster lassen Sie anzeigen, indem Sie aus dem Menü Ansicht den Befehl Eigenschaftenfenster wählen oder alternativ die Taste (F4) drücken. Das Eigenschaftenfenster können Sie dazu benutzen, beispielsweise in einem Modul den Namen festzulegen, ohne eine einzige Zeile programmieren zu müssen.

Abbildung 1.4     Das Modul wurde über das Eigenschaftenfenster umbenannt.

Nun aber wieder zurück zu den Prozeduren und zum Codebereich: Wenn Sie ein neues Modul einfügen, haben Sie auf der rechten Seite eine Eingabemöglichkeit. Dort geben Sie Ihre VBA-Prozeduren ein.

Tippen Sie nun Ihre erste Prozedur im Codefenster ein. Diese Prozedur soll die aktuelle Uhrzeit am Bildschirm anzeigen. Es genügt dabei, wenn Sie lediglich die erste Zeile erfassen und mit (¢) bestätigen. Access ergänzt automatisch die »Ende«-Anweisung der Prozedur. Jede Prozedur in Access beginnt mit dem Schlüsselwort Sub. Danach geben Sie einen Leerschritt ein und geben der Prozedur einen Namen. Schließen Sie die erste Zeile ab, indem Sie zwei Klammern setzen und die Taste (¢) drücken. Die so eingefügte Prozedur wird nun automatisch mit einer End Sub-Anweisung komplettiert. Alle Befehle, die Sie nun zwischen der Sub- und der End Sub-Anweisung eingeben, werden bei Aufruf der Prozedur abgearbeitet.

Mit der Funktion MsgBox zeigen Sie ein Meldungsfenster auf dem Bildschirm an. Das Meldungsfenster können Sie füllen, indem Sie Texte in Anführungszeichen sowie die Funktion Time erfassen. Achten Sie dabei darauf, dass zwischen dem fest vorzugebenden Text und der Funktion das Zeichen & steht. Über die Funktion Time ermitteln Sie die aktuelle Uhrzeit. Dabei holt sich Access diese Information aus der Systemsteuerung von Windows. Wird eine falsche Uhrzeit angezeigt, dann müssen Sie die Uhr in der Systemsteuerung von Windows korrigieren.

Abbildung 1.5     Diese Prozedur zeigt die aktuelle Uhrzeit an.

Alle Befehle klein eingeben

Bei der Eingabe des Quellcodes brauchen Sie nicht auf Groß- und Kleinschreibung zu achten. Besser ist es aber, wenn Sie sich angewöhnen, alle Befehle in Kleinbuchstaben einzugeben. Haben Sie die Syntax der Befehle richtig eingegeben, werden jeweils der erste Buchstabe sowie Teile des Befehls automatisch in Großbuchstaben umgewandelt. So wird automatisch aus der Eingabe msgbox der von Access richtig erkannte Befehl MsgBox, sobald Sie die Taste (¢) am Ende der Zeile drücken. Diese automatische Syntaxprüfung erlaubt Ihnen, schon vorab zu erkennen, ob Sie die Syntax eines Befehls falsch geschrieben haben. In diesem Fall bleibt der eingegebene Befehl unverändert.

Auf Leerzeichen verzichten

Eine weitere automatische Anpassung erkennen Sie, wenn Sie z. B. die folgende Zeile eingeben:

dblErgebnis=1000*1.019

Hier werden zwischen den Operatoren automatisch Leerzeichen eingefügt:

dblErgebnis = 1000 * 1.019

Dieser Automatismus hat jedoch keine funktionale Bedeutung. Er dient lediglich der übersichtlicheren Darstellung der einzelnen Befehle.

Grobe syntaktische Fehler bemerkt Access, sobald Sie die Taste (¢) am Ende einer Zeile drücken. Die entsprechende Zeile wird dann in roter Schriftfarbe dargestellt, und auf dem Bildschirm erscheint eine Meldung, die Sie auf die Fehlerursache hinweist.

Lange Zeilen vermeiden

Wenn Sie möchten, können Sie auch mehrere kurze Anweisungen in einer einzigen Zeile darstellen. Dazu verwenden Sie den Doppelpunkt als Trennzeichen zwischen den einzelnen Anweisungen. Dies hat aber zur Folge, dass der Quellcode schwer lesbar wird, da Sie irgendwann so weit nach rechts scrollen müssen, dass Sie den Anfang der Zeile nicht mehr sehen.

Sie sollten stattdessen längere Zeilen auftrennen. Hier empfiehlt es sich, über ein Trennzeichen dem Editor mitzuteilen, dass die Anweisung in der nächsten Zeile weitergehen soll. Auch hier leistet die automatische Syntaxprüfung in Access hervorragend Hilfe, denn nicht jede Anweisung lässt sich an einer beliebigen Stelle trennen.

Um eine Anweisung in der nächsten Zeile fortzusetzen, drücken Sie am Ende der Zeile zunächst die Leertaste und geben anschließend das Zeichen _ (den Unterstrich) ein. Damit weiß der Editor, dass die Anweisung in der nächsten Zeile fortgesetzt werden muss.

Erweitern Sie nun Ihre Prozedur, indem Sie sie kopieren und darunter einfügen. Danach ändern Sie den Namen der Prozedur, da jede Prozedur in VBA einen eindeutigen Namen haben muss. Geben Sie zusätzlich das aktuelle Datum aus. Das Datum soll jedoch im selben Meldungsfenster wie die Uhrzeit ausgegeben werden. Um diese Aufgabe umzusetzen, setzen Sie den Mauszeiger an das Ende der MsgBox-Zeile und tippen ein Leerzeichen sowie einen Unterstrich (_) ein. Bestätigen Sie danach Ihre Aktion, indem Sie (¢) drücken. Nun kann die Anweisung in der nächsten Zeile fortgesetzt werden. Geben Sie jetzt den Code aus Listing 1.1 ein. Die Konstante vbLf bewirkt, dass im Meldungsfenster ein Zeilenumbruch durchgeführt wird.

Sub AktuelleUhrzeitErweitert()

MsgBox "Jetzt ist es " & Time & " Uhr" _
& vbLf & "und heute ist der " & Date

End Sub

Listing 1.1     Das Datum sowie die Uhrzeit am Bildschirm ausgeben

Bevor Sie die Prozedur ausführen, sollten Sie das Modul sicherheitshalber speichern. Klicken Sie dazu in der Entwicklungsumgebung in der Symbolleiste Voreinstellung auf das Symbol Datenbank speichern.

1.2.2    Prozeduren ausführen


Um eine Prozedur auszuführen, stehen Ihnen mehrere Möglichkeiten zur Verfügung:

  • Gehen Sie in der Entwicklungsumgebung auf die Symbolleiste Voreinstellung, und klicken Sie auf das Symbol Sub/Userform ausführen.

  • Wenn Sie sich in der Entwicklungsumgebung schon im Codefenster befinden, setzen Sie den Mauszeiger direkt auf die erste Zeile der Prozedur und drücken die Taste (F5).

Abbildung 1.6     Das Ergebnis der Prozedur wird am Bildschirm angezeigt.

1.2.3    Wie erfahre ich mehr über die einzelnen Befehle?


Der zweite Schritt bei der Programmierung sollte sein, mehr über die verwendeten Befehle zu erfahren. Dazu können Sie die eingebaute Onlinehilfe verwenden.

Setzen Sie...


Held, Bernd
Bernd Held ist Spezialist für Excel, VBA-Programmierung, Access und allgemeine Office- und Tool-Themen. Von Haus aus ist er gelernter Informatiker. Er wurde von Microsoft mehrfach als MVP (Most Valuable Professional) für den Bereich Excel ausgezeichnet. Seit 2008 arbeitet er mit einem eigenen Team aus Experten zusammen, das Projekte und Schulungen durchführt, Unternehmen berät und Bücher sowie Fachartikel veröffentlicht. Aktuelle Informationen und weitere Tipps bietet Bernd Held in seinem VBA-Newsletter an.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.