VBA: Access-Statuszeile beschreiben

Die Access-Statuszeile kann über folgenden Befehl als Informationsleiste verwendet werden.

Sub Statusnachricht(Nachricht)
    Dim Statusnachricht As Variant
    
    Select Case Nachricht
    Case Is = "0"
        Statusnachricht = SysCmd(acSysCmdClearStatus)
    Case Else
        Statusnachricht = SysCmd(acSysCmdSetStatus, Nachricht)
    End Select
End Sub

Erklärungen zum Script

  • Zeile 2: Deklaration der Variablen „Statusnachricht“ als Variant
  • Zeile 4: Filtere die übergebenen Parameter
  • Zeile 5 + 6: Wenn der Wert „0“ ist, dann lösche die Anzeige
  • Zeile 7 + 8: ansonsten zeige die Nachricht an
  • Zeile 9: Schließen die Schleife der Selektion

Der Aufruf der Sub erfolgt nach folgendem Schema:

call Statusnachricht("Zeige diesen Text in der Statuszeile von Access an.")
call Statusnachricht("0")   ' Lösche den in der Statuszeile angezeigten Text.

VBA: Löschen eines Excel-Tabellenblattes aus Access heraus

Der nachfolgende VBA-Code löscht ein Excel-Tabellenblatt aus einer Access-Instanz heraus:

Sub deleteTabelle(Tabellenname, xl_book)

For Each Sheet In xl_book.WorkSheets
    If Sheet.Name = Tabellenname Then
        xl_book.Application.DisplayAlerts = False
        xl_book.WorkSheets(Tabellenname).Delete
        xl_book.Application.DisplayAlerts = True
    End If
Next
End Sub

Erläuterungen zum Code:

  • Zeile 3: Frage in einer Schleife sämtliche Tabellenblätter ab, ob das übergebene Tabellenblatt vorhanden ist.
  • Zeile 4: Schalte die Warnmeldungen aus
  • Zeile 5: Lösche das gewünschte Tabellenblatt
  • Zeile 6: Schalte die Warnmeldungen ein
  • Zeile 7: Beende die If-Schleife aus Zeile 3
  • Zeile 8: Beende die For-Schleife

VBA: Erstellen einer Mail mit Anhang

Der  nachfolgende Code ermöglicht es, eine Mail über VBA-Code aus Access zu erstellen:

Sub Mailversand(str_empfaenger, str_betreff, str_Dateiname, str_Vorname, str_Nachname, str_Telefon, str_Mail)
' Diese SUB erstellt eine Mail mit Anhang
Dim OL_App As Object
Set OL_App = CreateObject("Outlook.Application")

With OL_App.CreateItem(0)
   .BodyFormat = 3
   .GetInspector.Display
   .To = str_empfaenger
   .Subject = str_betreff
   .htmlBody = "Hallo,<br><br>im Anhang findest Du die im Betreff genannte Datei.<br><br>Mit freundlichen Grüßen<br><br>" & str_Vorname & " " & str_Nachname & "<br>" & str_Telefon & "<br>" & str_Mail
   .Attachments.Add str_Dateiname
End With

End Sub

Die Routine erstellt eine Mail mit Anhang, die aus einem übergeordneten Modul aufgerufen wird. Nach Erstellung wird die Mail in Outlook aufgerufen, bevor diese versendet wird.

Weiterlesen

Ersetzen per VBA

Über folgenden Befehl lassen sich Zeichen(ketten) in Excel per VBA ersetzen:

Ganzes Tabellenblatt:
Worksheets("[Tabellenblatt]").Cells.Replace What:="[vorher]", Replacement:="[nachher]", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

Ausgewählte Bereiche:
Selection.Replace What:="[vorher]", Replacement:="[nachher]", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

Datumsformat in VBA

In Excel soll anhand eines Datums ein Filter gesetzt werden. Im Grunde kein Hexenwerk, die Aufgabe lautet:

Zeige mir alles, was sich in der gewählten Range befindet und ein Datum vor dem 1. August 2015 hat. Der Code dazu sieht wie folgt aus:

ActiveSheet.Range("$A$4:$A$136979").AutoFilter Field:=11, Criteria1:= "<" & "08/01/2015"

Bei dem genannten Beispiel enthält die Spalte A das zu selektierende Datum.

Weiterlesen