VBA function
1. Ellenőrzi az alábbi függvény, hogy létezik-e a megadott fájl és a hozzá tartozó elérési út.
Function FileOrDirExists(PathName As String) As Boolean
Dim iTemp As Integer
On Error Resume Next
iTemp = GetAttr(PathName)
Select Case Err.Number
Case Is = 0
FileOrDirExists = True
Case Else
FileOrDirExists = False
End Select
On Error GoTo 0
End Function
2. Ez a függvény pedig megvizsgálja, hogy egy külső Access mdb fájlban létezik-e egy tábla.
Public dbMyDB As Database
Function TableExists(TableName As String) As Boolean
Dim jTemp
On Error Resume Next
jTemp = dbMyDB.TableDefs(TableName)
Select Case Err.Number
Case Is = 0
TableExists = True
Case Else
TableExists = False
End Select
On Error GoTo 0
End Function
3. Alább láthatjuk, hogy miként kell alkalmazni FileOrDirExists függvényt. Továbbá azt is megmutatjuk, hogy egy Access Form legördülő menüjét miként tölthetjük fel egy külső mdb tábla neveivel olyan módon, hogy a megfelelőek kerüljenek a megadott menübe. És természetesen a rendszer táblákat ne vegye figyelembe, mert hasonló nevű mező lehet azokban is, mint amit feltételnek megadunk (pl. “ID”).
Public sPath As String
Public dbMyDB As Database
Option Compare Database
Private Sub txtPath_BeforeUpdate(Cancel As Integer)
sPath = txtPath.Text
End Sub
Private Sub Parancsgomb12_Click()
Dim i As Long
If FileOrDirExists(sPath) Then
MsgBox sPath, vbInformation, “Az Ön által megadott fájl létezik”
Else
MsgBox sPath, vbInformation, “Az Ön által megadott fájl vagy elérési út nem található”
Exit Sub
End If
Set dbMyDB = OpenDatabase(sPath)
For i = 0 To dbMyDB.TableDefs.Count - 1
nev = dbMyDB.TableDefs(i).Name
If nev <> “MSysAccessObjects” And nev <> “MSysAccessXML” And nev <> “MSysACEs” And nev <> “MSysObjects” And nev <> “MSysQueries” And nev <> “MSysRelationships” Then
If dbMyDB.TableDefs(i).Fields(0).Name = “MEZO_EGYIK” Then
KombináltLista0.AddItem (nev)
KombináltLista6.AddItem (nev)
ElseIf dbMyDB.TableDefs(i).Fields(0).Name = “MEZO_MASIK” Then
KombináltLista2.AddItem (nev)
KombináltLista8.AddItem (nev)
End If
End If
Next
End Sub
4. Példa a TableExists függvény használatára.
If TableExists(”TABLE_NAME”) Then
dbMyDB.Execute “DROP TABLE TABLE_NAME”
End If
