Hallo Jochen
Nein, ich habe keinen schlechten Tag gehabt. Die nach Deiner Meinung etwas unfreundliche Antwort bezieht sich auf Deine Bemerkung “M$ Access, wie nicht anders zu erwarten”. Ich kenne genügend andere Programme, die ebenso guten/schlechten (?) Code liefern, wie M$ Access. Warum Bashing statt Sachlichkeit?
Absolut nicht. Access liegt in der hintersten Schublade. Ich werde Access selbst für private Anwendungen nicht einsetzen. Der Aufwand, eine sauber Applikation damit zu erstellen, ist mir zu aufwendig. Allerdings habe ich einige Applikation damit erstellt.
Na ja, um Dir zu helfen habe ich nun Access doch installiert und eine ODBC-Verbindung zu einer PostgreSQL-Datenbank erstellt. Was dann auch zu überraschenden Ergebnissen führte:
Zum jetzigen Zeitpunkt kann ich sagen, dass die 4 Datensätze in Deiner Datenbank nicht ausreichen um eine eindeutige Aussage zu erstellen. Zudem sind die Information in Deiner LOG-Datei unvollständig. Entgegen Deinen Annahmen holt sich Access vorab sämtliche Pkey’s. Hier die wichtigsten Auszüge aus meiner LOG-Datei:
2007-12-07 04:04:19 fristo 127.0.0.1(1041) DEBUG: 00000: StartTransactionCommand
2007-12-07 04:04:19 fristo 127.0.0.1(1041) LOCATION: start_xact_command, postgres.c:2200
2007-12-07 04:04:19 fristo 127.0.0.1(1041) STATEMENT: SELECT "public"."foo"."i" FROM "public"."foo" ORDER BY "public"."foo"."i"
2007-12-07 04:04:19 fristo 127.0.0.1(1041) DEBUG: 00000: StartTransaction
2007-12-07 04:04:19 fristo 127.0.0.1(1041) LOCATION: ShowTransactionState, xact.c:3991
2007-12-07 04:04:19 fristo 127.0.0.1(1041) STATEMENT: SELECT "public"."foo"."i" FROM "public"."foo" ORDER BY "public"."foo"."i"
2007-12-07 04:04:19 fristo 127.0.0.1(1041) DEBUG: 00000: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 48315/1/0, nestlvl: 1, children: <>
2007-12-07 04:04:19 fristo 127.0.0.1(1041) LOCATION: ShowTransactionStateRec, xact.c:4016
2007-12-07 04:04:19 fristo 127.0.0.1(1041) STATEMENT: SELECT "public"."foo"."i" FROM "public"."foo" ORDER BY "public"."foo"."i"
2007-12-07 04:04:19 fristo 127.0.0.1(1041) DEBUG: 00000: CommitTransactionCommand
2007-12-07 04:04:19 fristo 127.0.0.1(1041) LOCATION: finish_xact_command, postgres.c:2224
2007-12-07 04:04:19 fristo 127.0.0.1(1041) STATEMENT: SELECT "public"."foo"."i" FROM "public"."foo" ORDER BY "public"."foo"."i"
2007-12-07 04:04:19 fristo 127.0.0.1(1041) DEBUG: 00000: CommitTransaction
2007-12-07 04:04:19 fristo 127.0.0.1(1041) LOCATION: ShowTransactionState, xact.c:3991
2007-12-07 04:04:19 fristo 127.0.0.1(1041) STATEMENT: SELECT "public"."foo"."i" FROM "public"."foo" ORDER BY "public"."foo"."i"
2007-12-07 04:04:19 fristo 127.0.0.1(1041) DEBUG: 00000: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 48315/1/0, nestlvl: 1, children: <>
2007-12-07 04:04:19 fristo 127.0.0.1(1041) LOCATION: ShowTransactionStateRec, xact.c:4016
2007-12-07 04:04:19 fristo 127.0.0.1(1041) STATEMENT: SELECT "public"."foo"."i" FROM "public"."foo" ORDER BY "public"."foo"."i"
2007-12-07 04:04:19 fristo 127.0.0.1(1041) DEBUG: 00000: StartTransactionCommand
2007-12-07 04:04:19 fristo 127.0.0.1(1041) LOCATION: start_xact_command, postgres.c:2200
2007-12-07 04:04:19 fristo 127.0.0.1(1041) STATEMENT: SELECT "i","j" FROM "public"."foo" WHERE "i" = 0 OR "i" = 1 OR "i" = 2 OR "i" = 3 OR "i" = 4 OR "i" = 5 OR "i" = 6 OR "i" = 7 OR "i" = 8 OR "i" = 9
2007-12-07 04:04:19 fristo 127.0.0.1(1041) DEBUG: 00000: StartTransaction
2007-12-07 04:04:19 fristo 127.0.0.1(1041) LOCATION: ShowTransactionState, xact.c:3991
2007-12-07 04:04:19 fristo 127.0.0.1(1041) STATEMENT: SELECT "i","j" FROM "public"."foo" WHERE "i" = 0 OR "i" = 1 OR "i" = 2 OR "i" = 3 OR "i" = 4 OR "i" = 5 OR "i" = 6 OR "i" = 7 OR "i" = 8 OR "i" = 9
2007-12-07 04:04:19 fristo 127.0.0.1(1041) DEBUG: 00000: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 48316/1/0, nestlvl: 1, children: <>
2007-12-07 04:04:19 fristo 127.0.0.1(1041) LOCATION: ShowTransactionStateRec, xact.c:4016
2007-12-07 04:04:19 fristo 127.0.0.1(1041) STATEMENT: SELECT "i","j" FROM "public"."foo" WHERE "i" = 0 OR "i" = 1 OR "i" = 2 OR "i" = 3 OR "i" = 4 OR "i" = 5 OR "i" = 6 OR "i" = 7 OR "i" = 8 OR "i" = 9
2007-12-07 04:04:19 fristo 127.0.0.1(1041) DEBUG: 00000: CommitTransactionCommand
2007-12-07 04:04:19 fristo 127.0.0.1(1041) LOCATION: finish_xact_command, postgres.c:2224
2007-12-07 04:04:19 fristo 127.0.0.1(1041) STATEMENT: SELECT "i","j" FROM "public"."foo" WHERE "i" = 0 OR "i" = 1 OR "i" = 2 OR "i" = 3 OR "i" = 4 OR "i" = 5 OR "i" = 6 OR "i" = 7 OR "i" = 8 OR "i" = 9
2007-12-07 04:04:19 fristo 127.0.0.1(1041) DEBUG: 00000: CommitTransaction
2007-12-07 04:04:19 fristo 127.0.0.1(1041) LOCATION: ShowTransactionState, xact.c:3991
2007-12-07 04:04:19 fristo 127.0.0.1(1041) STATEMENT: SELECT "i","j" FROM "public"."foo" WHERE "i" = 0 OR "i" = 1 OR "i" = 2 OR "i" = 3 OR "i" = 4 OR "i" = 5 OR "i" = 6 OR "i" = 7 OR "i" = 8 OR "i" = 9
2007-12-07 04:04:19 fristo 127.0.0.1(1041) DEBUG: 00000: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 48316/1/0, nestlvl: 1, children: <>
2007-12-07 04:04:19 fristo 127.0.0.1(1041) LOCATION: ShowTransactionStateRec, xact.c:4016
2007-12-07 04:04:19 fristo 127.0.0.1(1041) STATEMENT: SELECT "i","j" FROM "public"."foo" WHERE "i" = 0 OR "i" = 1 OR "i" = 2 OR "i" = 3 OR "i" = 4 OR "i" = 5 OR "i" = 6 OR "i" = 7 OR "i" = 8 OR "i" = 9
2007-12-07 04:04:19 fristo 127.0.0.1(1041) DEBUG: 00000: StartTransactionCommand
2007-12-07 04:04:19 fristo 127.0.0.1(1041) LOCATION: start_xact_command, postgres.c:2200
2007-12-07 04:04:19 fristo 127.0.0.1(1041) STATEMENT: SELECT "i","j" FROM "public"."foo" WHERE "i" = 10 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11
2007-12-07 04:04:19 fristo 127.0.0.1(1041) DEBUG: 00000: StartTransaction
2007-12-07 04:04:19 fristo 127.0.0.1(1041) LOCATION: ShowTransactionState, xact.c:3991
2007-12-07 04:04:19 fristo 127.0.0.1(1041) STATEMENT: SELECT "i","j" FROM "public"."foo" WHERE "i" = 10 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11
2007-12-07 04:04:19 fristo 127.0.0.1(1041) DEBUG: 00000: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 48317/1/0, nestlvl: 1, children: <>
2007-12-07 04:04:19 fristo 127.0.0.1(1041) LOCATION: ShowTransactionStateRec, xact.c:4016
2007-12-07 04:04:19 fristo 127.0.0.1(1041) STATEMENT: SELECT "i","j" FROM "public"."foo" WHERE "i" = 10 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11
2007-12-07 04:04:19 fristo 127.0.0.1(1041) DEBUG: 00000: CommitTransactionCommand
2007-12-07 04:04:19 fristo 127.0.0.1(1041) LOCATION: finish_xact_command, postgres.c:2224
2007-12-07 04:04:19 fristo 127.0.0.1(1041) STATEMENT: SELECT "i","j" FROM "public"."foo" WHERE "i" = 10 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11
2007-12-07 04:04:19 fristo 127.0.0.1(1041) DEBUG: 00000: CommitTransaction
2007-12-07 04:04:19 fristo 127.0.0.1(1041) LOCATION: ShowTransactionState, xact.c:3991
2007-12-07 04:04:19 fristo 127.0.0.1(1041) STATEMENT: SELECT "i","j" FROM "public"."foo" WHERE "i" = 10 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11
2007-12-07 04:04:19 fristo 127.0.0.1(1041) DEBUG: 00000: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 48317/1/0, nestlvl: 1, children: <>
2007-12-07 04:04:19 fristo 127.0.0.1(1041) LOCATION: ShowTransactionStateRec, xact.c:4016
2007-12-07 04:04:19 fristo 127.0.0.1(1041) STATEMENT: SELECT "i","j" FROM "public"."foo" WHERE "i" = 10 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11 OR "i" = 11
Die Tabelle besteht aus aus den Spalten i und j wobei i der PKey ist. In der Tabelle sind 12 Datensätze enthalten.
Auch dass Access immer nur 10 Datensätze von der Datenbank abholt, geht aus der LOG-Datei hervor. Ich glaube allerdings nicht, dass Du dieses Access abgewöhnen kannst.
Deine Fragen sollten damit geklärt sein.
mfg
fristo