Temporäre SQL-Tabelle in Access nutzen
Eine lokale temporäre Tabelle wird mit docmd.runsql (#table_name) erstellt. Wenn z.B. ein Kombinationsfeld mit me.Kombinationsfeld.rowsource = "SELECT ...... FROM #table_name" diese Tabelle nutzen soll wird gemeldet, dass die Abfrage die Datenquelle nicht finden kann. ...
Status: MS-Access 2000 (adp) ist hier mit MSSQL-SERVER 2000 verbunden.
Why ?
Vielen Dank
PCFJKG
Status: MS-Access 2000 (adp) ist hier mit MSSQL-SERVER 2000 verbunden.
Why ?
Vielen Dank
PCFJKG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 80963
Url: https://administrator.de/contentid/80963
Ausgedruckt am: 24.11.2024 um 04:11 Uhr
7 Kommentare
Neuester Kommentar
Hallo,
Angenommen #table_name ist eine String Variable(so aber nicht in Deinem eigtl. Code) die das CREATE TABLE-Statement enthält, poste diesen einmal.
Ansonsten mal eine Anmerkung zum optionalen TEMPORARY in einem CREATE TABLE Statement:
Wenn eine TEMPORARY-Tabelle erstellt wird, ist sie nur in der Sitzung sichtbar, in der sie erstellt wurde. Sie wird automatisch gelöscht, wenn die Sitzung beendet wird. Der Zugriff auf temporäre Tabellen kann durch mehrere Benutzer erfolgen.
Quelle: MSDN
BG; Felix -misterdemeanor-
docmd.runsql (#table_name)
Angenommen #table_name ist eine String Variable(so aber nicht in Deinem eigtl. Code) die das CREATE TABLE-Statement enthält, poste diesen einmal.
Ansonsten mal eine Anmerkung zum optionalen TEMPORARY in einem CREATE TABLE Statement:
Wenn eine TEMPORARY-Tabelle erstellt wird, ist sie nur in der Sitzung sichtbar, in der sie erstellt wurde. Sie wird automatisch gelöscht, wenn die Sitzung beendet wird. Der Zugriff auf temporäre Tabellen kann durch mehrere Benutzer erfolgen.
Quelle: MSDN
BG; Felix -misterdemeanor-
Hallo PCFJKG,
also Microsoft schreibt folgendes zu Deinem Problem: KB243532
Was Microsoft dazu sagt:
Hoffe das bringt Dich weiter.
BG, Felix -misterdemeanor-
also Microsoft schreibt folgendes zu Deinem Problem: KB243532
Beim 2. Aufruf von Create in einer Sitzung wird ein allgemeiner ERROR gemeldet (vermutlich weil #T_Abs nicht gelöscht wurde ?)
Was Microsoft dazu sagt:
Wenn eine lokale temporäre Tabelle in einer gespeicherten Prozedur oder einer Anwendung erstellt wird, die von mehreren Benutzern gleichzeitig ausgeführt werden kann, muss SQL Server in der Lage sein, die von den verschiedenen Benutzern erstellten Tabellen zu unterscheiden. Zu diesem Zweck hängt SQL Server intern ein numerisches Suffix an alle Namen von lokalen temporären Tabellen an. Der vollständige, in der sysobjects-Tabelle in tempdb gespeicherte Name einer temporären Tabelle besteht aus dem in der CREATE TABLE-Anweisung angegebenen Tabellennamen und dem vom System generierten numerischen Suffix.
Hoffe das bringt Dich weiter.
BG, Felix -misterdemeanor-
Zunächst einmal Danke für die
Hilfe.
Hilfe.
Gern geschehen. Hab ja auch selbst wieder was gelernt
a) wieso funktioniert es mit globaler
temporärer Tabelle und mit lokaler
temporärer Tabelle nicht ?
temporärer Tabelle und mit lokaler
temporärer Tabelle nicht ?
Das ist eine gute Frage. Es wird sicherlich eine Einscränkung von Jet oder wahrscheinlicher von Acces selbst sein. Eine klare Begründung habe ich auch nicht finden können.
Nur: wenn intern ein numerisches Suffix
angehängt wird, wozu brauche ich bei
Create dann einen Verweis auf den dbo ?
angehängt wird, wozu brauche ich bei
Create dann einen Verweis auf den dbo ?
Den brauchst Du ja gar nicht. Das galt nur für die RowSource Eigenschaften eines Formulares/Berichtes in Access 2000. Das war mir auch erst beim testen aufgefallen. Insofern war der KB-Artikel Link für das Problem unrelevant.
Vielleicht kann ich zunächst DROP durch
DELETE ersetzen.
DELETE ersetzen.
Versuche mal folgendes Statement:
IF OBJECT_ID('tempdb..##T_Abs') IS NOT NULL DROP TABLE ##T_Abs
BG, Felix -misterdemeanor-