AW: Daten entfernen und neu laden
05.09.2007 13:19:00
König
Hallo nochmal,
ich brauche diese Prüfung leider. Kurze erklärung:
Ich bekomme aus verschiedene Ländern excel Files mit unterschiedlichen Daten, die Daten haben
immer eine bestimmt kennung dabei (kurz) diese wird ausgelsen und in das tool geschrieben, nach
der ersten Datenart kann nun auch noch eine zweite oder dritte kommen, daher muss ich bevor ich die neue Einspiele schauen, an welche Stelle ich Sie nun schreiben muß, die komplette Einlese Prozedzre lautet so:
Private Sub CMD002_Click()
Dim Blatt$
Dim HELP$
Dim DS_ANZAHL As Integer
Dim I As Integer
Dim Antwort
' Wie lautet die Tabelle (Tabelle=KENNUNG)
Blatt$ = objGES.KENNUNG & "1"
' Gibt es schon Daten fuer die Berichtsform ?
'DS_ANZAHL = 0 ' objCHECK.CHECK_ANZAHL(Blatt$, objDA.KURZ)
DS_ANZAHL = objCHECK.CHECK_ANZAHL(Blatt$, objDA.KURZ)
If DS_ANZAHL = 0 Then
MsgBox "Fuer Datenart " & objDA.DATENART & " sind noch keine Daten importiert !"
' Wieviel Datensaetze gibt es Im Blatt$ ueberhaupt ?
DS_ANZAHL = objCHECK.CHECK_ANZAHL_OHNE(Blatt$)
' Ermittle die Zeile wo die Daten hin sollen
If DS_ANZAHL = 0 Then
DS_ANZAHL = 2
Else
DS_ANZAHL = DS_ANZAHL + 3
End If
' Originaldaten holen und schreiben "Tabelle1" gibt vor wie Originaltabelle heißen muß
With objIMP
.Query_IMPORT myExl, _
EXCELDatei, _
"Tabelle1", _
Blatt$, _
objGDA.BAUMUSTER, _
objGDA.TYPKLASSE, _
objGDA.GEBIET, _
objGDA.BERICHT, _
objGDA.wert, _
objGES.WK, _
objGDA.EBZ, _
objGDA.VON, _
objGDA.BIS, _
objDA.KURZ, _
objGES.WERTART, _
objGES.MONAT, _
objGES.JAHR, _
objGES.DEZ
.DATEN_SCHREIBEN Blatt$, DS_ANZAHL
End With
Else
With objIMP
.Query_IMPORT myExl, _
EXCELDatei, _
"Tabelle1", _
Blatt$, _
objGDA.BAUMUSTER, _
objGDA.TYPKLASSE, _
objGDA.GEBIET, _
objGDA.BERICHT, _
objGDA.wert, _
objGES.WK, _
objGDA.EBZ, _
objGDA.VON, _
objGDA.BIS, _
objDA.KURZ, _
objGES.WERTART, _
objGES.MONAT, _
objGES.JAHR, _
objGES.DEZ
End With
Antwort = MsgBox("Daten an vorhandene anhaengen ?", vbYesNo, "ACHTUNG")
If Antwort = vbYes Then
With objIMP
.DATEN_SCHREIBEN Blatt$, DS_ANZAHL + 3
End With
Else
' objCHECK.Query_DELETE Blatt$, objDA.KURZ
' Tabelle aktivieren
Sheets(Blatt).Select
' Löschen der Zeilen
For I = DS_ANZAHL + 1 To 2 Step -1
HELP$ = I & ":" & I
Rows(HELP$).Select
Selection.ClearContents
Next I
With objIMP
.DATEN_SCHREIBEN Blatt$, DS_ANZAHL + 3
End With
End If
MsgBox "Alle Daten eingefügt"
End If
End Sub
Hier ist noch der Teil den ich zum Daten löschen benutze.
Private Sub Löschen_Click()
Dim Datum1, ZF1, ZF2
Dim Blatt$
Dim anzahl As Long
Dim ausgabestring As String
Dim HELP$
Dim DS_ANZAHL As Integer
Dim I As Integer
' Wie lautet die Tabelle (Tabelle=KENNUNG)
Blatt$ = objGES.KENNUNG & "1"
Sheets(Blatt$).Select
' Gewaehlte Tabelle aktivieren
[a2:r10000].Select
Selection.ClearContents
MsgBox "Daten gelöscht"
Leider kann ich meiner Meinung nach nicht auf die Prüfung verzichten, da ich dann die Daten _
immer wieder
überschreiben würde.
Ich würde mich sehr freuen, wenn da noch jemand eine Idee hat.
Vielen Dank