PDA

Vollständige Version anzeigen : Probleme beim Tabellenabgleich


Scrap
20.03.2004, 19:06
Hallo,
dank vieler anderer Beiträge, war ich in de Lage eine gute Grundlage für mein Problem zu schaffen:
ich importiere eine excel Tabelle in access
(klappt)
ich gleich die daten dort mit einer anderen acces tabelle ab
(klapp)

UPDATE tblFKRHalbzeug INNER JOIN tblImport ON tblFKRHalbzeug.[Artikel-Nr] = tblImport.[Artikel ] SET tblFKRHalbzeug.[Artikel-Nr] = tblImport.Artikel, tblFKRHalbzeug.Aussend = tblImport.[Merkmal 2], tblFKRHalbzeug.Hoehe = tblImport.[Best#-Mengen-Fak#], tblFKRHalbzeug.Werkstoff = tblImport.[Merkmal 1], tblFKRHalbzeug.Preis = tblImport.[Du# EK-Preis], tblFKRHalbzeug.Bemerkung = tblImport.Bezeichnung
WHERE (((tblImport.[Art#grp#])="026---"));



wenn ich jedoch die noch nichtvorhandenen daten importieren will, macht er seltsamme sachen:

INSERT INTO tblFKRHalbzeug ( Bemerkung, Werkstoff, Aussend, Preis, Hoehe, [Artikel-Nr] )
SELECT tblImport.[Bezeichnung ], tblImport.[Merkmal 1], tblImport.[Merkmal 2], tblImport.[Du# EK-Preis], tblImport.[Best#-Mengen-Fak#], tblImport.[Artikel ]
FROM tblImport, tblFKRHalbzeug
WHERE (((tblImport.[Art#grp#])="026---") And ((tblImport.[Artikel ])<>tblFKRHalbzeug.[Artikel-Nr]));


die bedingung Artgrp = 026--- trifft auf ca 700 datensätze zu
die artikel <> artikelnr dann auf ca 400 soll vermeiden, das vorhandene datensätze nochmals nizugefügt werden


wenn ich die anfrage ausführe meint access (nach einiger rechenzeit)
"sie möchten 630.436 Zeile(n) einfügen...JA NEIN"

wenn ich jetzt eiskalt ja drücke, kommt danach eine fehlermeldung, das nicht alle datensätze eigefügt werden konnten. es scheint eine standardfehlermeldung zu sein.
da steht
meine db hat 0 datensätze wegen typumwandlungsfehlern auf 0 gesezt und es hat 630436 datensätze wegenschlüsselverletzung, 0 datensätze wegen.....nicht an die tabelle angefügt

kann mir da jemand helfen?

Scrap
20.03.2004, 19:25
zusatzfrage:

kann man dies fenster "möchten sie wirklich" unterbinden?

Tott666
20.03.2004, 22:38
Deine From ist auch ganz fasch, du mußt mit einer right outer join arbeiten und einer bedingung "is null" in der Tabelle tblFKRHalbzeug, sonst multipliziert er die Anzahl der einen Tabelle mit der Anzahl der anderen, und so kommen diese Horenden Zahlen zu szande.

Scrap
21.03.2004, 01:17
join: etwas in der art?
FROM tblImport LEFT OUTER JOIN tblFKRHalbzeug

aber was meinst du mit isnul lbedingung? was soll da null sein?
ich checks grad nicht

mfg scrap

Scrap
21.03.2004, 14:59
ich drück das thema mal nach oben, in der hoffnung, das ein wenig mehr hilfe kommt.

mfg scrap

Tott666
22.03.2004, 22:27
Ich hab dir mal was angehägt, müßte ungefähr deinem Datenmodel entsprechen, dadrin ist die Abfrage um die Fehlenden Artikel einzufügen.

Scrap
22.03.2004, 23:18
ich danke dir, ich schaus mir morgen gleich mal an. habs erstmal downgeloadet...

hoffentlich kann ich das mal wieder gutmachen

stone

Scrap
24.03.2004, 10:39
sorry, da mein feedback heute erst kommt:

also der join klappt super...
musste nur noch eine weiter WHERE klausel einbauen, aber das schaff sogar ich noch *g*

nochmal vielen dank


[edit]
gibt es erine möglichkeit die meldungen alla "Sie beabasichtigen..zu aktualisieren..JA/NEIN" zu unterdrücken?
der import soll ja vollautomatisch (warhscheinlich zeitgesteuert) laufen, da stören die meldungen unheimlich

Tott666
24.03.2004, 13:32
@ Scrap

Du solltest eigentlich ein neues Thema anfangen, da dies ein neues Problem ist.

Wie möchtest du das automatisieren, über ein Fomular??

Wenn ja, hast du einen Schalter und da nimmst du folgenden Code, als Ereignis bei Klick:

CurrentProject.Connection.Execute "q_Insert_into"

Da kommt keine Meldung über möchten Sie oder nicht, er macht einfach.

Scrap
24.03.2004, 13:39
alles klar, danke.
hatte mit docmd.runsql gearbeitet

ich wollte nicht den 1000sten thread erstellen, aber wer ich nächstes mal machen, leuchtet ja auch ein

mfg scrap