Discussion:
Existiert die Abfrage schon?
(zu alt für eine Antwort)
Matthias
2004-10-11 12:09:36 UTC
Permalink
Hallo,

ich bin auf der Suche nach einer Möglichkeit aus VBA heraus zu Testen, ob
eine Abfrage bereits existiert.
Kann mir da jemand helfen?

Außerdem suche ich auch eine Funktion, um zu testen, ob einen
(Access-externe) Datei schon existiert.


Vielen Dank

Matthias
--
Erstellt mit Operas revolutionärem E-Mail-Modul: http://www.opera.com/m2/
Scheiber Erwin
2004-10-11 13:22:08 UTC
Permalink
Post by Matthias
Hallo,
ich bin auf der Suche nach einer Möglichkeit aus VBA heraus zu Testen, ob
eine Abfrage bereits existiert.
Kann mir da jemand helfen?
Außerdem suche ich auch eine Funktion, um zu testen, ob einen
(Access-externe) Datei schon existiert.
Vielen Dank
Matthias
--
Erstellt mit Operas revolutionärem E-Mail-Modul: http://www.opera.com/m2/
Versuchs damit:

Function CheckQuery(QueryName As String) As Boolean
Dim db As DAO.Database, bOK As Boolean
Set db = CurrentDb()
Dim qd As QueryDef
On Error Resume Next
For Each qd In db.QueryDefs
If qd.Name = QueryName Then bOK = True
Next
Set db = Nothing
CheckQuery = bOK
End Function


Für das Überprüfen auf das Vorhandensein einer Textdatei verwende den Befehl
"DIR". siehe OnlineHilfe

lg
Erwin
Stefan Dase
2004-10-11 12:56:26 UTC
Permalink
Hallo Matthias!

Bitte gib in dieser NG deinen vollen Namen an, halten wir alle so. :)
Post by Matthias
ich bin auf der Suche nach einer Möglichkeit aus VBA heraus zu Testen,
ob eine Abfrage bereits existiert.
Entweder die rabiate Methode*:

On Error Resume Next
Dim qdf As DAO.QueryDef
Set qdf = CurrentDb.QueryDefs("AbfrageName")
If Err.Number = 0 Then
'Abfrage existiert
End If

Oder etwas eleganter über eine Funktion*:

Public Function existQuery(QueryName As String) As Boolean
Dim dbs As DAO.Database
Dim qdf As DAO.QueryDef
Set dbs = CurrentDb

For Each qdf In dbs.QueryDefs
If qdf.Name = QueryName Then
existQuery = True
Exit For
End If
Next qdf

Set qdf = Nothing
Set dbs = Nothing

End Function

Aufrufen dann über:

If existQuery("AbfrageName") Then
'Abfrage existiert
End If
Post by Matthias
Außerdem suche ich auch eine Funktion, um zu testen, ob einen
(Access-externe) Datei schon existiert.
If Dir("C:\Pfad\Datei") <> "" Then
'Datei existiert
End If

* = Verweise auf DAO muss aktiviert sein (Extras > Verweise)

HTH,
Stefan
Michael Zimmermann
2004-10-11 13:19:39 UTC
Permalink
Hallo!
^viel ;-)
Public Function existQuery(QueryName As String) As _
Boolean
Dim dbs As DAO.Database
Dim qdf As DAO.QueryDef
Set dbs = CurrentDb
For Each qdf In dbs.QueryDefs
If qdf.Name = QueryName Then
existQuery = True
Exit For
End If
Next qdf
Set qdf = Nothing
Set dbs = Nothing
End Function
If existQuery("AbfrageName") Then
'Abfrage existiert
End If
Noch ein Alternativvorschlag: Wahrscheinlich wird im
Falle der Existenz auch etwas damit gemacht, also ein
Verweis auf das qdf-Objekt benötigt:

Public Function existQuery( _
QueryName As String) _
As DAO.QueryDef

Dim dbs As DAO.Database
Set dbs = CurrentDb

For Each existQuery In dbs.QueryDefs
If existQuery.Name = QueryName _
Then
Exit For
End If
Next existQuery

Set dbs = Nothing

End Function


Aufrufen dann über:

Set qdf = existQuery("AbfrageName")
If qdf Is Nothing _
Then
'Abfrage existiert nicht
Else
qdf.Machwas
End If

Gruß aus Mainz
Michael

Loading...