1 1 1 1 1 1 1 1 1 1 Rating 5.00 (1 Vote)

Problemstellung:

Wie kann ich in der Statuszeile eines Formulars ein Progressbar darstellen?

Fast jeder stand schon mal vor der Situation ein Progressbar darstellen zu wollen.
Jetzt gibt es da einige Lösungen ob nun mit ActiveX-Controls oder anders.
Am einfachsten geht es mit dem SysCmd-Objekt.

Lösung:
Das SysCmd-Objekt hat 3 Methoden dafür.
acSysCmdInitMeter                zur Initialisierung der Progressbar

acSysCmdUpdateMeter        zur Aktualisierung der Progressbar

acSysCmdRemoveMeter      zum Löschen der Progressbar

1. Initialisierung der Pogressbar:

Dim RetVal As Variant
    RetVal = SysCmd(acSysCmdInitMeter, "Statuszeilentext", die Obergrenze)

2. Aktualisierung der Pogressbar:

For n = 1 To 10000000
    RetVal = SysCmd(acSysCmdUpdateMeter, n)
Next n

3. Löschen der Pogressbar:

RetVal = SysCmd(acSysCmdRemoveMeter) 

Hier ein konkretes Beispiel:

Sub Import(sFile As String)
    Dim rsIn As DAO.Recordset, rsOut As DAO.Recordset
    Dim RetVal As Variant, nCount As Long, n As Long
    Dim sInArt As String
    DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel9, "Material", sFile, True
    Set rsIn = CurrentDb.OpenRecordset("Material")
    Set rsOut = CurrentDb.OpenRecordset("tblArtikel")
    '************************************************************
    'Progressbar initialisieren
    rsIn.MoveLast
    nCount = rsIn.RecordCount
    rsIn.MoveFirst
    RetVal = SysCmd(acSysCmdInitMeter, "Datenimport...", nCount)
    '************************************************************
    Do While Not rsIn.EOF
        sInArt = rsIn!Artikel
        rsOut.FindFirst "Artikel = '" & sInArt & "'"
        If rsOut.NoMatch = True Then
            rsOut.AddNew
            rsOut!Artikel = rsIn!Artikel
            rsOut.Update
        Else
            rsOut.Edit
            rsOut!Bezeichnung = rsIn!Bezeichnung
            rsOut.Update
        End If
        rsIn.MoveNext
        rsOut.MoveFirst
        '************************************************************
        'Progressbar aktualisieren
        n = n + 1
        RetVal = SysCmd(acSysCmdUpdateMeter, n)
        '************************************************************
        CurrentDb.TableDefs.Delete "Material"
    Loop
    rsIn.Close: Set rsIn = Nothing
    rsOut.Close: Set rsOut = Nothing
    '************************************************************
    'Progressbar löschen
    RetVal = SysCmd(acSysCmdRemoveMeter)
    MsgBox "Datenimport beendet!", vbInformation + vbOKOnly, "Erfolg"
    '************************************************************
End Sub

Ergebnis:

 

Ähnliche Artikel

You have no rights to post comments

Login Form

Neueste Artikel

SQL zu VBA Konverter
26. Oktober 2018
Problemstellung: Gibt es eine Möglichkeit SQL-Code einer Abfrage so zu konvertieren das der Code in VBA genutzt werden kann? Lösung: Bis Access 2010 gibt das Tool "SmartTools SQL aus Abfragen 3.0"...
1.png2.png5.png1.png6.png3.png4.png
Heute133
Gestern142
Diese Woche275
Dieser Monat3563
Total1251634

  • IP: 100.26.182.28
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

1
Online

17. September 2019

Letzte Kommentare

  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    TommyK 27.02.2019 06:52
    Workshop
    Hallo mpegjunkie, danke für Dein Feedback. Schön das Dir Workshop weiter hilft. :D

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    mpegjunkie 26.02.2019 20:10
    Perfekter Workshop
    Hallo Tommy, perfekter Workshop, toll und umfassend erläutert. Jetzt nutze ich diese Controls auch.

    Weiterlesen...

     
  • Trusted Locations Manager

    Tommy Admin 13.07.2018 13:06
    RE: Trusted Locations Manager
    Hallo Matthias, aus Ermangelung einer 64bit Version kann ich das leider nicht prüfen. Tut mir leid. Gruss ...

    Weiterlesen...

     
  • Trusted Locations Manager

    Matthias 13.07.2018 06:48
    Funktioniert nicht
    Habe gerade den TL-Manager installiert. Nach dem Start sagt er mir, dass es kein Office erkennen ...

    Weiterlesen...