![]() |
[Access] Mittels VBA Daten aus der DB holen
Moin moin!
Leider leider leider muss ich im Moment mit VBA rumfrickeln :kotz: Aber da ich weiß dass das einige hier können, stelle ich die Frage trotzdem mal in einer Delphi-Community :oops: Vielleicht erinnert sich ja noch der eine oder andere an dieses etwas größere Formular, mit dem ich so meine Probleme hatte. Für jedes der Felder brauche ich jetzt noch mal drei... Und zwar will ich bei jedem angezeigten Eingabefeld auf dem Formular im ControlTipText (auf Delphideutsch: Hint) den Durchschnitts-, Minimal- und Maximalwert der Daten dieses Feldes in der Datenbank anzeigen. Das sind aber zu viele Records als die 255 die ein Access Formular im Recordset verkraftet. Daher müsste ich einfach bei jedem Feld eine einfache SQL-Abfrage machen und den Wert dann eben eintragen. Trotz langer suche (vielleicht suche ich einfach nur das falsche) konnte ich allerdings keinerlei Beispielquelltext finden, wie man mit VBA eine Abfrage durchführt und auf Werte daraus zugreift. :( Ich wäre also sehr glücklich, wenn mir da mal jemand ein kleines Beispiel schreiben könnte :) [edit=SirThornberry]Titel korrigiert - Mfg, SirThornberry[/edit] |
DP-Maintenance
Dieses Thema wurde von "SirThornberry" von "Windows 9x / ME / 2000 / XP / 2003 / Vista" nach "Programmieren allgemein" verschoben.
|
Re: [Access] Mittels VBA Daten aus der DB holen
... und eine Stunde später hatte er sich doch selber was zusammengefrickelt :)
Verbesserungsvorschläge weiterhin willkommen ;)
Code:
@SirThornberry: sorry für die Arbeit, war grad ziemlich fertig mit den Nerven :angel:
Public Function GetHint(Table As String, Field As String) As String
Dim strSQL As String Dim db As Database Dim rs As Recordset strSQL = "SELECT Avg([" & Table & "].[" & Field & "]) AS AvgValue, Min([" & Table & "].[" & Field & "]) AS MinValue, Max([" & Table & "].[" & Field & "]) AS MaxValue FROM [" & Table & "];" Set db = CurrentDb Set rs = db.OpenRecordset(strSQL, dbOpenDynaset) rs.MoveFirst strAvgValue = Round(rs.Fields![AvgValue], 2) strMaxValue = Round(rs.Fields![MaxValue], 2) strMinValue = Round(rs.Fields![MinValue], 2) GetHint = "Durchschnitt: " & strAvgValue & vbCrLf & "Min: " & strMinValue & vbCrLf & "Max: " & strMaxValue End Function |
Re: [Access] Mittels VBA Daten aus der DB holen
Schon mal überlegt was passiert wenn die DB etwas größer wird und das Ergebnis nicht in 1 ms geliefert wird? Dann darf der Anwender ganz schön warten. Besser wäre es den Hint bei bedarf zu laden. Aber ob Access sowas vorsieht?
|
Re: [Access] Mittels VBA Daten aus der DB holen
Zitat:
Die Funktion gibt ja nur die drei Werte im gewünschten Hint-Format zu einem beliebigen Feld zurück. Dafür wäre natürlich ein Cache optimal, aber das ist mir zu overkilled. |
Re: [Access] Mittels VBA Daten aus der DB holen
Zitat:
|
Re: [Access] Mittels VBA Daten aus der DB holen
Nach einem Blick auf #3 kann ich das sehr gut nachvollziehen. :lol:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz