ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
10786
10786
EMPFEHLEN
-
16.08.06 11:00 #1
- 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.
-
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)
-
16.08.06 12:15 #3
- Registriert seit
- Nov 2004
- Beiträge
- 188
Thx wenns soweit klappt ist der Zähler wohl eher das kleinere Problem
Werds gleich ma ausprobieren...
-
16.08.06 12:42 #4
- 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
-
16.08.06 13:51 #5
- 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)
-
Jup, das mit dem Zähler hatte ich nicht bedacht !
Aber du hast es ja hinbekommen...
Ähnliche Themen
-
XML bestimmte zeile löschen
Von DJCueForce im Forum .NET Windows FormsAntworten: 0Letzter Beitrag: 12.09.10, 11:03 -
Access DataGridView, bestimmte Reihen suchen und löschen
Von JodoK im Forum .NET DatenverwaltungAntworten: 7Letzter Beitrag: 24.11.08, 16:28 -
Nur bestimmte Timestamps aus der DB löschen
Von Dieterkalif im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 04.08.08, 20:24 -
Access - bestimmte Datensätze via Primärschlüssel löschen
Von danielandross im Forum Office-AnwendungenAntworten: 3Letzter Beitrag: 29.05.06, 16:09 -
Bestimmte ID löschen
Von Black Crow im Forum PHPAntworten: 7Letzter Beitrag: 06.01.05, 20:16





Zitieren
Login





