[MS Access] Binärdaten aus einer Datei lesen

' https://stackoverflow.com/questions/660312/how-can-i-read-a-binary-file-using-vba
Sub BtnReadBinaryClick()
    ' Dateipfad + Dateiname
    Dim sFile As String
    sFile = "c:\\temp\\test.bin"
   
    ' Array für Binärdaten
    Dim byaFileData() As Byte
   
    ' Dateizeiger
    Dim fd As Integer
    ' nächsten freien Dateizeiger holen
    fd = FreeFile

    ' Datei zum binären Lesen öffnen
    Open sFile For Binary Access Read As #fd
    ' Array an Dateigröße anpassen
    ReDim byaFileData(0 To LOF(fd) - 1)
    ' Datei in Array einlesen
    Get #fd, , byaFileData
   
    ' hier byaFileData bearbeiten
    ...
   
    ' Datei schließen
    Close #fd
End Sub

[MS Access] Externe Datei öffnen / ausführen

Private Sub btn_OpenFileClick() 
    ' Focus auf Textfeld mit Dateinamen setzen 
    Textfeld1.SetFocus 
    ' Shell-Objekt erzeugen 
    Dim objShell 
    Set objShell = CreateObject("shell.application") 
    ' Datei maximized öffnen, Dateiname steht in Textfeld1.Text 
    objShell.ShellExecute Textfeld1.Text, "", "", "open", 3 
    ' Shell-Objekt wieder zerstören 
    Set objShell = Nothing 
End Sub

[MS Access] parametrierte Abfrage

Manchmal ist es notwendig, Abfragen über Parameter zu steuern. Die in den eckigen Klammern aufgeführten Strings sind die Texte, die bei den Eingabeboxen angezeigt werden.

  • genauer Wert:
    SELECT * FROM Inventar WHERE ID LIKE [Datensatz-ID eingeben:];
    
  • Suchstring:
    SELECT * FROM Inventar WHERE Inventarnummer LIKE "*" & [Inventarnummer eingeben:] & "*";
    
  • direkte Angabe eines Parameters:
    SELECT * FROM Inventar WHERE Inventarnummer LIKE "*" & myParameter & "*";
    

[MS Access] ausgeblendete Navigations- und Menüleisten in Access wieder anzeigen

Hat man versehentlich in den Access-Optionen unter “Aktuelle Datenbank” verschiedene Bedien- und Steuerelemente einer Accessdatenbank dauerhaft ausgeblendet, so kann man dies mit einem ganz einfachen Trick rückgängig machen.

Auf die entsprechende *.mdb-Datei Doppelklicken und gleichzeitig die Shift-Taste bis zum fertigen Start von Access gedrückt halten.

Nun kommt man wieder an alle Bedienelemente und Menüpunkte und kann die Einstellungen ändern.

[MS Access] Komfortable Eingabe von Fremdschlüsselwerten mittels Kombinationsfeld innerhalb einer Tabelle

Ziel: In einer Tabellenzelle soll ein Fremdschlüsselfeld per Name in einem Kombinationsfeld ausgewählt werden können. Die zugehörigen Fremd-ID soll automatisch in die Tabelle eingetragen werden, ohne dass man selber nach der ID suchen muss.

  1. Entwurfsansicht der Tabelle öffnen
  2. Fremdschlüsselspalte auswählen
  3. unten “Nachschlagen” auswählen
  4. “Steuerelement anzeigen” -> Kombinationsfeld
  5. Herkunftstyp “Tabelle/Abfrage”
  6. Datensatzherkunft auf “…” klicken (Abfrage-Generator öffnen)
    • erst Spalte mit Text (z.B. Name) wählen, Sortierung aufsteigend
    • dann Spalte mit Primärschlüssel (ID) wählen
    • Abfrage-Generator schließen
    • Access generiert nun ein passendes SQL-Statement, z.B.:
    • SELECT User.Name, User.ID
      FROM Users
      ORDER BY User.Name;
      
  7. Gebundene Spalte muss nun auf “2” gestellt werden, d.h. die “User.ID” wird später bei der Auswahl anstatt des gewählten Namens in die Tabelle eingetragen
  8. Spaltenzahl auf “1”, so wird im Kombinationsfeld nur die 1. Spalte, also der “Name” angezeigt
  9. Spaltenbreiten können in cm angegeben werden, hier sinnvolle Werte eintragen. Mehrere Spaltenbreiten per “;” trennen!
  10. Listenbreite gibt die angezeigte Gesamtbreite in cm des Kombinationsfeldes an
  11. Zu beachten ist, dass, wenn mehrere Spalten bei der Auswahl angezeigt werden, immer die erste angezeigte Spalte später bei der Auswahl in der Tabelle zu sehen ist.

[MS Access] Abhängigkeiten / Relationen erstellen / editieren

  • Dialogfenster “Beziehungen” öffnen
  • Primäschlüssel sind fett
  • Relation immer vom Primärschlüssel zum Fremdschlüssel ziehen (Typ “Zahl” auf Typ “Zahl”)
  • beachten, dass wenn schon Verweise (Tabelleninhalt) bei den Fremdschlüsseln drin stehen, dass diese auch gültig sind (z.B. “0”)!
  • im Dialog immer “Mit referentieller Integrität” wählen

[MS Access] Tabellen erstellen

  1. Entwurfsansicht der Tabelle öffnen
  2. Primärschlüssel definieren
    • FeldName “ID”
    • links vor dem Feldnamen Rechtsklicken, “Primärschlüssel” wählen
    • Felddatentyp auf “Autowert”
  3. Fremdschlüssel immer vom Typ “Zahl”, “Long Integer”
  4. Indexe: unten bei “Allgemein” bei “Indiziert” “ja” einstellen