+ Antworten
Ergebnis 1 bis 4 von 4

Thema: Create Table-Anweisung

  1. #1
    TP-Newbie Jana macht alles soweit korrekt
    Registriert seit
    May 2005
    Beiträge
    2

    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
    Geändert von Jana (16.05.2005 um 10:45 Uhr)

  2. #2
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    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


  3. #3
    TP-Newbie Jana macht alles soweit korrekt
    Registriert seit
    May 2005
    Beiträge
    2

    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

  4. #4
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    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


+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

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