Wiki der Access Code Library

Gemeinsam zu mehr Effizienz in der Anwendungserstellung

Insert oder Update als Parameter-Abfrage

Aus Access Code Library
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
K (Die Seite wurde neu angelegt: „ {{Hierarchy header}} {{Info|text= Der unten angeführte Code zeigt nur ein Prinzip und stellt keine fertige Lösung dar. }} === Ausgangsbasis === === Eingesetz…“)
K
Zeile 1: Zeile 1:
-
 
{{Hierarchy header}}
{{Hierarchy header}}
{{Info|text=
{{Info|text=
Zeile 5: Zeile 4:
}}
}}
=== Ausgangsbasis ===
=== Ausgangsbasis ===
-
 
+
Eine insert- bzw. Update-Anweisung soll per VBA zusammengesetzt und mit Werten aus Variablen versorgt werden.
=== Eingesetzte Elemente ===
=== Eingesetzte Elemente ===
-
 
+
* DAO-Bibliothek
 +
** QueryDef
=== Konzept ===
=== Konzept ===
 +
# QueryDef-Objekt erstellen
 +
# Parameterwerte festlegen
 +
# SQL-Anweisung ausführen
 +
 +
<source>
 +
Public Function ExecuteParamSQL(ByVal SqlText As String, _
 +
                          ParamArray qdfParams() As Variant) As Long
 +
 +
  Dim qdf As DAO.QueryDef
 +
 
 +
  Set qdf = CurrentDb.CreateQueryDef("", SqlText)
 +
 
 +
  Dim i As Long
 +
  For i = 0 To UBound(qdfParams)
 +
      qdf.Parameters(i) = qdfParams(i)
 +
  Next
 +
  qdf.Execute dbFailOnError
 +
 
 +
  ExecuteParamSQL = qdf.RecordsAffected
 +
 +
End Function
 +
</source>
 +
==== Verwendung ====
 +
<source>
 +
anzahlDS = ExecuteParamSQL("Parameters P1 text, P2 int, P3 date;" & _
 +
                          " insert into Tabelle (T, Z, D) Values ([P1], [P2], [P3])", _
 +
                          "abc", 123, Now())
 +
</source>
{{Hierarchy footer}}
{{Hierarchy footer}}

Version vom 15:05, 1. Jul. 2010

Programmier-Konzepte

Inhalt

Der unten angeführte Code zeigt nur ein Prinzip und stellt keine fertige Lösung dar.

Inhaltsverzeichnis

Ausgangsbasis

Eine insert- bzw. Update-Anweisung soll per VBA zusammengesetzt und mit Werten aus Variablen versorgt werden.

Eingesetzte Elemente

  • DAO-Bibliothek
    • QueryDef

Konzept

  1. QueryDef-Objekt erstellen
  2. Parameterwerte festlegen
  3. SQL-Anweisung ausführen
Public Function ExecuteParamSQL(ByVal SqlText As String, _
                           ParamArray qdfParams() As Variant) As Long
 
   Dim qdf As DAO.QueryDef
 
   Set qdf = CurrentDb.CreateQueryDef("", SqlText)
 
   Dim i As Long
   For i = 0 To UBound(qdfParams)
      qdf.Parameters(i) = qdfParams(i)
   Next
   qdf.Execute dbFailOnError
 
   ExecuteParamSQL = qdf.RecordsAffected
 
End Function

Verwendung

anzahlDS = ExecuteParamSQL("Parameters P1 text, P2 int, P3 date;" & _
                           " insert into Tabelle (T, Z, D) Values ([P1], [P2], [P3])", _
                           "abc", 123, Now())

Arr_l.png SQL-Anweisungen | Benutzerverwaltung und Login Arr_r.png