2016-08-04 10 views
0

Es ist viele Jahre her, seit ich Access benutzt habe, und ich bin definitiv rostig ... Ich würde gerne eine bestehende Tabelle in mehrere Tabellen teilen, basierend auf einem einzigen Wert. Zum Beispiel: (man beachte die Werte variieren, spielt keine Rolle, was sie sind, mit Ausnahme von Col C unter)Wie erstelle ich neue Tabellen basierend auf einem Feldwert?

Col A | Col B | Col C | Col D 
-------------------------------- 
aaa | xxx | app1 | somepath1 
bbb | yyy | app1 | somepath2 
ccc | zzz | app2 | somepath3 
ddd | www | app2 | somepath4 
eee | vvv | app3 | somepath5 

Grundsätzlich möchte ich spalten und eine Tabelle erstellen „app1“ genannt, die alle Zeilen aus app1 hat , eine Tabelle namens "app2", die alle Zeilen von app2 usw.

hat

Anstatt dies manuell mit einer make Tabelle Abfrage, Kopieren und Einfügen jedes appname in das Kriterienfeld, würde ich dies tun lieber automatisch und machen Sie es zu einer gespeicherten Abfrage, die auf zukünftigen Daten ausgeführt werden kann.

Ich habe versucht, die SQL direkt zu bearbeiten und einen eindeutigen appname auszuwählen, dann eine Auswahl basierend darauf zu erstellen, aber alles, was ich versucht habe, gibt den Fehler "das Feld ist zu klein, um die Menge der Daten zu akzeptieren, die Sie versuchten" . Ich bin mir nicht einmal sicher, was das bedeutet, weil alle meine Felder "Langer Text" sind und die Daten in den meisten Fällen nicht mehr als 200 Zeichen lang sind.

Irgendwelche Vorschläge zur Automatisierung? Vielen Dank für Ihre Zeit.

Antwort

2
Function split() 
Set db = CurrentDb() 
Set Applist = db.OpenRecordset("select ColC from SourceData group by ColC") 
Applist.MoveFirst 
Do While Not Applist.EOF 
    App = Applist.Fields("ColC").Value 
    SQL = "select * into [" & App & "] " 
    SQL = SQL & " from [SourceData] where ColC='" & App & "'" 
    db.Execute (SQL) 
    Applist.MoveNext 
    Loop 
MsgBox ("Done") 
End Function 

Hinweis - dies setzt voraus, dass die Inhalte von ColC "nett" sind - zum Beispiel keine Anführungszeichen oder Klammern. Leerzeichen sollten in Ordnung sein.

+0

Die Methode zum Ausführen von VBA-Code hat sich im Laufe der Jahre offenbar ein wenig verändert. Wie/wo mache ich diesen Code eigentlich? –

+0

Erstellen Sie ein Modul und fügen Sie es ein. Im Modul können Sie auf die Funktionstaste F5 klicken. Oder Sie können ein Makro mit einem RunCode-Befehl erstellen. –

+0

Danke - Ich habe das Modul Route und lief, musste aber meine Tabellenansicht aktualisieren, um die neuen Tabellennamen zu sehen. Danke, das hat perfekt funktioniert! –

Verwandte Themen