PDA

Vollständige Version anzeigen : Feststellen ob Tab Link oder Tab?


rawa
08.08.2001, 16:14
Wie lautet der Code zum Feststellen, ob eine Tabelle eine eigene Tabelle ist oder nur eine Verknüpfung?

Wie lautet die Eigenschaft, Funktion?

Birgit Dannenberg
08.08.2001, 16:28
Sieh mal nach unter Connect-Eigenschaft des TableDef-Objekts.

hth birgit

A.S.
08.08.2001, 16:40
Andere Möglichkeit: Die MSysObjects-Tabelle...

DLookUp("[Typ]","MSysObjects","[Name]='Tabellenname'")

1 = DB-Eigene Tab
6 = verknüpfte Tab

Gruß

Arno

Birgit Dannenberg
08.08.2001, 16:57
Ergänzung zu Arnos Hinweis:

Type
6 --> Access-Tabelle (auch Excel!)
4 --> ODBC-Verbindung

Der Ansatz über die Systemtabelle ist sicher geschickter/einfacher, aber auch hier kann man sich nähere Informationen aus dem Tabellenfeld 'Connect' holen...

Birgit

rawa
08.08.2001, 17:28
Ja, wieder ich.

Ich kriegs nicht gebacken:

vAttr = DLookup("[Type]", "MSysObjects", "[Name]='Kunden_Datei_Intern'")

If vAttr = 6 Then
DoCmd.OpenTable "Kunden_Datei_Intern", acViewNormal

Else
DoCmd.Beep

End If

Wie nun? :(

Birgit Dannenberg
08.08.2001, 17:37
Ja, was möchtest Du denn gern tun????

rawa
08.08.2001, 18:03
Ich möchte eine Tabelle prüfen, ob sie eine Verknüpfung oder eine eigene Tabelle ist.

Dann bei Verknüpfung Löschen und durch eine andere ersetzen.

Bei dem oberen Bsp. öffnet er immer diese Tab., egal ob nun mit 1 oder 6. ...

Ist der Code falsch?

Birgit Dannenberg
08.08.2001, 18:11
Aha! Das war mir jetzt neu.

Ja, dann lösche sie doch einfach, statt zu piepen, und zwar mit

DoCmd.SelectObject ...
Docmd.deleteObject ...
evtl. SetWarnings False/True


Dass der Code nicht klappt, kann ich mir gar nicht vorstellen, sieht doch gut aus. Hast Du das tatsächlich mit einer internen u n d eingebundenen Tabelle getestet? Hast Du den Code mal im Debugging-Mode durchlaufen?

Birgit

Birgit Dannenberg
08.08.2001, 18:23
Beispiel (läuft bei mir)


Function testtables()
Dim db As Database, rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("msysobjects")
rs.MoveFirst
While Not rs.EOF
Select Case rs!Type
Case 1
Debug.Print "int. Tabelle : ", rs!Name
Case 6
Debug.Print "ext. Tabelle : ", rs!Name
Case 4
Debug.Print "ODBC-Tabelle : ", rs!Name
Case Else
End Select
rs.MoveNext
Wend
Set db = Nothing
rs.Close
End Function

A.S.
09.08.2001, 00:49
Hallo Birgit,

die 4 kannte ich auch noch nicht. Habe dafür aber auch nocht nicht mit Tabellen gearbeitet, die via ODBC eingebunden sind. Da das aber demnächst ansteht, ist das ein Klasse Tip für mich :)

Gruß

Arno