|  
                                             
	Hallo, 
	  
	Erstmal meine Daten: 
	- 
		Meine CSV Datei sieht folgendermaßen aus:
 
 
	         Keine definierten Spaltennamen (das soll auch so bleiben)! 
	          Dateiname: Gruppe_01 
	                       Spalte 1   Spalte 2 Spalte 3 Spalte 4 Spalte 5 Spalte 6 [...] Spalte 500 
	           Zeile 1  Text           Text            Text               Text      Text              Text      Text 
	           Zeile 2   Text           TextB          TextC         TextD     TextE          TextF    TextY 
	           Zeile 3   ZahlA         ZahlB         ZahlC      ZahlD      ZahlE         ZahlF  ZahlY 
	           Zeile 4   Text 
	           [...] 
	  
	      --> In welche Tabelle die CSV Datei importiert wird bestimmt der Dateiname der immer gleich aufgebaut ist: Gruppe_XX 
	  
	          2. Access Tabelle Gruppe_01 (so soll der Import später aussehen) 
	         Gruppennummer     Progammnummer Programmname <-- es soll nur 3 Spalten geben! 
	          ZahlA                      ZahlB                          TextB 
	          ZahlA                      ZahlC                           TextC 
	          ZahlA                       ZahlD                            TextD 
	          ZahlA                      ZahlE                            TextE 
	          [...] 
	          Zahl A                      ZahlY                               TextY (wäre in der CSV Datei Spalte 500) 
	  
	    Was ich bisher gefunden habe: 
	  
	    1. CSV Datei in Tabelle importieren 
	   
	
Option Compare Database
Private Sub ButtonImport_Click()
 Dim strTabellenname As String
 Dim strDateipfad As String
 
 strTabellenname = "Tabelle1"
 strDateipfad = "C:\Users\m.hofelich\Downloads\Test.csv"
 
 Call csvDateiInTabelleEinlesen(strTabellenname, strDateipfad)
End Sub
Public Sub csvDateiInTabelleEinlesen(ByVal Tabellenname As String, ByVal Dateipfad As String)
 
 'Die erste Zeile der csv-Datei muss die Spaltenüberschriften enthalten.
 'Falls die Tabelle bereits existiert, wird sie gelöscht.
 'Quelle: http://www.dbwiki.net/
 
 Dim db As DAO.Database
 Dim rs As DAO.Recordset
 Dim d As Long
 Dim Zeile As Variant
 Dim arrWerte As Variant
 Dim i As Integer
 Dim j As Integer
 Dim tdf As DAO.TableDef
 Dim fld As DAO.Field
 Dim fldname As String
 
 Set db = CurrentDb
 
 'Tabelle löschen, falls sie schon existiert
 On Error Resume Next
 db.TableDefs.Delete Tabellenname
 On Error GoTo 0
 
 'csv-Datei öffnen
 d = FreeFile
 Open Dateipfad For Input As #d
 
 'Datei zeilenweise durchlaufen
 Do While Not EOF(d)
 
   'Zeile auslesen, einzelne Werte in Array einlesen
   Line Input #d, Zeile
   arrWerte = Split(Zeile, ";")
   j = j + 1
 
   'Tabellennamen aus der ersten Zeile (=Überschriften) auslesen
   If j = 1 Then
 
     'Array durchlaufen
     For i = 0 To UBound(arrWerte)
 
       'Wenn kein Wert existiert
       If arrWerte(i) = "" Then
         fldname = "Spalte " & i + 1
       Else
         fldname = arrWerte(i)
 
         'Ungültige Zeichen ersetzen
         fldname = Replace(fldname, Chr(10), " ")
         fldname = Replace(fldname, Chr(34), "")
         fldname = Replace(fldname, ".", "_")
         fldname = Replace(fldname, "!", "")
 
       End If
 
       'Spalte 1
       If i = 0 Then
 
         'TableDef-Objekt erstellen
         Set tdf = db.CreateTableDef(Tabellenname)
 
         ' Die neue Tabelle muß mindestens 1 Feld enthalten: Feld anlegen
         Set fld = tdf.CreateField(fldname, dbText, 255)
 
         ' Field-Objekt an Fields-Auflistung des TableDef-Objekts anfügen.
         tdf.Fields.Append fld
         tdf.Fields.Refresh
 
         ' TableDef-Objekt an TableDefs-Auflistung der Datenbank anfügen
         db.TableDefs.Append tdf
         db.TableDefs.Refresh
 
       Else
 
         'Fieldobjekt erzeugen
         Set fld = tdf.CreateField(fldname, dbText, 255)
 
         ' Field-Objekt an Fields-Auflistung des TableDef-Objekts anfügen.
         tdf.Fields.Append fld
         tdf.Fields.Refresh
 
         'Speicher freigeben
         Set fld = Nothing
 
       End If
 
     Next i
 
     'Speicher freigeben
     Set tdf = Nothing
 
     'Tabelle in Recordset einlesen
     Set rs = CurrentDb.OpenRecordset(Tabellenname, dbOpenDynaset)
 
   'Werte in Tabelle einlesen
   Else
     rs.AddNew
 
     For i = 0 To UBound(arrWerte)
       rs(i) = IIf(arrWerte(i) = "", Null, Left(arrWerte(i), 255))
     Next i
 
     rs.Update
   End If
 
 Loop
 
 Close #d
 
End Sub
 
	  
	    Meine Problemstellung lautet nun: 
	  
	    1. Wie kann ich die CSV Datei auf den Wert ZahlA überprüfen um  ZahlA anschließend in jede neue Zeile von "Gruppennummer" in der Access Tabelle               einzufügen? 
	  
	    2. ZahlB soll in "Programmnummer" eingefügt werden und TextB in "Programmname" --> Das nätürlich bis kein Wert mehr vorhanden ist. 
	  
	    Ablauf: 
	        
	    1. Ich habe ein Access Formular, dort gibt es einen Button. 
	    2. Klickt man auf diesen Button öffnet sich ein FileChose Dialog mit dem man die Datei auswählt (z.B. Gruppe_01) --> Dateiname = Tabellenanme 
	    3. Nun sollen die Wert in die Access Tabelle importiert werden 
	  
	    --> Was cool wäre: 
	        Man kann beim importieren mehrere Dateien auswählen und die Dateien werden jeweils in ihre eigene Tabelle importiert (Dateiname = Tabellenname) 
	        Das sollte dann sowohl mit einer als auch mit mehreren Dateien funktionieren. 
	  
	    Ich freue mich über jede Hilfe. 
	  
     |