PDA

Vollständige Version anzeigen : Primärschlüssel erstellen bei Tabellenerstellungsabfrage die 2.


Stephan Geißer
20.03.2003, 18:03
Hallo

ich habe eine Tabellenerstellungsabfrage in Access2k und möchte, das diese bei der erstellen Tabelle auch einen Primärschlüssel erstellt.

Wer kann mir da weiterhelfen?

Stephan Geißer

Nouba
20.03.2003, 18:34
Mit einer Tabellenerstellungsabfrage alleine geht das nicht. Du mußt dann noch zwei DDLs hinterher ausführen.
ALTER TABLE DeineTabelle ADD Column DeinAutowertFeldname Counter
ALTER TABLE DeineTabelle ADD Constraint DerNameDesPrimaerschluessels Primary Key (DeinAutowertFeldname)

Pittchen
20.03.2003, 18:39
Moin Leute

@nouba:

ich habe mich mal daran versucht:

Private Sub Befehl0_Click()
Dim db As DAO.Database
Dim qdf As QueryDef
Dim strSql As String

Set db = CurrentDb()

strSql = "Create Unique Index KdNr On T_Kunden With Primary;"

Set qdf = db.CreateQueryDef("Q_PrimaerschluesselSetzen", strSql)
qdf.Execute

db.QueryDefs.Delete qdf.Name


End Sub

bekomme beim ausführen aber die Meldung, dass der sql String syntaktisch falsch ist.

Wieso??? :(

Gruß Pittchen

Alexander Jan Peters
20.03.2003, 18:58
<p>Hallo Pittchen,

mit CREATE TABLE wird eine neue <strong>leere</strong> Tabelle erstellt (Datendefinitionsabfrage):</p>
<pre style="font-size:105%;">CREATE TABLE
NeueTabelle
(FeldA TEXT, FeldB TEXT, FeldCIndex INTEGER CONSTRAINT NameIndex PRIMARY KEY);</pre>
<p>Nouba beschreibt zwei Abfragen, die im Anschluß an eine SELECT INTO Abfrage ausgeführt werden, bei der aus den Daten einer Abfrage eine Tabelle gemacht wird, dort werden die Feldtypen und -größen ja durch die Felder der Abfrage definiert und nicht per SQL.

Gruß Alex</p>

Nouba
20.03.2003, 19:10
Create Index KdNrIdx On T_Kunden (KdNr) With Primary

sollte funktionieren. Dabei ist KdNr der Name des zu indizierenden Felds und KdNrIdx der Name des Indexes.

Alexander Jan Peters
20.03.2003, 19:14
<p>Uuups, sorry Pittchen, da hab' ich doch mehr in Deine Abfrage reininterpretiert, als tatsächlich da war ;)
Ich sollte vielleicht mal erst lesen und dann schreiben.</p>

Pittchen
20.03.2003, 19:41
Moin Leute,

@nouba: das war's; Danke für's auf die Sprünge helfen :) :)

@Alexander: passiert mir auch häufiger, ;)


Hoffen wir, dass es auch dem Stefan weiter hilft

Gruß Pittchen :D

Stephan Geißer
21.03.2003, 14:40
Hallo ihr Helfer,
Eure Vorschläge funktionieren :) ,
aber ich :confused: habe wahrscheinlich die Frage falsch gestellt.
Ich habe zwar jetzt einen Primärschlüssel mit den alten Werten :mad:
was ich aber wollte sind Werte von 1 bis n, also alle eingefügte Datensätze durchnummeriert. Sorry
Vieleicht könntet Ihr mir nochmal helfen
Danke
Stephan Geißer

:biggrinl: man sollte doch richtig lesen wenn man schon anworten bekommt

Es Klappt
Danke

jmc
21.03.2003, 17:53
Hallo Stephan

dann musst du eben ein neues Feld in die Tabelle einfügen und dieses als Autowert definieren.
Beim Speichern des Entwurfs wird dann durchnummeriert.

Nouba
21.03.2003, 18:43
Hallo Stefan,

es wäre schön, wenn Du beim Thread Primärschlüssel erstellen bei Tabellenerstellungsabfrage (http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=89060) geblieben wärest. Die Begründung dafür steht in der Netiquette (http://www.ms-office-forum.net/forum/netiquette.php).