Antwoorden

1. Een tabledef kent de name- en recordcount-eigenschap, vandaar

Function records_in_tabel()
Dim db As Database, t As TableDef, x As Integer
Set db = CurrentDb
For x = 0 To db.TableDefs.Count - 1
Set t = db.TableDefs(x)
Debug.Print t.Name, t.RecordCount
Next x
End Function

2

Function veld_in_tabel()
Dim db As Database, t As TableDef, f As Field
Dim veld As String, x As Integer, y As Integer
veld = InputBox("welk veld?")
Set db = CurrentDb
For x = 0 To db.TableDefs.Count - 1
Set t = db.TableDefs(x)
For y = 0 To t.Fields.Count - 1
Set f = t.Fields(y)
If veld = f.Name Then
Debug.Print t.Name
End If
Next y
Next x
End Function

3. Aangezien de naam van het tabledef- en field-object gekend is kan men ze aanspreken met de methode collectienaam(variabele) waar de variabele de naam is van de tabel of het veld.

Function eigenschappen_van_veld()
Dim db As Database, t As TableDef, f As Field
Dim veld As String, tabel As String, x As Integer
tabel = InputBox("welke tabel?")
veld = InputBox("welk veld?")
Set db = CurrentDb
Set t = db.TableDefs(tabel)
Set f = t.Fields(veld)
For x = 0 To f.Properties.Count - 1
Debug.Print f.Properties(x).Name
Next x
End Function

4. Normaal zou je met de volgende oplossing de inhoud van het veld moeten zien, maar je krijgt een foutmelding op de regel debug.print f.
Reden: De tabledefscollectie bevat enkel de tabelgegevens als velden en niet de inhoud van de tabel.

Function inhoud_van_veld()
Dim db As Database, t As TableDef, f As Field
Dim veld As String, tabel As String, x As Integer
tabel = InputBox("welke tabel?")
veld = InputBox("welk veld?")
Set db = CurrentDb
Set t = db.TableDefs(tabel)
Set f = t.Fields(veld)
Debug.Print f
End Function