Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Tabellen aus vorhandener Tabelle erstellen
zurück: 2 Kriterien prüfen und ausgeben weiter: ErsterWert liefert falsches Ergebnis Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Bitte Status wählen ! Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
accessdau
Gast


Verfasst am:
11. Jan 2005, 11:44
Rufname:

Tabellen aus vorhandener Tabelle erstellen - Tabellen aus vorhandener Tabelle erstellen

Nach oben
       

Hallo Leute

Ich habe eine Tabelle in der in der Spalte "Name" alle Daten stehen, die für neue tabellen die spalten werden sollten.

Kann ich das irgendwie automatisieren? vielleicht funktioniert das mit sql, er muss die daten aus der spalte "Namen" auslesen und diese in einer neuen tabelle als spalten anlegen.

Kann mir jemand weiterhelfen?

Besten Dank
Skogafoss
Moderator / Access-Halbprofi ;-)


Verfasst am:
11. Jan 2005, 13:06
Rufname:
Wohnort: Wiesbaden


AW: Tabellen aus vorhandener Tabelle erstellen - AW: Tabellen aus vorhandener Tabelle erstellen

Nach oben
       

Hallo,
du kannst das mit der Create Table-Anweisung durchführen. Dazu solltest du aber auch wissen, welche Datentypen (evtl. auch Größe, Index) du den einzelnen Felder zuweisen willst. Die Syntax der Create Table-Anweisung findest du in der Hilfe (wie auch Beispiele).
Gruß
Skogafoss
accessdau
Gast


Verfasst am:
11. Jan 2005, 13:25
Rufname:

AW: Tabellen aus vorhandener Tabelle erstellen - AW: Tabellen aus vorhandener Tabelle erstellen

Nach oben
       

besten dank

könntest du mir vielleicht ein beispiel machen?
sorry, ich bin ziemlich neu auf diesem gebiet..

besten dank
Skogafoss
Moderator / Access-Halbprofi ;-)


Verfasst am:
11. Jan 2005, 13:58
Rufname:
Wohnort: Wiesbaden

AW: Tabellen aus vorhandener Tabelle erstellen - AW: Tabellen aus vorhandener Tabelle erstellen

Nach oben
       

Hallo,
ich weiß ja nicht, wie oft diese Tabellenerstellungsgeschichte anliegt, aber wenn das eine einmalige Sache ist, dann bist du mit Sicherheit schneller, wenn du das manuell machst (Copy and Paste der Feldnamen). Insbesondere, wenn du mit VBA-Programmierung in Access noch nicht so viel Erfahrung hast. Aber das musst du letztlich entscheiden.
Nehmen wir mal an, du hättest in einem Modul deine zukünftigen Feldnamen aus der Tabelle ausgelesen und die stünden in zwei Variablen Feld1 und Feld2 (für zwei macht das keinen Sinn, aber für mehr gilt das analog, dann aber vielleicht besser in einem Array).
Code:
Sub TabelleErstellen()
    Dim SQL As String
    Dim Feld1 As String
    Dim Feld2 As String
   
    '  ... (hier das Besetzen der beiden Variablen aus deiner Tabelle)
    SQL = "CREATE TABLE TestTabelle (" & Feld1 & " Integer, " & Feld2 & " Text)"
    DoCmd.RunSQL SQL
End Sub

Diese Prozedur erstellt dir eine Tabelle TestTabelle mit den beiden Feldern (Feldnamen wie aus der ersten Tabelle) mit den Datentypen Integer (1. Feld) bzw. Text (2. Feld).
In der Hilfe ist die genaue Syntax von Create Table zu finden.
Aber wie gesagt, wenn das eine einmalige Sache ist und du nicht so fit in SQL und VBA bist, würde ich den manuellen Weg empfehlen.
Gruß
Skogafoss
accessdau
Gast


Verfasst am:
11. Jan 2005, 14:42
Rufname:


AW: Tabellen aus vorhandener Tabelle erstellen - AW: Tabellen aus vorhandener Tabelle erstellen

Nach oben
       

besten dank. das hat schon echt geholfen..

mein problem ist, das ich dies mit ca. 200 tabellen machen muss. mit copy paste wäre ich da ewig dran.

noch eine letzte frage, wie kann ich diese daten aus der bereits bestehenden tabelle auslesen um die variabeln zu füllen? du hast da was von einem array erwähnt.. wie kann ich das machen?
Skogafoss
Moderator / Access-Halbprofi ;-)


Verfasst am:
11. Jan 2005, 15:12
Rufname:
Wohnort: Wiesbaden

AW: Tabellen aus vorhandener Tabelle erstellen - AW: Tabellen aus vorhandener Tabelle erstellen

Nach oben
       

Hallo Gast,
anbei mal ein Beispiel, wie man das machen könnte. Ich bin dabei davon ausgegangen, dass im Feld Name (sollte man übrigens eigentlich nicht für selbsterstellte Felder nutzen, da Name in Access ein reserviertes Wort ist) der Tabelle DeineTabelle die Feldnamen der neuen Tabelle DeineNeueTabelle stehen und alle vom Typ Text sein sollen.
Code:
Sub TabelleErstellen()
    Dim arrNamen() As String
    Dim i As Integer
    Dim SQL As String
    Dim cdb As DAO.Database
    Dim rst As DAO.Recordset
 
    Set cdb = CurrentDb
    Set rst = cdb.OpenRecordset("DeineTabelle")
    'Anzahl der Datensätze bestimmen, dazu muss zuerst auf letzten Datensatz positioniert werden
    'vorher noch prüfen, ob die Tabelle leer ist
    If rst.EOF And rst.BOF Then
        MsgBox "Ausgangstabelle ist leer!"
        Exit Sub
    End If
    rst.MoveLast
    ReDim arrNamen(1 To rst.RecordCount)
    i = 0
    'Lesen der Ausgangstabelle vom Anfang her
    rst.MoveFirst
    Do Until rst.EOF
        i = i + 1
        arrNamen(i) = rst!Name
        rst.MoveNext
    Loop
    'Annahme, dass alle Felder Text-Felder sind
    SQL = ""
    For i = 1 To UBound(arrNamen)
        SQL = SQL & arrNamen(i) & " Text, "
    Next i
    'letzen beiden Zeichen wieder entfernen
    SQL = Left(SQL, Len(SQL) - 2)
    SQL = "CREATE TABLE DeineNeueTabelle (" & SQL & ")"
    DoCmd.RunSQL SQL
    MsgBox "Neue Tabelle erstellt!"
End Sub

Du musst das Beispiel natürlich auf deine Bedürfnisse anpassen.
Gruß
Skogafoss
accessdau
Gast


Verfasst am:
11. Jan 2005, 16:03
Rufname:

AW: Tabellen aus vorhandener Tabelle erstellen - AW: Tabellen aus vorhandener Tabelle erstellen

Nach oben
       

da sieht schon sehr gut aus..

allerdings bekomme ich beim befehl
Code:
    DoCmd.RunSQL SQL
immer eine fehlermeldung, nämlich : "Syntaxfehler in Felddefinition"

hast du eine ahnig was das sein könnte?
Skogafoss
Moderator / Access-Halbprofi ;-)


Verfasst am:
11. Jan 2005, 16:13
Rufname:
Wohnort: Wiesbaden

AW: Tabellen aus vorhandener Tabelle erstellen - AW: Tabellen aus vorhandener Tabelle erstellen

Nach oben
       

Hallo,
hast du Feldnamen, die ein Leerzeichen enthalten? Wie gesagt, das war nur ein Beispiel, wie das funktionieren könnte.
Wenn du z.B. Feldnamen mit Leerzeichen drin hast, dann muss die Definition von SQL etwas anders lauten:
Code:
        SQL = SQL & "[" & arrNamen(i) & "] Text, "
denn sonst hast du z.B. bei einem Namen mit Leerzeichen (z.B. "Feld xyz") in der SQL
Code:
..., Feld xyz Text, ...
stehen und das versteht er natürlich nicht, da er "Feld" als Feldnamen interpretiert und dann (statt des xyz) den Felddatentyp erwartet. Die [ bzw. ] fassen dann den Feldnamen "zusammen", damit Access da nichts falsch interpretiert.
Füge am besten mal statt DoCmd ...
Code:
    MsgBox SQL
    'DoCmd.RunSQL SQL
ein und schau dir die SQL mal an, was da genau steht und ob es der erwarteten Syntax entspricht. Wenn das alles ok ist, kannst du die erste Zeile wieder löschen und das Hochkomma wegmachen und noch mal laufen lassen.
Gruß
Skogafoss
accessdau
Gast


Verfasst am:
13. Jan 2005, 11:49
Rufname:

AW: Tabellen aus vorhandener Tabelle erstellen - AW: Tabellen aus vorhandener Tabelle erstellen

Nach oben
       

ich konnte mein problem dank deiner hilfe mit folgendem code realisieren:

ich konnte mein problem dank deiner hilfe mit folgendem code realisieren:
Code:
Sub Tabellen()
     Dim arrNamen() As String
     Dim i As Integer
     Dim SQL As String
     Dim cdb As Database
     Dim rst As Recordset
     
     Set cdb = CurrentDb
     Set rst = cdb.OpenRecordset("Test")
     'Anzahl der Datensätze bestimmen, dazu muss zuerst auf letzten Datensatz
     'positioniert werden vorher noch prüfen, ob die Tabelle leer ist
     If rst.EOF And rst.BOF Then
        MsgBox "Ausgangstabelle ist leer!"
        Exit Sub
     End If
     rst.MoveLast
     ReDim arrNamen(1 To rst.RecordCount)
     i = 0
     'Lesen der Ausgangstabelle vom Anfang her
     rst.MoveFirst
     Do Until rst.EOF
        i = i + 1
        arrNamen(i) = rst!Name
        rst.MoveNext
     Loop
     'Annahme, dass alle Felder Text-Felder sind
     SQL = ""
     For i = 1 To UBound(arrNamen)
        SQL = SQL & arrNamen(i) & " text,"
     Next i
     'letzen beiden Zeichen wieder entfernen
     SQL = Left(SQL, Len(SQL) - 1)
     DoCmd.RunSQL "Create Table DeineNeueTabelle (" & SQL & ")"
     MsgBox "Neue Tabelle erstellt!"
End Sub

Nochmals Besten Dank

Allerdings bringt Access einen Fehler sobald in den spalten zeichen wie * oder - vorkommen.. kann ich das irgendwie ignorieren? wenn ich eine Tabelle in der entwurfsansicht erstelle kann ich diese zeichen ja auch verwenden.. das versteh ich nicht so ganz!
Skogafoss
Moderator / Access-Halbprofi ;-)


Verfasst am:
13. Jan 2005, 13:10
Rufname:
Wohnort: Wiesbaden


AW: Tabellen aus vorhandener Tabelle erstellen - AW: Tabellen aus vorhandener Tabelle erstellen

Nach oben
       

Hallo,
du solltest auf jeden Fall die Form der SQL-Zuweisung mit den eckigen Klammern (vgl. mein letztes Posting) wählen. Dann kann auch ein Minuszeichen in den Feldnamen auftauchen. Ansonsten versucht Access das Minuszeichen als mathematischen Operatot zu interpretieren, was natürlich schiefläuft.
Auf keinen Fall würde ich Namen vergeben, die einen * enthalten. Das ist zwar nicht explizit verboten, bringt aber letztlich nur Ärger. Ich persönlich verwende auch kein - und keine Leerzeichen in Feldnamen. Es macht einfach die Sache wesentlich fehlerunanfälliger. Aber das muss jeder selbst entscheiden.
Die Sache mit den [ und ] solltest du aber auf jeden Fall machen, dann bist du auf der sicheren Seite bei Leerzeichen und Minuszeichen.
Gruß
Skogafoss
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Abgleich von 2 tabellen in access 2003 4 Fierce 1719 16. Apr 2004, 08:27
el_gomero Abgleich von 2 tabellen in access 2003
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle formatiert in txt-Datei exportieren 1 robby 1115 12. Apr 2004, 23:10
Helge Tabelle formatiert in txt-Datei exportieren
Keine neuen Beiträge Access Tabellen & Abfragen: Zeilenumbruch nach Einfügen Word Tabelle 2 topflop 1698 30. März 2004, 16:06
Gast Zeilenumbruch nach Einfügen Word Tabelle
Keine neuen Beiträge Access Tabellen & Abfragen: neue Tabellen erstellen aus vorhandener Tabelle 6 moni 2010 29. März 2004, 15:39
moni neue Tabellen erstellen aus vorhandener Tabelle
Keine neuen Beiträge Access Tabellen & Abfragen: datensatz aus mehreren Tabellen im formular anzeigen 1 SixPack 1197 29. März 2004, 10:53
Willi Wipp datensatz aus mehreren Tabellen im formular anzeigen
Keine neuen Beiträge Access Tabellen & Abfragen: neue Tabellen erzeugen; kopieren 7 DiplomandSPS 1323 25. März 2004, 10:01
fridgenep neue Tabellen erzeugen; kopieren
Keine neuen Beiträge Access Tabellen & Abfragen: Wert einer Abfrage in Tabelle kopieren? 1 BerlinerWolf 2009 21. März 2004, 12:43
Maya Wert einer Abfrage in Tabelle kopieren?
Keine neuen Beiträge Access Tabellen & Abfragen: Tabellen verknüpfen 1 darkblue82 802 05. März 2004, 12:00
lothi Tabellen verknüpfen
Keine neuen Beiträge Access Tabellen & Abfragen: Daten als Spaltenüberschriften einer anderen Tabelle 1 Melburnt 685 03. März 2004, 17:11
lothi Daten als Spaltenüberschriften einer anderen Tabelle
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage mit Auswahlkriterium über 2 Tabellen 1 Majo 1907 24. Feb 2004, 13:54
Willi Wipp Abfrage mit Auswahlkriterium über 2 Tabellen
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage aus Formular erstellen 2 frkrone 3248 12. Feb 2004, 14:22
frkrone Abfrage aus Formular erstellen
Keine neuen Beiträge Access Tabellen & Abfragen: Wie kann ich ein Formular erstellen ? 1 Gast 683 01. Feb 2004, 13:34
borstel Wie kann ich ein Formular erstellen ?
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Excel Tricks