| Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
|
#2
| ||||
| ||||
|
Καλησπέρα! Μάνο, έστω ότι ο πίνακας ονομάζεται "BigTable" και το πεδίο ομαδοποίησης "OMADA" Ο παρακάτω κώδικας νομίζω ότι θα σε εξυπηρετήσει: Κώδικας: Option Compare Database
Option Explicit
Sub Test()
'MainTableName = "το όνομα του πίνακα"
'GroupFieldName = "το όνομα του πεδίου ομαδοποίησης"
'OverWriteTables: True για αντικατάσταση πινάκων με το ίδιο όνομα.
SplitTable MainTableName:="BigTable", GroupFieldName:="OMADA", OverWriteTables:=True
End Sub
Function SplitTable(MainTableName As String, _
GroupFieldName As String, _
OverWriteTables As Boolean)
Dim dbs As DAO.Database
Dim rsTeams As DAO.Recordset
Dim strSQL As String
Dim AllTables As DAO.TableDefs
Dim GroupField As DAO.Field
Dim NewTableName As String
MainTableName = "[" & MainTableName & "]"
GroupFieldName = "[" & GroupFieldName & "]"
Set dbs = CurrentDb
Set AllTables = dbs.TableDefs
Set rsTeams = dbs.OpenRecordset( _
"SELECT DISTINCT " & MainTableName & "." & GroupFieldName & _
" FROM " & MainTableName & " WHERE nz(" & GroupFieldName & ","""")<>""""", dbOpenSnapshot)
If rsTeams.RecordCount Then
Set GroupField = rsTeams.Fields(GroupFieldName)
rsTeams.MoveFirst
While Not rsTeams.EOF
NewTableName = Replace(GroupField.Value, " ", "_")
strSQL = "SELECT " & MainTableName & ".* INTO " & NewTableName
strSQL = strSQL & " FROM " & MainTableName & " WHERE " _
& MainTableName & "." & GroupFieldName & " ='" & GroupField.Value & "'"
If TableExists(AllTables, GroupField.Value) Then
If OverWriteTables Then
AllTables.Delete GroupField.Value
AllTables.Refresh
Else
GoTo NextRec
End If
End If
dbs.Execute strSQL
AllTables.Refresh
NextRec:
rsTeams.MoveNext
Wend
Application.RefreshDatabaseWindow
End If
rsTeams.Close
Set rsTeams = Nothing
End Function
Function TableExists(AllTables As TableDefs, TableName As String)
Dim tdf As DAO.TableDef
For Each tdf In AllTables
If tdf.Name = TableName Then
TableExists = True
Exit For
End If
Next
End Function
Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 21-05-13 στις 19:59. |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| [Συναρτήσεις] Διαχωρισμός ενός αριθμού. | Niha | Excel - Ερωτήσεις / Απαντήσεις | 3 | 11-08-15 08:49 |
| [ Ερωτήματα ] Διαχωρισμός Πεδίου σε πεδία | jimrenoir | Access - Ερωτήσεις / Απαντήσεις | 2 | 18-12-14 17:51 |
| [Γενικά] Διαχωρισμός σε φύλλα | Θανάσης | Excel - Ερωτήσεις / Απαντήσεις | 12 | 14-05-11 15:45 |
| [ Εκθέσεις ] Διαχωρισμός ονοματεπώνυμου | mgeorge | Access - Ερωτήσεις / Απαντήσεις | 6 | 08-05-11 00:45 |
| Διαχωρισμός δεδομένων πεδίου | JohnD | Access - Ερωτήσεις / Απαντήσεις | 13 | 08-09-10 14:43 |
Η ώρα είναι 22:50.



Θεματικός Τρόπος
