Aufbau Excel-Datenbank
07.03.2025 11:27:25
dirknico
ich möchte aus Maschinen (6 insgesamt) diverse Betriebszustände auslesen, speichern und bei Bedarf über Filterfunktionen grafisch / tabellarisch anzeigen.
Das auslesen und speichern funktioniert soweit, mir geht es um den generellen Aufbau.
Ich habe mir hierzu eine "Parameter-Datei" angelegt in der die Makros zum auslesen, speichern usw. aufgerufen werden.
Es wird je Maschine eine Datei erstellt, in der die Daten über ein Jahr gespeichert werden, neues Jahr -> neue Datei.
Das auslesen und speichern läuft derzeit in einer Endlos-Schleife, hierbei werden die 6 Dateien für die Maschinen geöffnet und beschrieben.
Sub Endlosschleife()
Do
If GetAsyncKeyState(&H1B) = -32767 Then 'ESC-Taste
If MsgBox("Wollen sie wirklich abbrechen?" & Space(10), vbYesNo + vbQuestion, "Abbruch") = vbYes Then
Exit Sub
End If
End If
#If Win64 Then
Dim ph As LongPtr, di As LongPtr, dc As LongPtr
#Else
Dim ph As Long, di As Long, dc As Long
#End If
Dim i, Anlagen, Quelle, Ziel, Tabelle, IP, res, res2, DB, Start, Anzahl, Zeile, Spalte
Anlagen = Worksheets("System").Range("B1") 'IP-Adresse aus Arbeitsblatt
For i = 1 To Anlagen
Quelle = "B" & i + 2
IP = Worksheets("System").Range(Quelle) 'IP-Adresse aus Arbeitsblatt
res = verbinden(ph, di, dc, IP)
If res = 0 Then
' Quelle bereitstellen
DB = Worksheets("System").Range("C2")
Start = Worksheets("System").Range("D2")
Anzahl = Worksheets("System").Range("E2")
res2 = daveReadBytes(dc, daveDB, DB, Start, Anzahl, 0)
If res2 = 0 Then
Select Case i
Case 1
Set Ziel = Workbooks.Open(ThisWorkbook.Path & "\Daten\" & Format(Now, "yyyy") & "_800to_HIW.xlsx")
Ziel.Activate
Case 2
Set Ziel = Workbooks.Open(ThisWorkbook.Path & "\Daten\" & Format(Now, "yyyy") & "_800to_Schuler.xlsx")
Ziel.Activate
Case 3
Set Ziel = Workbooks.Open(ThisWorkbook.Path & "\Daten\" & Format(Now, "yyyy") & "_630to_Schuler.xlsx")
Ziel.Activate
Case 4
Set Ziel = Workbooks.Open(ThisWorkbook.Path & "\Daten\" & Format(Now, "yyyy") & "_400to_Schuler.xlsx")
Ziel.Activate
Case 5
Set Ziel = Workbooks.Open(ThisWorkbook.Path & "\Daten\" & Format(Now, "yyyy") & "_315to_HIW.xlsx")
Ziel.Activate
Case 6
Set Ziel = Workbooks.Open(ThisWorkbook.Path & "\Daten\" & Format(Now, "yyyy") & "_160to_HIW.xlsx")
Ziel.Activate
End Select
Set Tabelle = Ziel.Worksheets(Format(Now, "MMMM"))
Tabelle.Activate
'Zeile
Zeile = Format(Timer(), "0")
'Spalte
Spalte = Format(Now, "dd")
Tabelle.Cells(Zeile * 1, Spalte * 1) = daveGetS16(dc) 'Status
Tabelle.Cells(Zeile * 1, Spalte * 2) = daveGetS16(dc) 'Betriebsart
Tabelle.Cells(Zeile * 1, Spalte * 3) = daveGetS16(dc) 'Hubzahl
Tabelle.Cells(Zeile * 1, Spalte * 4) = daveGetS16(dc) 'Stückzahl
ActiveWorkbook.Save
Windows("BDE_System.xlsm").Activate
End If
End If
Call cleanUp(ph, di, dc)
Next i
Loop
End Sub
Blöd ist jetzt das durch das hin und herspringen zwischen den Dateien der Bildschirm die ganze flackert, zudem wäre es gut wenn das ganze "parallel" im Hintergrund laufen könnte, da ich ja auch irgendwo noch die Sachen für die Auswertung / Anzeige händeln muss.
Macht der generelle Aufbau so Sinn, oder sollte das generell anders aufgebaut werden?
Anzeige