
03-07-12, 11:45
|
 | Διαχειριστής Όνομα: Τάσος Φιλοξενιδης Έκδοση λογισμικού Office: Ms-Office 365 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική | | Εγγραφή: 21-10-2009
Μηνύματα: 2.030
| |
Καλημέρα Κώστα!
Όπως φαίνεται στην εικόνα του μηνύματος σου, το πρόβλημα περιορίζεται στην Acces.
Σε πίνακες με μορφή < 2007 υπάρχει ο περιορισμός των 2000 χαρακτήρων ανά εγγραφή . Εξαιρούνται τα πεδία που έχουν τύπο δεδομένων "Υπόμνημα" ή "Αντικείμενο OLE".
Ο περιορισμός αυτός είναι διαφορετικός σε πίνακες με μορφή > 2003 (4000 χαρακτήρες).
Κατά πάσα πιθανότητα, αυτός είναι ο λόγος που το σου εμφανίζεται το προειδοποιητικό μήνυμα ότι η εγγραφή είναι πολύ μεγάλη.
Θεωρητικά, αυτό που μπορείς να κάνεις είναι να αλλάξεις τον τύπο τον πεδίων του πίνακα από " κείμενο" σε " Υπόμνημα" (Memo) ώστε να παρακάμψεις τον περιορισμό αυτό. Μπορείς να δημιουργήσεις έναν πίνακα με τα νέα αυτά χαρακτηριστικά χρησιμοποιώντας τον παρακάτω κώδικα σε μια κοινή λειτουργική μονάδα: Κώδικας: Option Compare Database
Option Explicit
Sub CreateNewTableWithMemoFields()
Dim dbs As Database, OldTable As TableDef, NewTable As TableDef
Dim NewField As Field, OldField As Field
Dim OldTableName As String, NewTableName As String
OldTableName = "Sales" 'Το όνομα του πίνακα. Προσάρμοσε το.
NewTableName = "Test" 'Το όνομα του νέου πίνακα. Προσάρμοσε το.
Set dbs = CurrentDb
Set OldTable = dbs.TableDefs(OldTableName)
Set NewTable = dbs.CreateTableDef(NewTableName)
With NewTable
For Each OldField In OldTable.Fields
Set NewField = .CreateField(OldField.Name, _
IIf(OldField.Type = dbText, dbMemo, OldField.Type))
.Fields.Append NewField
Next
End With
dbs.TableDefs.Append NewTable
dbs.TableDefs.Refresh
dbs.Execute "INSERT INTO " & NewTableName & " SELECT " & OldTableName & ".* FROM " & OldTableName
RefreshDatabaseWindow
End Sub
Δοκίμασε και πες μας.
Φιλικά
Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών
Τελευταία επεξεργασία από το χρήστη Tasos : 03-07-12 στις 17:36.
|