SQLTabellen ständig neu einbinden

31/03/2008 - 12:16 von Kurt Langeder | Report spam
Hallo NG!

Ich binde vom SQL-Server Tabellen in Access ein, - vereinfacht mit
einer einzigen Tabelle "sqlTabKunden" mit folgender Funktion:

'-
Dim db As Database, tdf As TableDef

StrODBCConnect = "ODBC;DRIVER={SQL
Server};APP=myProgramm;SERVER=BUERO2;DATABASE=myDB;UID=myProg;PWD=myPW
"

Set db = CurrentDb
Set tdf = db.TableDefs("sqlTabKunden")
If Err.Number = 0 Then
db.TableDefs.Delete "sqlTabKunden"
db.TableDefs.Refresh
End If
Set tdf = db.CreateTableDef("sqlTabKunden")
tdf.Connect = strConnect
tdf.SourceTableName = "dbo.sqlTabKunden"
db.TableDefs.Append tdf
'-

Ich teste das Programm unter der Access-Vollversion und die Tabellen
werden auch ordnungsgemàß eingebunden.

Wird das Programm beendet (Access-Menüpunkt "Datei/Schließen", wobei
Access noch offen bleibt) und dann das Programm wieder neu geöffnet,
kann auf die SQL-Tabellen ordnungsgemàß zugegriffen werden.

Wird Access jedoch beendet und dann neu gestartet und das Programm
geöffnet, kann auf die SQL-Tabellen nicht mehr zugegriffen werden und
die Tabellen müssen wieder neu eingebunden werden.

Frage: Ist das normal, dass bei jedem Programmstart (in der
Access-Laufzeitversion wird ja Access zusammen mit dem Programm
beendet) die gelinkten Tabellen immer wieder neu eingebunden werden
müssen? Irgendwie scheint sich die Connection zum SQL-Server zu
àndern - ist das ein Rechte-Problem? Alle Rechner und der SQL-Server
haben Admin-Rechte.

Im Forum habe ich zudem gelesen, dass man beim Programmstart eine
gelinkte Tabelle stàndig offen halten soll?

Umgebung: Access97 (SR-2), SQL-Server2005 (SP 1)

Danke und Schöne Grüße
Kurt
 

Lesen sie die antworten

#1 Henry Habermacher
31/03/2008 - 13:21 | Warnen spam
Hallo Kurt

Kurt Langeder wrote:

Ich binde vom SQL-Server Tabellen in Access ein, - vereinfacht mit
einer einzigen Tabelle "sqlTabKunden" mit folgender Funktion:

'-
Dim db As Database, tdf As TableDef

StrODBCConnect = "ODBC;DRIVER={SQL
Server};APP=myProgramm;SERVER=BUERO2;DATABASE=myDB;UID=myProg;PWD=myPW
"

Set db = CurrentDb
Set tdf = db.TableDefs("sqlTabKunden")
If Err.Number = 0 Then
db.TableDefs.Delete "sqlTabKunden"
db.TableDefs.Refresh
End If
Set tdf = db.CreateTableDef("sqlTabKunden")
tdf.Connect = strConnect
tdf.SourceTableName = "dbo.sqlTabKunden"
db.TableDefs.Append tdf
'-



Ist das alles? Da fehlt doch noch was:

tdf.RefreshLink
set tdf = nothing
set db = nothing

Zudem scheint kein Option Explicit im Modul Header drin zu sein, sonst würde
das Statement, wo Du der StrODBCConnect was zuweist einen Fehler geben.

Gruss
Henry

SEK2 Anmeldung: http://donkarl.com/?SEK
Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com

Ähnliche fragen