Zufälliger Artikel

Problemstellung:

Die Dömanenfunktionen wie DLookup, DCount, DSum usw. sind schon eine feine Sache.
Der Haken ist nur das diese Funktionen unendlich langsam sind.
Eine Alternative wären SQL-Funktionen die in einem Recordset aufgerufen werden.
Hier eine Lösung dafür. 
{xtypo_alert} Verweis auf die Microsoft DAO 3.X Object Library erforderlich{/xtypo_alert}

Public Enum ltDomWert
     ltDLookup = 0
     ltDCount = 1
     ltDMax = 2
     ltDMin = 3
     ltDFirst = 4
     ltDLast = 5
     ltDSum = 6
     ltDAvg = 7
 End Enum
 
 Function fcDomWert(Expression As String, Domain As String, _
     Optional Criteria As String, _
     Optional ltDomArt As ltDomWert) As Variant
     Dim bytWert As Byte
     Dim strSQL As String
     Dim rs As DAO.Recordset
     If IsMissing(ltDomArt) Then
         bytWert = 0
     Else
         bytWert = ltDomArt
     End If
     Select Case bytWert
         Case 0: strSQL$ = "SELECT " & Expression$ & " FROM " & Domain$
         Case 1: strSQL$ = "SELECT COUNT(" & Expression$ & ") FROM " & Domain$
         Case 2: strSQL$ = "SELECT MAX(" & Expression$ & ") FROM " & Domain$
         Case 3: strSQL$ = "SELECT SUM(" & Expression$ & ") FROM " & Domain$
         Case 4: strSQL$ = "SELECT FIRST(" & Expression$ & ") FROM " & Domain$
         Case 5: strSQL$ = "SELECT LAST(" & Expression$ & ") FROM " & Domain$
         Case 6: strSQL$ = "SELECT SUM(" & Expression$ & ") FROM " & Domain$
         Case 7: strSQL$ = "SELECT AVG(" & Expression$ & ") FROM " & Domain$
     End Select
     If Nz(Criteria$, "") <> "" Then strSQL$ = strSQL$ & " WHERE " & Criteria$
     Set rs = CurrentDb.OpenRecordset(strSQL$, dbOpenForwardOnly)
     If rs.EOF Then
         fcDomWert = Null
     Else
         fcDomWert = rs.Fields(0)
     End If
     rs.Close
     Set rs = Nothing
 End Function

Mit dieser Funktion können alle Domänenfunktionen abgedeckt werden.
Aufruf:
Um z.B. die Summe von Datensätzen zu erhalten die einem bestimmten Kriterium entsprechen.

Dim i As Integer
 i = fcDomWert("DeinAutowertfeld", "DeineTabelle", "[DeinKriteriumsfeld] = " _
     & DeinKriterium, ltDCount)


Das ist nur ein Bsp.

Ähnliche Artikel

Home

1 1 1 1 1 1 1 1 1 1 Rating 0.00 (0 Votes)

Problemstellung:
Auslesen und Setzen von Verweisen in externen MDB's

Voraussetzungen:
Das Bsp ist ab A97 lauffähig.

Funktionsweise:
nach der Dateiauswahl wird beim Klicken auf den Button "ReferenzenPrüfen starten " wird die Prozedur "ReferenzenPrüfen" aufgerufen.
Die Prozedur liest aus der gewählen DB alle gesetzten Verweise mit folgenden Infos aus:

Name der Referenz
Major (Hauptteil der Versions Nr)
Minor (Nebenteil der Versions Nr)
IsBroken= ist Verweis fehlerhaft
BuiltIn= Verweis muß zur Ausführung vorhanden sein
FullPath= gibt den vollständigen Pfad des Verweises an
Kind= gibt die Art des Verweises an
GUID=globale Eindeutige Kennung

Nach Auswahl eines Verweises im Listenfeld ist es möglich diesen aus der DB zu löschen.
Ausnahme BuildIn Verweise

Nach Deiauswahl ist es möglich einen neuen Verweis der DB hinzu zufügen.

1. Einlesen der Referenzen
Der Funktion "ReferenzenPrüfen" wird der komplette Pfad und Dateiname der zu
prüfenden DB übergeben.
Zuerst werden aber alle aten Einträge aus der Tabelle "Referenzen" gelöscht.
Dann wird die gewählte DB geöffnet und die Referenzen eingelesen.
Listing s.Bsp-DB

2. Neu hinzufügen einer Referenz
Der Funktion "VerweisAusDatei" müssen 2 Argumente übergeben werden:
Den kompletten Pfad und Dateinamen der neuen Referenz und den Pfad und Dateinamen
der DB in der die Referenz hinzugefügt werden soll.
Listing s.Bsp-DB
Die Funktion gibt dann True zurück wenn die gewählte Referenz hinzugefügt werden konnte sonst False.

3. Löschen einer Referenz
Der Funktion "Entfernen Referenz" müssen ebenfalls 2 Argumente übergeben werden
Kompletter Pfad und Dateiname der DB in die Referenz gelöscht werden soll und der Name der Referenz
Achtung:
Es ist nicht möglich unter Access die BuildIn-Referenzen "Access" und "VBA" zu löschen.
Deshalb wird der Button "Löschen" in der Bsp-DB auch deaktiviert wenn eine BuildIn-Referenz gewählt wird.
Listing s.Bsp-DB

Dateien:

Anzeigen, Erstellen und Löschen von Verweisen in externen DB's

für A97-A03

Die Zip-Datei enthält ein Version für A97 und eine ab A00
Datum 05.02.2018
Dateigröße 123.99 KB
Download 3.141

Ähnliche Artikel

Kommentar schreiben

Sicherheitscode
Aktualisieren

Login Form

1.png1.png9.png1.png3.png6.png8.png
Heute19
Gestern75
Diese Woche417
Dieser Monat1301
Total1191368

  • IP: 54.81.71.187
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

1
Online

21. April 2018