Access zeigt nur #Gelöscht in verknüpfter Sicht mit ROW_NUMBER()

zachy

Aktiver Benutzer
Beiträge
35
Hallo ins Forum,

ich habe in MS SQL Server eine Sicht mit einer nummerierten Spalte erzeugt:

SQL:
CREATE VIEW qryNummer_Test
AS
SELECT
    ROW_NUMBER() OVER(ORDER BY frmName ASC) AS Nummer,
    FrmName
FROM tblFirmen;

Im SSMS kann ich die Sicht problemlos abfragen.

Wenn ich die Sicht in Access als Verknüpfung einfüge, dann fragt mich Access ja, welche Spalte ich als eindeutigen Datensatzbezeichner auswählen möchte:

1693980577018.png

Ich habe die Nummer ausgewählt und mit OK bestätigt.

Öffne ich die verknüpfte Tabelle nun in Access, dann zeigt das Programm in allen Zellen #Gelöscht an:

1693980660180.png

Wähle ich dagegen keine Spalte als eindeutigen Datensatzbezeichner, dann funktioniert ist einwandfrei.

Hat jemand eine Idee, warum das Programm die Datensätze nicht richtig anzeigen kann?

Danke und Grüße
zachy
 
Werbung:
Vl. ist die Nummer nicht eindeutig, und er "löscht" alle Datensätze, die die gleiche Nummer hätten?

Arbeite kaum mit Datenbankprogrammen, nur eine Vermutung ;)

oder sind in der Datenbank Datensätze die wie im Post aussehen darin?

EDIT:
vl. muss man der Funktion row_numer einen parameter übergeben? sprich den Spaltennamen, was er zählen soll?
 
Zunächst nur zur Sicherheit:
Die Konstruktion mit row_number erfüllt vielleicht die Logik-Anforderung an eindeutige Werte der Spalte, aber taugt nicht dazu, die Datensätze editierbar zu machen oder verlässlich wiederzufinden, was ja der Sinn des Primärschlüssels ist.

Das Problem kann evtl durch den Spaltentyp verursacht sein, bigint ist für ältere Access zu groß. Vielleicht hilft ein cast auf einen kleineren Typ (im View)
Wenn es eh nur zu Anzeige dient (mehr geht ja auch nicht), sollte es sowieso egal sein.
 
@Kampfgummibaerlie ROW_NUMBER() ist syntaktisch korrekt und mangels PARTITION BY ist es zwangsläufig eindeutig. Anzahl der Datensätze ist interessant, siehe @dabadepdu .

Lass dir doch mal in Access den SQL Code anzeigen, das müsste irgendwie gehen. Ich vermute Access "erkennt" irgendwie das es sich um eine Funktion handelt. Wie ist Access angebunden?
 
Werbung:
Ja, bestimmt kann es Mist bauen, aber es ist kein Import mit Typ raten und so. Es ist der Zugriff auf einen View, der muss seinen Typ mitliefern.
 
Zurück
Oben