PDA

Vollständige Version anzeigen : Beim Import doppelte Datensätze


muku
25.10.2011, 17:05
Hallo zusammen,
leider habe ich ein Problem.
Der Import klappt wunderbar, nur leider werden die Datensätze doppelt in die Tabelle geschrieben.
D.h. aus 30 DS die importiert werde sollen, werden 60.
Ich habe die Anfügeabfrage schon neu erstellt. Keine besserung.

Hat wer vielleiche eine Ahnung woran das liegen kann? Ich verzweifle hier :mad:

Viele Grüße
muku

FW
25.10.2011, 17:21
... Du importierst in eine leere Tabelle?

muku
25.10.2011, 17:26
ja in eine leere Tabelle nur die "Überschriften" sind vorhanden.

FW
25.10.2011, 17:27
... dann zeig mal Deine Abfrage...

muku
25.10.2011, 17:27
Hier die Anfügeabfrage "qry_anfügen_tbl_tmp_Import"
INSERT INTO tbl_tmp_Import ( [row id], [transaction link], [transaction id], [request reason], [first name], [last name], [date of birth], gender, [email address], telephone, mobile, [first address street], [first address house number], [first address city], [first address post code], [first address country code], [first address district], [first address building], [second address street], [second address house number], [second address city], [second address post code], [second address country code], [second address district], [second address building], [order ammount gross], [order currency code], [is billing and shipping addr identical], [order items type], [credit decission], [payment method], [payment behavior], Accumio, ACC_FeatureTypes, ACC_DMA_Attributes, [ACC_DMA_TL-Attributes], ACC_DMA_Score, [ACC_DMA_TL-Score], Burgel, BWI_FeatureTypes, BWI_DMA_Attributes, [BWI_DMA_TL-Attributes], BWI_DMA_Score, [BWI_DMA_TL-Score], CEG, CEG_FeatureTypes, CEG_DMA_Attributes, [CEG_DMA_TL-Attributes], CEG_DMA_Score, [CEG_DMA_TL-Score], ICD, ICD_FeatureTypes, ICD_DMA_Attributes, [ICD_DMA_TL-Attributes], ICD_DMA_Score, [ICD_DMA_TL-Score] )
SELECT tbl_tmp_Import.[row id], tbl_tmp_Import.[transaction link], tbl_tmp_Import.[transaction id], tbl_tmp_Import.[request reason], tbl_tmp_Import.[first name], tbl_tmp_Import.[last name], tbl_tmp_Import.[date of birth], tbl_tmp_Import.gender, tbl_tmp_Import.[email address], tbl_tmp_Import.telephone, tbl_tmp_Import.mobile, tbl_tmp_Import.[first address street], tbl_tmp_Import.[first address house number], tbl_tmp_Import.[first address city], tbl_tmp_Import.[first address post code], tbl_tmp_Import.[first address country code], tbl_tmp_Import.[first address district], tbl_tmp_Import.[first address building], tbl_tmp_Import.[second address street], tbl_tmp_Import.[second address house number], tbl_tmp_Import.[second address city], tbl_tmp_Import.[second address post code], tbl_tmp_Import.[second address country code], tbl_tmp_Import.[second address district], tbl_tmp_Import.[second address building], tbl_tmp_Import.[order ammount gross], tbl_tmp_Import.[order currency code], tbl_tmp_Import.[is billing and shipping addr identical], tbl_tmp_Import.[order items type], tbl_tmp_Import.[credit decission], tbl_tmp_Import.[payment method], tbl_tmp_Import.[payment behavior], tbl_tmp_Import.Accumio, tbl_tmp_Import.ACC_FeatureTypes, tbl_tmp_Import.ACC_DMA_Attributes, tbl_tmp_Import.[ACC_DMA_TL-Attributes], tbl_tmp_Import.ACC_DMA_Score, tbl_tmp_Import.[ACC_DMA_TL-Score], tbl_tmp_Import.Burgel, tbl_tmp_Import.BWI_FeatureTypes, tbl_tmp_Import.BWI_DMA_Attributes, tbl_tmp_Import.[BWI_DMA_TL-Attributes], tbl_tmp_Import.BWI_DMA_Score, tbl_tmp_Import.[BWI_DMA_TL-Score], tbl_tmp_Import.CEG, tbl_tmp_Import.CEG_FeatureTypes, tbl_tmp_Import.CEG_DMA_Attributes, tbl_tmp_Import.[CEG_DMA_TL-Attributes], tbl_tmp_Import.CEG_DMA_Score, tbl_tmp_Import.[CEG_DMA_TL-Score], tbl_tmp_Import.ICD, tbl_tmp_Import.ICD_FeatureTypes, tbl_tmp_Import.ICD_DMA_Attributes, tbl_tmp_Import.[ICD_DMA_TL-Attributes], tbl_tmp_Import.ICD_DMA_Score, tbl_tmp_Import.[ICD_DMA_TL-Score]
FROM tbl_tmp_Import;



Hier der Import der Datei in die Tabelle
Private Sub Daten_import_Click()

Dim datImpName As String
Dim tblName As String

If (IsNull(Me!FileImport)) Then

' Falls keine Datei angegeben wurde.
MsgBox ("Die zu importierende Datei muss angegeben werden!")

Else
DoCmd.SetWarnings False
'Tabelle Leeren
DoCmd.OpenQuery "qry_loesche_tbl_tmp_Import"
DoCmd.SetWarnings True
MsgBox "Die Tabelle wurde geleert!"

datImpName = Me!FileImport

DoCmd.TransferSpreadsheet acImport, 5, "tbl_tmp_Import", datImpName, True

DoCmd.SetWarnings False
'Import in die Tabelle
DoCmd.OpenQuery "qry_anfügen_tbl_tmp_Import"
DoCmd.SetWarnings True
MsgBox "Datei wurde importiert!"

End If
End Sub

FW
25.10.2011, 17:31
... bei Dir sind Quell- und Zieltabelle gleich tbl_tmp_Import! Du fügst alle Zeilen die bereits in tbl_tmp_Import existieren erneut in tbl_tmp_Import ein...

muku
25.10.2011, 17:35
oh wei oh wei.
D.h. den Teil hier brauch ich gar nicht?!

DoCmd.SetWarnings False
'Import in die Tabelle
DoCmd.OpenQuery "qry_anfügen_tbl_tmp_Import"
DoCmd.SetWarnings True

FW
25.10.2011, 17:38
... ich weiß nicht, was Du machen willst, aber die Tabelle tbl_tmp_Import enthält doch offensichtlich nach dem DoCmd.TransferSpreadsheet schon die gewünschten Sätze?

muku
25.10.2011, 17:41
Ja das enthält sie. Es sollten nur Datensätze von einer Excel-Datei in Access in eine Tabelle kopiert werden.
Komisch ist nur das es vorher mal geklappt hat ohne Probleme bei gleichen Quelltext. Vielen Danke für diesen Tipp. Manchmal sieht man sowas offensichtliches einfach nicht.