Projekt-Anfragen: Tel: 07022/9319004 info@CodeDocu.de Software Entwicklung in C# WPF Asp.Net Core Vba Excel Word SQL-Server EF Linq, UWP Net
#

Download:

Datei 1: Demo_13_Abfrage_mit_Code_Function.zip

Wie kann man in MS Access Daten und Werte aus einer Function in einer Abfrage anzeigen

In Microsoft Access ist es oft so, dass Daten in einer SQL Abfrage aus einer Tabelle angezeigt werden sollen, aber zusätzlich ist es notwendig intelligente Unterabfragen an zu anderen Tabellen oder Funktionen einzubringen.
Hierzu kann man in der Abfrage direkt auf eine public function im code zugreifen, die einem zur Laufzeit über vba einen Wert pro Zeile nach einer freien Code-Logik zurückgeben kann

Hier ein Beispiel einer Abfrage, die einen Wert über eine vba-Function in einen Tabelle zur Laufzeit anzeigt.


In der Abfrage kann man hierzu in das Feld direkt eine globale Function angeben.
Falls die Function einen Parameter verwendet, dann kann man diesen in die Klammer schreiben


Oder hier als SQL Text

SELECT tbl_Artikel.ID, tbl_Artikel.Name, tbl_Artikel.Beschreibung, fg_Get_Value_to_Query([ID]) AS Preis_aus_vba_Code
FROM tbl_Artikel;


Damit das Ganze funktioniert muss in den vba-Modulen eine globale Funktion mit dem gleichen Namen vorhanden sein.
Wie man hier sieht, reicht es aus ein Modul zu erstellen und dort eine globale Funktion mit dem gleichen Namen zu erzeugen.
Die Funktion muß einen String oder einen Wert als Rückgabe enthalten.


Die Funktion kann wie dieses Beispiel gestaltet sein:

Option Compare Database
Option Explicit On



Public Function fg_Get_Value_to_Query(ByVal parID As Long) As String
'----------------< fg_Get_Value_to_Query() >----------------
'*Werte in einer Access-Abfrage aus einer vba-Code function zur Laufzeit ermitteln und ausgeben
'< init >
Dim sReturn As String
sReturn = ""
'</ init >

'--< externe Daten holen >--
Dim rec As Recordset
rec = CurrentDb.OpenRecordset("SELECT Einzelpreis FROM tbl_Artikel WHERE ID=" & parID)
If Not rec.EOF Then
sReturn = "Einzelpreis ist " & rec("Einzelpreis") & " in Euro"
End If
'--</ externe Daten holen >--

'< Ausgabe >
fg_Get_Value_to_Query = sReturn
'</ Ausgabe >
'----------------</ fg_Get_Value_to_Query() >----------------
End Function



Im Anhang steht rechts oben ein Link als Download zur Verfügung
Mobile
»
Ausblenden der neuen Spalte hinzufügen in Microsoft Access Datenbanken
»
Access: Umwandlung von Datum in Jahr-Monat-Tag
»
Access: Datum formatieren als Kurzes Datum
»
Access: Texte mit Zeilenumbruch verknüpfen
»
MS Access: Unterabfrage
»
MS Access: Mehrfache Abfrage mit mehreren Worten erstellen wie bei Google Search
»
Access: Fehlermeldung Das angegebene Feld kann sich auf mehr als eine der Tabellen beziehen
»
Vergleich UND Abfragen in Access oder Excel
»
Microsoft Access Datenbankmodul erkennt [..] nicht als gültigen Feldnamen oder Ausdruck
»
MS Access Abfrage mit Werten aus einer Code-Funktion

.

Jobs, Projekte, Angebote für Freiberufler, Selbstständig an Info@CodeDocu.de