TP Underground Lounge 07/08
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 16.05.2005, 10:35   #1
TP-Newbie
 
Registriert seit: May 2005
Jana macht alles soweit korrekt

Create Table-Anweisung


Hallo,

ich habe eine Frage: Im Visual Basic-Code habe ich es schon mit der Create Table Anweisung (von SQL) hinbekommen, neue Tabellen zu erstellen. Das Problem ist aber, wenn eine Tabelle bereits besteht, dass lediglich vom System eine Fehlermeldung erscheint und das Programm abgebrochen wird. Ich möchte das Programm aber gerne so gestalten, dass, nachdem der Benutzer einen doppelten Tabellennamen angegeben hat, er sofort per MSG-Box eine Mitteilung bekommt und den Tabellennamen abändern muss. Wie kann ich das programmiertechnisch erreichen?

Habt ihr eine Idee bzw. könnt ihr mir weiter helfen?

Den VBA-/SQL-Code habe ich mal in einer Word-Datei (frmTabellenerstellung.doc) angehängt.

Vielen lieben Dank im Voraus für eure Mithilfe!

Gruß, Jana
Angehängte Dateien
Dateityp: doc frmTabellenerstellung.doc (24,5 KB, 29x aufgerufen)

Geändert von Jana (16.05.2005 um 10:45 Uhr).
Jana ist offline   Mit Zitat antworten


Alt 16.05.2005, 18:04   #2
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Du kannst der Create-Anweisung eine Lösch-Anweisung voranstellen:

sql_string = "DROP TABLE IF EXISTS `" + tabnam + "`;" +vbnewline;

Ansonsten müsstest Du überprüfen, ob die Tabelle bereits existiert.
Dafür kannst Du folgende Funktion benutzen:

Code:
Public Function RecordSetExistiert(NameRecordSet As String, Optional DatenBank As String = "") As Boolean
    Dim RecordSet As Object, DB As DAO.Database
    On Error GoTo ExistiertNicht
    If DatenBank = "" Then
        Set DB = CurrentDb
    Else
        ' Existiert die Datenbank-Datei ?
        If Dir$(DatenBank, vbHidden + vbReadOnly + vbSystem) = "" Then GoTo ExistiertNicht
        Set DB = OpenDatabase(DatenBank)
    End If
    
    RecordSetExistiert = True
    ' Namen aller Tabellen überprüfen
    For Each RecordSet In DB.TableDefs
        If RecordSet.Name = NameRecordSet Then Exit Function
    Next RecordSet
    ' Namen aller Abfragen durchsuchen
    For Each RecordSet In DB.QueryDefs
        If RecordSet.Name = NameRecordSet Then Exit Function
    Next RecordSet
    
ExistiertNicht:
    RecordSetExistiert = False
End Function
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist gerade online   Mit Zitat antworten
Alt 27.05.2005, 11:47   #3
TP-Newbie
 
Registriert seit: May 2005
Jana macht alles soweit korrekt

Lösung


Hallo St@eff.en!

Danke für deine Hilfe! Das ist sehr nett von dir gewesen!
Leider hatte deine Lösung bei mir irgendwie nicht funktioniert.
Dennoch habe ich die Lösung herausbekommen und für alle, die es interessiert, als Word-Datei angehängt!

Gruß, Jana
Angehängte Dateien
Dateityp: doc Option Compare Database.doc (25,0 KB, 24x aufgerufen)
Jana ist offline   Mit Zitat antworten
Alt 27.05.2005, 12:25   #4
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Ja, ich hab da auch ne falsche Funktion für Dein Problem gepostet.

hier die richtige (auch wenn Du es schon hast)
Code:
Public Function FnbTableExists(TableName As String) As Boolean 
' Checks for the existence of a query (named as QueryName) 
' and returns true if query exists. 
    Dim db  As DAO.Database 
    Dim tdf As DAO.TableDef 

    FnbTableExists = False 
    Set db = CurrentDb 
    For Each tdf In db.TableDefs 
        If tdf.Name = TableName Then 
            FnbTableExists = True 
            Exit Function 
        End If 
    Next tdf 
    Set tdf = Nothing 
    db.Close 
    Set db = Nothing 
End Function
PS es wäre einfacher, wenn Du Code auch in die Codeboxen platzierst als Worddokumente - nicht jeder kann sie lesen und es ist umständlich
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist gerade online   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Create Table-Anweisung Create Table-Anweisung
« Inhalt einer Zeile in einer HTML-Tabelle löschen? | [PHP/MySQL] Problem mit dem ermitteln von User die grade Online sind. »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:23 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67