Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Fortschrittsanzeige für folgenden Code

Frage Entwicklung Batch & Shell

Mitglied: KikiMiki

KikiMiki (Level 1) - Jetzt verbinden

05.03.2009, aktualisiert 17:00 Uhr, 2726 Aufrufe

Hallo ich habe folgenden Code

01.
 
02.
Option Explicit 
03.
 
04.
'---- CursorTypeEnum Values ---- 
05.
Const adOpenForwardOnly = 0 
06.
' Const adOpenKeyset = 1 
07.
' Const adOpenDynamic = 2 
08.
' Const adOpenStatic = 3 
09.
 
10.
'---- LockTypeEnum Values ---- 
11.
Const adLockReadOnly = 1 
12.
' Const adLockPessimistic = 2 
13.
' Const adLockOptimistic = 3 
14.
' Const adLockBatchOptimistic = 4 
15.
 
16.
'---- CursorLocationEnum Values ---- 
17.
' Const adUseServer = 2 
18.
Const adUseClient = 3 
19.
 
20.
'---- ConnectModeEnum Values ---- 
21.
' Const adModeUnknown = 0 
22.
Const adModeRead = 1 
23.
' Const adModeWrite = 2 
24.
' Const adModeReadWrite = 3 
25.
' Const adModeShareDenyRead = 4 
26.
' Const adModeShareDenyWrite = 8 
27.
' Const adModeShareExclusive = &Hc 
28.
' Const adModeShareDenyNone = &H10 
29.
' Const adModeRecursive = &H400000 
30.
Dim objExcel, objWb, SkriptPfad 
31.
Dim objSheet 
32.
Dim Conn, RS 
33.
Dim rowCount, i, headerSet 
34.
Dim x 'Zähler für Statusbar 
35.
 
36.
x = 0 'Anfangswert für Zähler 
37.
 
38.
 
39.
rowCount = 1 
40.
 
41.
SkriptPfad = WScript.ScriptFullName 'Pfadermittlung 
42.
SkriptPfad = Left(SkriptPfad, Len(SkriptPfad) - Len(WScript.ScriptName))  'Pfadermittlung 
43.
 
44.
 
45.
Set objExcel = CreateObject("Excel.Application")  
46.
Set objWb = objExcel.Workbooks.Open(SkriptPfad & "../test.xls")'öffnet die angegebene xls 
47.
 
48.
 
49.
 
50.
objExcel.Visible = False 
51.
objExcel.Sheets("Datenbasis").Select 'wählt die angegebene Mappe der zuvor geöffneten xls 
52.
objExcel.Range("Datenbasis!$1:$65536").ClearContents 'löscht alle Inhalte von angegebener Mappe 
53.
 
54.
'Angabe des Tabellenblattes 
55.
Set objSheet = objExcel.ActiveWorkbook.WorkSheets("Datenbasis") 'Import in angegebenes Tabellenblatt 
56.
 
57.
Set Conn = CreateObject("ADODB.Connection") 
58.
Conn.Provider = "MSDASQL" 
59.
Conn.Mode = adModeRead 
60.
Conn.CursorLocation = adUseClient 
61.
Conn.Open "DRIVER={MySQL ODBC 5.1 Driver};" & _ 
62.
          "DATABASE=name;" & _ 
63.
          "SERVER=server;", _ 
64.
          "user", "password" 
65.
 
66.
Set RS = CreateObject("ADODB.Recordset") 
67.
RS.CursorLocation = adUseClient 
68.
'verwendete SQL-Anweisung 
69.
RS.Source = "SELECT P* From Kunde;" 
70.
Set RS.ActiveConnection = Conn 
71.
RS.CursorType = adOpenForwardOnly 
72.
RS.LockType = adLockReadOnly 
73.
RS.Open           
74.
 
75.
Do While Not RS.EOF 
76.
objExcel.StatusBar = x & " Datensätze aus DB importiert" 'Text für Statusbar 
77.
'Die Spalenüberschriften einfügen Bezug aus dem SQL-Statement 
78.
	If( headerSet = 0 ) Then 
79.
		For i = 0 to RS.Fields.Count - 1 
80.
		  objSheet.Cells(rowCount, i+1).Value = RS.Fields.Item(i).Name 
81.
		Next 
82.
		headerSet = 1 
83.
    End If 
84.
'Die dazugehörigen Werte einfügen 
85.
	For i = 0 to RS.Fields.Count -1  
86.
	  objSheet.Cells(rowCount+1, i+1).Value = RS.Fields.Item(i).Value 
87.
	Next 
88.
    rowCount = rowCount + 1 
89.
	RS.MoveNext 
90.
	 
91.
x = x + 1 
92.
Loop 
93.
objExcel.Statusbar = False 'Statusbar bereinigen 
94.
 
95.
 
96.
objExcel.Sheets("Pivot1").Select 'wählt die angegebene Mappe der zuvor geöffneten xls 
97.
 
98.
 
99.
RS.Close 
100.
Set RS = Nothing 
101.
 
102.
Conn.Close 
103.
Set Conn = Nothing 
104.
 
105.
 
106.
MsgBox "Datenimport! Die Datenbasis zeigt den Stand vom " &  Date  & " bis " & Time & "!" & vbCrLf & "Aktualisieren Sie die Pivottabellen über die Schaltfläche!" & vbCrLf & "Es wurden " & x & " Datensätze aus DB importiert",64, "Info" 
107.
 
Bisher war das excel sichtbar, möchte es aber im Hintergrund laufen lassen. Deshalb objExcel.Visible = False. (Quellcode Zeile 50)

Ich möchte den Anwender aber über die Aktivität des Imports informieren

D.h. ich bräuchte einen Fortschrittsbalken werden der Import im Hintergrund läuft

in dem Code ist die Variable x deklariert, sie gibt die Anzahl der importieren Datensätze an.

Da ich aber nicht weiß wieviele Datensätze es werden, wie soll es dann prozentual dargestellt werden?


Hab mir folgendes überleget:

ich könnte ja vor dem eigentlichen SQL ein weiteres SQL ausführen welche mir die Anzahl der Zeilen ausgibt:

01.
SELECT COUNT(*) FROM Kunden';
Damit würde ich die Gesamtanzahl kriegen.

Wie kann ich diesen Wert in einem Fortschrittsbalken zu meinem Wert x prozentual darstellen.

Jemand eine Idee??
Ähnliche Inhalte
Batch & Shell
Fortschrittsanzeige mit Robocopy?
Frage von imebroBatch & Shell8 Kommentare

Hallo, ich habe eine Batchdatei erstellt, die per Robocopy Backups durchführt. U.a. ist auch ein recht umfangreicher Kopiervorgang dabei ...

Batch & Shell
Robocopy mit Powershell und Fortschrittsanzeige
Anleitung von SamTrexBatch & Shell2 Kommentare

Die Aufgabe Ich sichere von Zeit zu Zeit verschiedene Verzeichnisse von unserem Familien-Server auf mehrere externe Festplatten weg. In ...

Windows Server
Schwerwiegende Warnung hat folgenden für das TLS-Protokoll definierten Code: 40
Frage von theKuKeWindows Server

Hallo, ich komme einfach nicht mehr weiter. Es werden jede sekunde 2 Fehler Produziert. Die ProcessID (siehe Log unten) ...

Batch & Shell
Powershell: Fortschrittsanzeige beim Laden von Snapins
gelöst Frage von Raven42Batch & Shell5 Kommentare

Hallo zusammen, in einem Powershell-Script auf einem Exchange-Server werden das AD-Modul und das Exchange-Snapin geladen: Dabei fällt auf, dass ...

Neue Wissensbeiträge
Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 5 StundenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 5 StundenSicherheit6 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 6 StundenSicherheit5 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Sicherheit

Meltdown und Spectre: Die machen uns alle was vor

Information von Frank vor 6 StundenSicherheit12 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Heiß diskutierte Inhalte
Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von 92943Windows 1031 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Batch & Shell
Anmeldevorgang für Informatikraum (Schule) unter Windows
gelöst Frage von IngenieursBatch & Shell29 Kommentare

Hey zusammen, ich werde in naher Zukunft den Informatik Raum meiner jetzigen Schule von dem aktuellen Betreiber übernehmen (Vertrag ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
Frage von Windows10GegnerNetzwerkgrundlagen19 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...