Stored Procedure prüfen

22/03/2010 - 08:00 von Lothar Geyer | Report spam
Wie kann mittels VB6-Anwendung ich prüfen, ob in einer Access-Datenbank
ein Modul mit einer speziellen Funktion vorhanden ist?

Und wie bei SQLserver / Express?

Lothar Geyer
 

Lesen sie die antworten

#1 Helmut Meukel
26/03/2010 - 19:48 | Warnen spam
"Lothar Geyer" schrieb im Newsbeitrag
news:
Wie kann mittels VB6-Anwendung ich prüfen, ob in einer Access-Datenbank ein
Modul mit einer speziellen Funktion vorhanden ist?

Und wie bei SQLserver / Express?

Lothar Geyer




Lothar,

deine Fragestellung ist unklar. Was meinst du mit "Modul mit einer
speziellen Funktion"? Einen VBA-Modul mit einer in Access-VBA
programmierten Function? Da kann ich dir nicht helfen.
Wenn du aber das Access-Äquivalent einer Stored Procedure
meinst, also eine Abfrage (Query), dann könntest du z.B. folgendes
tun.
- mit DAO:
entweder
Dim db As Database, qry As QueryDef
Set db = DBEngine.OpenDatabase("MyDB_NamePfad")
for each qry in db.querydefs
'ist die gesuchte Abfrage vorhanden und was dann?
...
next

oder direkt:
Dim db As Database, qry As QueryDef
Const sql = "SELECT DatumZeit, ErhitzerDaten.SchrittNr, Protokolliert,
Meldetext FROM ErhitzerDaten LEFT JOIN ErhitzerMeldetexte ON
ErhitzerDaten.SchrittNr = ErhitzerMeldetexte.SchrittNr WHERE (Protokolliert =
False) ORDER BY DatumZeit;"

Set db = DBEngine.OpenDatabase("MyDB_NamePfad")
Set qry = dbE.QueryDefs("tl_ErhitzerNichtProtokolliert")
On Error GoTo 0
If qry Is Nothing Then
Set qry = db.CreateQueryDef("tl_ErhitzerNichtProtokolliert", sql)
Endif

Im zweiten Beispiel steht der Text der SQL-Abfrage im Programm,
das Programm versucht aber zuerst die in der Access-Mdb gespeicherte
Abfrage zu starten, nur wenn sie nicht da ist wird sie neu angelegt.

Eine gespeichrte Abfrage ist deutlich schneller in der Ausführung,
deshalb diese Konstruktion. Nebeneffekt: wenn jemand die gespeicherte
Abfrage aus der DB versehentlich löscht, legt sie das Programm erneut
an.

Ich verwende wàhrend der Programmentwicklung eine DB mit Testdaten
und erzeuge dort die Abfragen direkt in Access. Liefert sie die
gewünschten Ergebnisse, so kopiere ich den SQL-String ins Programm.

Wenn das Programm dann in den Echtbetrieb geht, brauche ich die
Abfragen nicht aus der Test-DB in die Echt-DB zu kopieren, das
Programm legt sie beim ersten Lauf selbst an.

mfg.

Helmut.

Ähnliche fragen