[MS Access] Daten per VBA Code nach CSV exportieren

Private Sub btnExportToCSV_Click()
    Dim fd As String
    Dim Filename As String  ' Ziel-Dateiname mit Pfad
    Dim SQL As String       ' Name der Tabelle oder SQL-String
    Dim rs As Recordset     ' Recordset
    Dim FileDesc As Variant ' Filedescriptor
    
    fd = ";"                ' Feld-Separator (z.B.: Semikolon)
    
    Filename = "c:\Temp\Test.csv"
    
    SQL = "SELECT timestamp, value FROM TableName WHERE timestamp >= #06/23/2011 00:00:00# AND timestamp <= #06/25/2011 00:00:00# ORDER BY timestamp;"
   
    If Dir(Filename) <> "" Then
        If MsgBox("Datei " & Filename & " vorhanden! Überschreiben?", vbQuestion + vbYesNoCancel + vbDefaultButton2) = vbYes Then
            ' Datei löschen
            Kill Filename
        Else
            ' Funktion beenden
            Exit Sub
        End If
    End If
   
    ' Datenquelle als Recordset öffnen
    Set rs = CurrentDb.OpenRecordset(SQL, dbOpenSnapshot)
    rs.MoveFirst
    
    ' Datei initialisieren und öffnen
    FileDesc = FreeFile
    Open Filename For Output As FileDesc
      
    ' Überschriften schreiben
    Print #FileDesc, "timestamp" & fd & "signal"
    
    ' Datensätze der Tabelle durchlaufen und "Zeitstempel;Wert" schreiben
    Do While Not rs.EOF
      z = rs![timestamp] & fd & rs![value]
      Print #FileDesc, z
      rs.MoveNext
    Loop
   
    ' aufräumen
    Close #FileDesc
    rs.Close
    Set rs = Nothing
   
    MsgBox "Datei geschrieben: " & Filename
End Sub

[MS Access] DateiDialog (ÖffnenDialog) anzeigen, eine Bild-Datei auswählen und diese auf einem Formular anzeigen

Auf dem Formular müssen mind. ein Textfeld namens ‘Dateipfad’, ein Button ‘btnOpenImage’ und ein Bild ‘picImage’ liegen.

Option Compare Database
Option Explicit

Private Sub btnOpenImage_Click()
   ' im Codefenster (Visual Basic-Editor) im Menü Extras->Verweise->Microsoft Office 12.0-Objektbibliothek hinzufügen (anhaken)
   Dim fDialog As Office.FileDialog
   Dim varFile As Variant

   ' Dialog vom Typ FilePicker erzeugen
   Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
   With fDialog
      .Title = "Bitte ein Bild auswählen"
      
      ' erstmal Mehrfachauswahl verhindern
      .AllowMultiSelect = False

      ' Dateifilter
      .Filters.Clear
      .Filters.Add "JPEG (*.jpg)", "*.jpg"
      .Filters.Add "Bitmap (*.bmp)", "*.bmp"
      .Filters.Add "All Files", "*.*"

      If .Show = True Then
         ' For Each ist hier eigentlich nur wichtig bei AllowMultiSelect = true (bei Mehrfachauswahl)
         For Each varFile In .SelectedItems
            ' Textfeld "Dateipfad" auf dem Formular leeren
            Me.Dateipfad.SetFocus
            Me.Dateipfad.Text = varFile
            ' Bildatei dem Bildobjekt zuordnen
            Me.picImage.Picture = varFile
         Next
      End If
   End With
End Sub

[MS Access] Artikel, Tutorials und FAQs zum Thema Microsoft Access

Access-FAQ von Karl Donaubauer

  • schöne FAQ zum Thema Access

The Access Web

  • viele Problemlösungen für Access

Access-Paradies

  • geballtes Access-Wissen

Access-Home

  • Beispiele, Funktionen, FAQ, Links zum Thema Access

Dirk Burkamp Access FAQ

  • schöne FAQ zum Thema Access

Everythingaccess

  • Tutorials Thema Access

Access im Unternehmen

  • Magazin mit schönem Online-Archiv

DB Wiki

  • Informationssystem auf Wiki-Basis

Access Wiki

  • Informationssystem auf Wiki-Basis

[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] Formulardaten für eine parametrierte Abfrage nutzen

Im Beispiel wird z.B. angenommen, dass ein Formular “Adressen” existiert, in dem Datensätze, z.B. Adressdaten, angezeigt werden. Die dort verarbeitete Primärschlüsselspalte “ID” wird in der Abfrage genutzt, um bestimmte Kontakte, die mit dieser Adresse in Zusammenhang stehen, zu suchen.

Wichtig dabei ist das Schlüsselwort “Forms” vor dem Namen des verwendeten Formulars.

SELECT * FROM Kontakte WHERE Spalte LIKE Forms!Adressen!ID

[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] Primärschlüssel (Autowerte) zurücksetzen

Manchmal ist es notwendig den Wert eines Primärschlüssels auf den Startwert (1) zurückzusetzen. Es gibt zwei Möglichkeiten:

  1. Unter “Access-Start-Symbol->Verwalten->Datenbank komprimieren und reparieren” kann die akt. geöffnete DB komprimiert und repariert werden, dabei werden alle Autowerte (Primärschlüssel) von allen leeren Tabellen auf 1 zurückgesetzt sowie alle überflüssigen Daten gelöscht. Falls es Probleme gibt, hat Microsoft hier noch ein paar Lösungen parat: Link
  2. per SQL-Anweisung bei einer bestimmten Tabelle + Primäschlüsselspalte den Autowert auf einen best. Wert setzen:
    ALTER TABLE TabellenName ALTER COLUMN SpaltenName COUNTER(1, 1)