Access 2010 SQL Tabellen Datensätze einfügen
Liebe Gemeinde,
ich habe 3 Formulare(Access 2010), die ersten beiden greifen direkt auf einen SQL Table zu(der Table liegt auf einen internen SQL Server und wurde mit dem FE verlinkt), das 3. Formular greift auf eine Abfrage zu.
Bei den ersten beiden Formularen kann ich problemlos Datensätze hinzufügen bzw. löschen(direkt im Formular, ohne VBA Code oder Buttons), beim 3. hingegen kann ich zwar Datensätze löschen, aber keine neuen hinzufügen.
Muss ich die Abfrage jetzt in eine Pass-Trough umwandeln oder gibt es da einen einfacheren Weg?
SQL Server Management Studio 2014
Bitte um Hilfe!
Besten Dank!
Gruß
Dr.
ich habe 3 Formulare(Access 2010), die ersten beiden greifen direkt auf einen SQL Table zu(der Table liegt auf einen internen SQL Server und wurde mit dem FE verlinkt), das 3. Formular greift auf eine Abfrage zu.
Bei den ersten beiden Formularen kann ich problemlos Datensätze hinzufügen bzw. löschen(direkt im Formular, ohne VBA Code oder Buttons), beim 3. hingegen kann ich zwar Datensätze löschen, aber keine neuen hinzufügen.
Muss ich die Abfrage jetzt in eine Pass-Trough umwandeln oder gibt es da einen einfacheren Weg?
SQL Server Management Studio 2014
Bitte um Hilfe!
Besten Dank!
Gruß
Dr.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 326536
Url: https://administrator.de/contentid/326536
Ausgedruckt am: 25.11.2024 um 00:11 Uhr
6 Kommentare
Neuester Kommentar
Gruß mik
Das Problem ist, das Views nicht grundsätzlich Updatefähig sind.
Eine View aus mehreren Tabellen ist nur dann Updatefähig, wenn alle Primärschlüssel aller beteiligten Tabellen mit drin sind.
Das ist bei Dir vermutlich nicht der Fall.
Und wir brauchen auf dem SQL auch eine definierte Fremschlüsselbeziehung.
Ich habe es mal mit zwei einfachen Tabellen auf SQL 2012 probiert (mit Access 2013, habe kein 2010):
Im Access dann:
Da funktioniert es. Es wird sogar im 2. Schlüssel (dbo_Table2.ID) automatisch der richtige Schlüsselwert eingetragen, wenn ich in die ersten 3 Felder was eintrage und dann in einen anderen Datensatz springe.
Eine View aus mehreren Tabellen ist nur dann Updatefähig, wenn alle Primärschlüssel aller beteiligten Tabellen mit drin sind.
Das ist bei Dir vermutlich nicht der Fall.
Und wir brauchen auf dem SQL auch eine definierte Fremschlüsselbeziehung.
Ich habe es mal mit zwei einfachen Tabellen auf SQL 2012 probiert (mit Access 2013, habe kein 2010):
CREATE TABLE [dbo].[Table1](
[ID] [int] NOT NULL,
[Wert1] [nvarchar](50) NULL,
CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
CREATE TABLE [dbo].[Table2](
[ID] [int] NOT NULL,
[Wert2] [nvarchar](50) NULL,
CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Table2] WITH CHECK ADD CONSTRAINT [FK_Table2_Table1] FOREIGN KEY([ID])
REFERENCES [dbo].[Table1] ([ID])
SELECT dbo_Table1.ID, dbo_Table1.Wert1, dbo_Table2.Wert2, dbo_Table2.ID
FROM dbo_Table1 INNER JOIN dbo_Table2 ON dbo_Table1.ID = dbo_Table2.ID;
Da funktioniert es. Es wird sogar im 2. Schlüssel (dbo_Table2.ID) automatisch der richtige Schlüsselwert eingetragen, wenn ich in die ersten 3 Felder was eintrage und dann in einen anderen Datensatz springe.