tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
10786
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Blaubmania Blaubmania ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    188
    Hiho,

    also folgende Problematik:

    Ich möchte gerne eine Funktion schreiben die nur bestimmt Tabellen löscht aus der Access DB. Es sollen nur die tabellen gelöscht werden die mit dem Wort "Fehler" beginnen.

    Hab schon gefunden wie ich den "DROP TABLE" Befehl ausführen kann aber wie lässt es sich umsetzten das ich nicht konkret einen Namen sondern nur halt die bestimmten Tabellen löschen lasse. Bin für jede Idee, Hinweis, Tipp dankbar.
     

  2. #2
    the_lorn the_lorn ist offline Mitglied Silber
    Registriert seit
    May 2004
    Beiträge
    88
    Hi!

    Ich denke mal das müsste so etwa hinhauen:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    Dim Datenbank as Database
    Set Datenbank=Currentdb 'oder Open-Methode
     
    for i=0 to Datenbank.TableDefs.Count-1
      if(Left(Datenbank.TableDefs(i).name,6)="Fehler") then
     
        Datenbank.TableDefs.Delete Datenbank.TableDefs(i).name
     
      end if
    next i

    bin mir aber nicht sicher ob i bei 0 oder 1 starten und dem nach bis..count oder ..count-1 laufen muss....
    Geändert von the_lorn (16.08.06 um 11:40 Uhr)
     

  3. #3
    Blaubmania Blaubmania ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    188
    Thx wenns soweit klappt ist der Zähler wohl eher das kleinere Problem Werds gleich ma ausprobieren...
     

  4. #4
    Blaubmania Blaubmania ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    188
    Hm also das mit dem Count haut irgendwie nicht hin hab mal, damit ich weis wie ich den Zähler machen muss die TableDefs.Count im Debug.Print ausgegeben und da zeigt er mir 34 an obwohl ich nur 26 Tabellen habe. Jemand ne Idee woran das liegen kann?!

    hier noch bischen der Code steht nicht viel drinne


    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    
    Function DelTabFehler()
     
    Dim db As Database
    Set db = CurrentDb
     
    Debug.Print db.TableDefs.count
     
    End Function
     

  5. #5
    Blaubmania Blaubmania ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    188
    Okey hab mir via Debug Print die Tabellennamen ausgeben lassen und da tauchen diese Tabellen mit auf wahrscheinlich vom Access selba welche die nicht sichtbar aufgeführt werden.

    MSysAccessObjects
    MSysAccessXML
    MSysACEs
    MSysIMEXColumns
    MSysIMEXSpecs
    MSysObjects
    MSysQueries
    MSysRelationships

    Also danke für die Hilfe somit sollte der Rest eigentlich Problemlos klappen ach und übrigens i = 0 und count - 1

    Eine kleine Verbesserung hab ich allerdings noch da er die Tabellen während der ausführung der Schleife löscht und somit die Anzahl der Tabellen nicht mehr stimmt, bzw. eine übersprungen wird da z.B. wenn Tabelle 7 gelöscht wird die 8 auf die 7 rückt und die 9 auf die 8 und der zähler einfach 1 hochzählt also auf die 8 und dann die vorgerückte überspringt.
    Hab es dann so gelöst zum Ende

    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    Function DelTabFehler()
     
    Dim db As Database
    Set db = CurrentDb
    Dim j As Integer
     
    j = 0
     
    For i = 0 To db.TableDefs.count - 1
        If (Left(db.TableDefs(i - j).Name, 6) = "Fehler") Then
            db.TableDefs.Delete db.TableDefs(i - j).Name
            j = j + 1
        End If
    Next i
     
    End Function
    Geändert von Blaubmania (16.08.06 um 14:36 Uhr)
     

  6. #6
    the_lorn the_lorn ist offline Mitglied Silber
    Registriert seit
    May 2004
    Beiträge
    88
    Jup, das mit dem Zähler hatte ich nicht bedacht !
    Aber du hast es ja hinbekommen...
     

Ähnliche Themen

  1. XML bestimmte zeile löschen
    Von DJCueForce im Forum .NET Windows Forms
    Antworten: 0
    Letzter Beitrag: 12.09.10, 11:03
  2. Access DataGridView, bestimmte Reihen suchen und löschen
    Von JodoK im Forum .NET Datenverwaltung
    Antworten: 7
    Letzter Beitrag: 24.11.08, 16:28
  3. Nur bestimmte Timestamps aus der DB löschen
    Von Dieterkalif im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 04.08.08, 20:24
  4. Access - bestimmte Datensätze via Primärschlüssel löschen
    Von danielandross im Forum Office-Anwendungen
    Antworten: 3
    Letzter Beitrag: 29.05.06, 16:09
  5. Bestimmte ID löschen
    Von Black Crow im Forum PHP
    Antworten: 7
    Letzter Beitrag: 06.01.05, 20:16