MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 08.01.2019, 16:16   #1
Edgar Basler
MOF Profi
MOF Profi
Standard Acc2016 - Berechnete Balkenlänge darstellen

Ich habe folgende Idee für einen Belegungsplan im Endlos-Formular

Ich habe
- die Uhrzeiten von / bis
- ich weiß wie lange (in cm) eine Stunde ist
- ich weiß auch wo die Uhrzeit (00:00) als "Offset" beginnt

Nun würde ich gerne den Balken automatisiert berechnen und im Detailbereich anzeigen.

1.) Wie mache ich das?
2.) Welches Ereignis ist dafür zuständig?

Ich habe mal ein primitives Beispiel (grafisch) angehängt.
Angehängte Grafiken
Dateityp: jpg Zeitplan.jpg (48,8 KB, 30x aufgerufen)
Edgar Basler ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.01.2019, 17:20   #2
ACC16
Neuer Benutzer
Neuer Benutzer
Standard

Hi Edgar,

ich habe für mich etwas ähnliches erstellt.

Der Projektplan befindet sich in einem Formular.
Die Balken sind eigentlich Bezeichnungsfelder.
Dadurch lassen sich u.a. die Größe, Position und Farbe mittels VB anpassen.
Als Ereignis habe ich "Form_Open (Cancel As Integer)" verwendet.

Für die Einheiten (z.B. Tage), welche für die Größenberechnung verwendet werden, habe ich Variablen erstellt (PLA), die dann später in die Berechnungsformel integriert werden.

Hier hast du ein Beispiel:

Code:

Dim PLA As Byte

PLA = Me.PLA_Tooling.Value
Me.Plat_Bar.BackColor = 64636
Me.Plat_Bar.ForeColor = 10000
Me.Plat_Bar.Width = 567 * 0.13 * PLA      'Breite
Me.Plat_Bar.Left = 567 * 8.114                 'Position
Ich hoffe das hilft dir weiter!

Grüße ACC16
ACC16 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.01.2019, 17:24   #3
Maxel
MOF Guru
MOF Guru
Standard

Zitat:

ich weiß wie lange (in cm) eine Stunde ist

Es gibt im Prinzip 2 Methoden, die Dauer grafisch zu demonstrieren:

- durch die Breite eines Steuerelements
- durch die Anzahl der (Sonder-)Zeichen in einem Textfeld

Aus Deinem Biild geht das nicht hervor. Ich habe mich bei meinem Beispiel für Variante 2 entschieden.
Angehängte Grafiken
Dateityp: png Balken.png (18,5 KB, 36x aufgerufen)

__________________

Viele Grüße von Maxel

Nie aufhören anzufangen,
nie anfangen aufzuhören!

Geändert von Maxel (08.01.2019 um 17:28 Uhr).
Maxel ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.01.2019, 17:39   #4
Kyron9000
MOF Koryphäe
MOF Koryphäe
Standard

Hallo,

ich würde gerne wissen, für was das Projekt gebaut werden soll,
in welchen Zeiträumen die Darstellung das aufzeigen soll was du dir vorstellst.
Minuten, Stunden, Tage, Wochen, Monate, Jahre
Also, etwas genauere Angaben würde da schon hilfreich sein.

...und ich würde jetzt nicht nachfragen... warum,
das kommt absolut nicht gut an (Scherz)

__________________

Gruß Alfred
Kyron9000 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.01.2019, 17:39   #5
gpswanderer
MOF Guru
MOF Guru
Standard

Hallo,
ich habe mal für eine Aufgabenplanung ein Beispiel gemacht.
Siehe Anhang.
Angehängte Dateien
Dateityp: zip ZeitBalken.zip (27,2 KB, 28x aufgerufen)

__________________

Gruß
Klaus
Office2016, Win10
gpswanderer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.01.2019, 17:44   #6
CatboyJones
MOF Profi
MOF Profi
Standard

@Maxel
Welches Sonderzeichen / Font verwendest Du?
CatboyJones ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.01.2019, 18:01   #7
Maxel
MOF Guru
MOF Guru
Standard

@CatboyJones
Das gleiche wie Klaus in seinem Beispiel #5: chrW(9608), er unter Courier New, ich unter Arial Unicode MS.

__________________

Viele Grüße von Maxel

Nie aufhören anzufangen,
nie anfangen aufzuhören!
Maxel ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.01.2019, 18:02   #8
Edgar Basler
Threadstarter Threadstarter
MOF Profi
MOF Profi
Standard

Ich habe eine Einsatzplanung in 5-Minuten-Schritten. Diese würde ich neben der Datendarstellung eben auch noch gerne grafisch aufzeigen, damit man schnell sieht wo noch "Löcher" (also Ressourcen) frei sind.
Edgar Basler ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.01.2019, 18:04   #9
Edgar Basler
Threadstarter Threadstarter
MOF Profi
MOF Profi
Standard

Hallo Klaus
Das sieht schon mal verdammt gut aus. Das möchte ich mir in den nächsten Tagen mal noch genauer ansehen, um es an meine Bedürfnisse anzupassen.
Edgar Basler ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.01.2019, 18:07   #10
Kyron9000
MOF Koryphäe
MOF Koryphäe
Standard

...ob diese Version für dich etwas bringt..kA aber ich habe sie jetzt mal kurz für dich erstellt.
Musst eben nachdenken wie du dieses System für dich verwenden kannst.
Denke schon... aber, das solltest du für dich herausfinden.
Angehängte Dateien
Dateityp: zip Balken.zip (32,2 KB, 12x aufgerufen)

__________________

Gruß Alfred
Kyron9000 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.01.2019, 18:08   #11
ebs17
MOF Guru
MOF Guru
Standard

Ein deutlich anderer, aber auch denkbarer Ansatz wäre dieser hier:
Einfaches Gantt-Diagramm

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}:{11}:{12} <= geklammerte Zahlen sind Einzelthemen
Dein Dankeschön: DBWiki => Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.01.2019, 18:39   #12
CatboyJones
MOF Profi
MOF Profi
Standard

@Maxel
Das Sonderzeichen werde ich mir mal vormerken. Habe sonst immer WebDings als Font genommen.

Auch eine relevante Möglichkeit ist eine RichText-Lösung. Dann kann man es auch bunt machen.

Analog zum Beispiel vom Klaus:
Textformat: Rich-Text
Steuerelementinhalt:
PHP-Code:

="<div>" Replace(String(Nz([Abstand];0);"x"); "x""&nbsp;") & "<font style=""BACKGROUND-COLOR:" IIF([Dauer]<8;"#FF0000";"#00FF00") & """>" Replace(String(Nz([Dauer];0);"x"); "x""&nbsp;") & "</font></div>" 
CatboyJones ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.01.2019, 13:54   #13
Bitsqueezer
Neuer Benutzer
Neuer Benutzer
Standard

Hallo,

auf meiner Downloadseite findest Du die Datei "CCMiniChart", darin enthalten sind zwei Fonts zur Darstellung von Balkendiagrammen in der hier gewünschten Form in verschiedenen Arten sowie zur Darstellung als Kuchendiagramm. Eine kleine VBA-Funktion sorgt für die Darstellung und kann in der Abfrage genutzt werden, mit Skalierung je nach gewünschter Ausgabebreite.

Die Fonts sind in der Zip-Datei als TXT gespeichert und müssen nur in TTF umgenannt werden.

Die Demo-Accessdatei stellt die Beispiele dar, über eine Kombobox im Header kann man die Darstellungsart der Balkengrafik auswählen.

Gruß

Christian
Bitsqueezer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2019, 20:28   #14
Edgar Basler
Threadstarter Threadstarter
MOF Profi
MOF Profi
Standard

Hallo Alfred, hallo alle anderen

Ich habe deinen Lösungsvorschlag umgesetzt und funktioniert sogar ...
Nachdem ich alles über eine Abfrage erledigt hatte, wollte ich dies in einem SQL-String nachbilden. Grund: Ich will das Abfrage-Datum ändern können. Hierzu habe ich folgen Code kreiert:

Code:

Datumsvorgabe = "SELECT T_Auftrag.Fahrtbeschreibung, T_Auftrag.Datum_von, T_Auftrag.Abholzeit, T_Auftrag.Fahrzeug_belegt_1, T_Auftrag.Fahrzeug_belegt_2, "
Datumsvorgabe = Datumsvorgabe & "T_Auftrag.Fahrzeug_ID, T_Auftrag.Fahrer_ID, CInt(([Abholzeit]-#12/30/1899#)*1440/5)+1 AS Abstand, "
Datumsvorgabe = Datumsvorgabe & "CInt(([Fahrzeug_belegt_2]-[Abholzeit])*1440/5) AS Dauer, IIf(Nz([Fahrer_ID])>0 And Nz([Fahrzeug_ID])>0,'
' & " Datumsvorgabe = Datumsvorgabe & "Replace(String(Nz([Abstand],0),'x'),'x',' ') & '" & "" Datumsvorgabe = Datumsvorgabe & "Replace(String(Nz([Dauer],0),'x'),'x',' ') & '
','
' & Replace(String(Nz([Abstand],0),'x'),'x',' ') & " Datumsvorgabe = Datumsvorgabe & "'' & Replace(String(Nz([Dauer],0),'x'),'x',' ') & '
') AS " Datumsvorgabe = Datumsvorgabe & "Balken FROM T_Auftrag WHERE (((T_Auftrag.Datum_von)=#1/11/2019#))" Me.RecordSource = Datumsvorgabe
Als erste ist mir aufgefallen, daß bei der Subtraktion der Zeit (00:00) beim Übersetzen in Access ein

#12/30/1899# entsteht.

Das kann doch nicht stimmen - oder?

Als zweites bekomme ich die Fehlermeldung: "Laufzeitfehler: 3075" - was darf hindeuten soll, das ein fehlender Operator dafür zuständig ist.

Wäre jemand so freundlich und könnte den obigen SQL-String mal ansehen?
Oder kann man das Abfragekriterium in der Abfrage per VBA ändern und aktualisieren?

Geändert von Edgar Basler (12.01.2019 um 20:37 Uhr).
Edgar Basler ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2019, 21:21   #15
Marsu65
MOF Guru
MOF Guru
Standard

Zitat: von Edgar

Als erste ist mir aufgefallen, daß bei der Subtraktion der Zeit (00:00) beim Übersetzen in Access ein

#12/30/1899# entsteht.

Das kann doch nicht stimmen - oder?

Doch das kann. Der Longwert 0 entspricht dem 30.12.1899 00:00 Uhr.
Der Beginn der microsoftschen Zeitrechnung.
Marsu65 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:43 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.