Last Update: 2024 - 05 - 21 |
Was ist der /decompile Schalter für Microsoft Access?Der /decompile Schalter für Microsoft Access ist ein erprobtes aber dennoch etwas mysteriöses Werkzeug um Korruption in dem VBA-Projekt einer Access-Datenbank zu beheben. Also, was hat es mit /decompile auf sich? Zurück zur Übersicht Telefonnummer aufteilenMit diesen Funktionen kann man eine Telefonnummer, die im Format Landeskennzahl(Vorwahl)Rufnummer (Beispiel: +49(069)555666) gespeichert ist, in ihre Bestandteile zu zerlegen. Die folgenden Funktionen benötigen jeweils die komplette Telefonnummer als String und geben dann den jeweiligen Bestandteil zurück. Function Rufnummer(Telefonnummer As String) Rufnummer = Trim$(Right$(Telefonnummer, _ Len(Telefonnummer) - InStr(1, Telefonnummer, ")"))) End Function Function Vorwahl(Telefonnummer As String) Vorwahl = Trim$(Mid$(Telefonnummer, _ InStr(1, Telefonnummer, "(") + 1, _ InStr(1, Telefonnummer, ")") _ - InStr(1, Telefonnummer, "(") - 1)) End Function Function Landeskennzahl(Telefonnummer As String) Landeskennzahl = Trim$(Left$(Telefonnummer, _ InStr(1, Telefonnummer, "(") - 1)) End Function Zurück zur Übersicht Zahlen FilternUm effektiv nach Telefonnummern suchen zu können, ist es oft sinnvoll alle Zeichen mit Ausnahme der Zahlen aus aus der Telefonnummer herauszufiltern. Genau das mach die folgende Funktion unter Zuhilfenahme der ASCII-Codes für die Ziffern 0 bis 9. Function numbersOnly(strInput As String) As String Dim x As Integer Dim strNumber As String For x = 1 To Len(strInput) If (Asc(Mid(strInput, x, 1)) > 47 And Asc(Mid(strInput, x, 1)) <= 57) Then strNumber = strNumber & Mid(strInput, x, 1) End If Next numbersOnly = strNumber End Function Zurück zur Übersicht Verzeichnisgröße ermittelnDurch rekursives Aufrufen der Dir()-Funktion und dem Addieren der mit FileLen() bestimmten Dateigröße aller enthaltenen Dateien ist es relativ einfach möglich mit den Bordmitteln von VB die Dateigröße eines kompleten Verzeichnisbaumes zu ermitteln. Hierbei entstehen allerdings eine Differenz zu dem durch das Verzeichnis tatsächlich belegten Speicherplatzes, da nur die Länge aller Dateien in Bytes summiert wird, aber nicht berücksichtigt wird, dass Blocks die nur teilweise belegt sind, als Speicherplatz vollständig verloren gehen. Besonders Verzeichnisse mit vielen Dateien auf Partitionen mit großen Blocks erzeugen in diesem Kontext deutliche Differenzen. Der folgende Code, den man sinvollerweise komplett in ein Modul kopiert, ist ein Beispiel für die Ermittlung der Verzeichnisgröße. Der Aufruf erfolgt über verz_pr("C:\der\VerzeichnisName") und liefert die Summe der Größe aller enthaltenen Dateien in KB. Option Explicit ' ********************************************* ' Prozedur aufrufen mittels ? Verz_pr("d:\daten") ' ********************************************* Dim Verz(1 To 1000) As String Dim ebene As Integer Function VZG(Wurzel As String) As Boolean Dim sum As Long Dim Dname As String Dname = Dir(Wurzel, vbDirectory) Do While Dname <> "" If (Dname <> ".") And (Dname <> "..") And _ ((GetAttr(Wurzel & Dname) And _ vbDirectory) = vbDirectory) _ Then ebene = ebene + 1 Verz(ebene) = Wurzel & Dname & "\" End If Dname = Dir Loop VZG = True End Function Function verz_pr(w As String) As Long Dim i As Integer Dim d As Boolean Dim sum As Long i = 1 ebene = 1 If Right(w, 1) <> "\" Then w = w & "\" Verz(1) = w Do Until Verz(i) = "" d = VZG(Verz(i)) sum = sum + Filelaenge(Verz(i)) Verz(i) = "" i = i + 1 Loop verz_pr = sum / 1024 End Function Function Filelaenge(Wurzel As String) As Long Dim sum As Long Dim DName As String DName = Dir(Wurzel) Do While DName <> "" If (DName = ".") Or (DName = "..") Or _ ((GetAttr(Wurzel & DName) And _ vbDirectory) = vbDirectory) Then Else sum = sum + FileLen(Wurzel & DName) End If DName = Dir Loop Filelaenge = sum End Function Herzlichen Dank an Thomas Röske, der freundlicherweise die hier präsentierten Prozeduren für die Ermittlung der Verzeichnisgröße zur Verfügung gestellt hat. Zurück zur Übersicht ZIP-Archiv mit der Shell32-Bibliothek erstellenEin langer und ausführlicher Artikel darüber wie man ein ZIP-Archiv mit VBA und der Shell32-Bibliothek erstellt. Die Shell32-Bibliothek ist in jeder Windows Installation ab Windows 2000 enthalten. Der Artikel behandelt ebenfalls das Extrahieren von Datein aus einem Archiv und enthält umfangreichen, funktionerenden Beispielcode, den du direkt per Copy&Paste in deine VBA-Anwendung übernehmen kannst. Zurück zur Übersicht Kalenderwoche und Jahr anhand eines Datums ermittelnDie Ermittlung der Kalenderwoche anhand eines Datums mit VBA ist eigentlich kinderleicht. Allerdings kann um den Jahreswechsel herum ein Problem auftreten. – Wie man dieses löst, beschreibt der Artikel Kalenderwoche und Jahr aus einem Datum ermitteln. Zurück zur Übersicht Einführung in Objekten und Klassenmodulen in VBAVerbessere deine VBA-Programmierkenntnisse mit dieser Einführung in die Programmierung von Objekten und Klassenmodulen in VBA. Lerne die Grundkenntnisse der objektorientierte Programmierung mit Klassenmodulen in VBA. Zurück zur Übersicht Die 'Better VBA' VideoserieIch veröffentliche eine Videoserie auf YouTube über Techniken und Werkzeuge um besseren VBA Code zu schreiben. Willst du besseren VBA Code schreiben? Begleite mich auf dem Weg besseren VBA Code zu schreiben! .Zurück zur Übersicht Der Datum/Uhrzeit Datentyp in VBA und AccessWährend Datum und Uhrzeit in Access und VBA auf den ersten Blick sehr einfach und unkompliziert erscheinen, gibt es tatsächliche eine ganze Menge Stolpersteine im Zusammenhang mit der Behandlung von Datumswerten. Ich habe hier einen verständlichen Leitfaden bereitgestellt, um Probleme zu vermeiden, wenn du in Access und VBA mit Datumswerten arbeitest. Zurück zur Übersicht VBA-(SQL)-String TutorialBei der Entwicklung mit Microsoft Access wirst du früher oder später innerhalb des VBA Codes mit Texten in String-Variablen arbeiten. Dabei ist es oft erforderlich verschiedene Teilstrings oder die Rückgabewerte von Funktionen oder die Inhalte von Variablen mit einem String zu verketten. Oft sind die jeweiligen Strings die SQL-Statements für Abfragen, die dann ausgeführt werden sollen. Für Anfänger gibt es dabei einige Details, die erstmal nicht ganz intuitiv zu verstehen sind. Um den Einstieg in die Arbeit mit Strings im allgemeinem und SQL-Strings im besonderen zu erleichetern, habe ich ein umfangreiches Tutorial und Video zum Thema SQL-Strings in VBA erstellt. Zurück zur Übersicht Eine String.Format / printf Implementierung in VBADie String.Format Methode aus .Net or die printf Funktion aus C sind weitere Beispiele für Prozeduren die nur in VBA nur mit dem relativ unbekannten ParamArray Schlüsselwort emuliert werden können. Dieser Artikel zeigt, wie nützlich String.Format / printf ist. Zurück zur Übersicht Windows API-Deklarationen in VBA für 64-bit konvertierenDeine Windows-API Deklarationen in VBA zu 64-bit zu migrieren klingt schwieriger als es tatsächlich ist. Mit den Informationen und Ressourcen in diesem Artikel bist du in der Lage deine API-DeKlarationen für 64-bit anzupassen. Zurück zur Übersicht Rekursion in VBA - Beispiel: Auslesen der Outlook OrdnerhierarchieRekursion ist eine mächtige Programmiertechnik. In diesem Artikel erkläre ich die grundlegenden Konzepte und zeige wie man Rekursion in VBA implementiert am Beispiel des Auslesens der Outlook Ordnerhierarchie. Zurück zur Übersicht Warnungen und Vertrauen - Trust-Center-Einstellungen in Microsoft OfficeDu kannst die Microsoft Office Trust Center Einstellungen mit einem einzigen Klick und ohne es zu wissen verändern. Dies ist gut genug für den durchschnittlichen Microsoft Office Benutzer, aber ein professioneller Access/VBA-Entwickler sollte mehr Details über die Sicherheheitswarnungen und die Trust Center Einstellungen in Microsoft Access und Office im Allgemeinen wissen. Zurück zur Übersicht
Ich werde Deine Email-Addresse niemals weitergeben. Du kannst den Newsletter jederzeit abbestellen. © 1999 - 2024 by Philipp Stiefel - Datenschutzerklärung |