Moin Gemeinde,
ich möchte eine Linie auf einem Formular mit einer Skala in 50er Schritten bis zu einem bestimmten Wert (Anzahl der Datensätze) versehen.
Egal was ich die KI bis jetzt gefragt habe - es kam nichts gscheites dabei rau. Wahrscheinlich frage ich auch falsch.
Was ich bisher herausgefunden habe ist dass das nicht in der Formularansicht sonder nur im Entwurfsmodus geht.
Hat jemand von euch eine Lösung dazu?
Wenn noch Fragen sind einfach nachfragen.
Wünsche allen ein schönes Wochenende
Jörg
Hallo Jörg,
habe Dir mal was vorbereitet. Die nicht benötigten Labels Skalastriche etc werden automatisch ausgeblendet.
Es geht auch in der Formularansicht.
Schaue es Dir einfach mal an
Wenn Du Skalierungsschritte anpassen willst musst Du das hier ändern:
lngSteps = lngMax \ 10
.Caption = CStr(i * 10)
Man natürlich dann auch noch einbauen wenn max Daten > x dann Schritte 10 oder wenn noch größer dann Schritte x.
Holger
Habe es noch angepasst damit die Skala Einteilung sich anpasst.
bis 50 DS = 5 er Schritte
50 - 100 = 10 er Schritte
> 100 dann 25 er Schritte
Angepasst wurde das Form_Load und ZeichneSkala
Gruß
Holger
Hallo Holger,
mir gefällt deine Lösung sehr gut - vorallem da sie sehr schlank realisierbar ist mit relativ wenig Code.
Gruß Andi
Hallo Holger,
ersteinmal danke für die Mühe die du dir immer mit dir machst.
Ich versuche gerade mich in dein Beispiel einzuarbeiten.
So ganz verstehe ich das aber nicht bzw. vielleicht hab ich auch einen Denkfehler.
In deinem Beispiel geht die Skala bis 100. Dann markierst du die 107. Das stimmt doch dann nicht.
Die Skala müsste doch bis 107 gehen und dann könnte man z.B. die 100 markieren. Aber nicht umgekehrt.
Klär mich bitte mal auf :-[
Wünsche allen einen schönen Sonntag
Jörg
Hallo Jörg, da hast Du recht und ich habe nicht aufgepasst.
Ersetze mal den Form_Load Teil durch diesen, dann wird es passen. Den Skala Max Wert lege ich jetzt immer einen Skala Strich weiter :=)
Private Sub Form_Load()
Dim lngAnzahl As Long
Dim lngMax As Long
Dim lngSchritt As Long
lngAnzahl = DCount("*", "tblDaten")
lngMax = ((lngAnzahl + 24) \ 25) * 25
If lngMax <= 0 Then lngMax = 25
If lngMax > 100 Then
lngSchritt = 25
ElseIf lngMax > 50 Then
lngSchritt = 10
Else
lngSchritt = 5
End If
ZeichneSkala lngMax, lngSchritt
SetzeMarker lngAnzahl, lngMax
End Sub
@andi Ja ich wollte es auch so halten, ist halt nur blöd die ganzen Labels und Striche vorher zu zeichnen. Aber die Paint Draw Methode ist in Access in Formularen nicht so einfach. Hätte man mit einem Unterbericht machen können, wird aber alles komplizierter.
Gruß
Holger
Hallo Ulli,
ich meine das Paint Ereignis, welches du beim Drucken von Berichten nutzen kannst.
Sorry falsch ausgedrückt
Holger
Hallo Holger,
tut mir leid, aber ich verstehe immer noch nicht, was genau du meinst. Ein Paint-Ereignis in Verbindung mit Reports kenne ich nicht. Meinst du die Line Methode eines Reports?
Ich bin mit Diagrammen nicht gut vertraut, aber das wäre für mich einer der seltenen Fälle, wo ich auf ein embedded Excel Object per OLE zurückgreifen würde, sprich das Diagramm vollständig mit Excel erstellen würde. Alternativ sogar alles in Excel machen und dann von dort aus auf die Daten in Access zugreifen - ginge ja auch und wäre sicherlich einfacher.
Gruß
Ulrich
Ich glaube heute reden wir aneinander vorbei. Ich meine das zum Beispiel ist für den Thread aber untauglich.
Private Sub Detailbereich_Print(Cancel As Integer, PrintCount As Integer)
Me.Line (0, 0)-(2000, 0), vbBlack
End Sub
Ansonsten würde ich da auch Excel nutzen. Aber das was Jörg wollte ist ja so möglich wie ich es gemacht habe.
Holger
PS Glückwunsch der letzte Post war die Nummer 1000
Hallo Holger,
wie immer werde ich dich heute Abend lobend in meinem Nachtgebet erwähnen.
Nach deiner Änderung funktioniert jetzt alles so wie es soll und ich konnte das Teil auch anpassen.
Es geht jetzt bis 20.000 Datensätze.
Die Balken im Bild sind übrigens eine abgewandelte Form von deiner UpdateProgressBar aus der Datensicherung.
Wünsche allen einen schönen Sonntag
Jörg