תעוד מסד נתונים (טבלאות) באקסס
-
אני מעוניין להדפיס חלק מהטבלאות בתצורת עיצוב.
כלומר: שם השדה,סוג,גודל,הערה,כיתוב (במאפיינים) ואולי עוד מאפיין אחד או 2 מהשדה.בתעוד מסד הנתונים של האקסס אפשר או הכל או כלום כלומר:
אם אני מסמן רק שדות אזי אני מקבל את שם השדה + סוג+ גודל, אך אם אני מסמן שאני רוצה גם את המאפיינים אני אני מקבל את כל המאפיינים של כל השדות .(דבר אינני צריך)
הבעיה שבעת הסימון של השות והמאפיינים אני מקבל הרבה עמודים (הטבלה מאוד גדולה בחינת עמודות)
ניסיתי לייצא אתהדוח לאקסל אך לא ניתן לבדל נתונים ולקבל רק תוצאות מסוייות.
מישהו ניסה פעם לתעד מסד נתונים ע"פ שדות/מאפיינים וכו'??פורסם במקור בפורום CODE613 ב14/07/2015 12:13 (+03:00)
-
יש לי קוד (שלא אני כתבתי אלא התאמתי אותו לצרכים שלי בפונקצייה נפרדת)
קוד SQL ליצירת הטבלה
CREATE TABLE zTableFields ([ID] COUNTER PRIMARY KEY, [TableName] Text(50), [Sequence] Single, [FieldName] Text(50), [Description] Text(255), [Type] Text(50), [Length] Text(50), [PKey] BIT, [Caption] Text(50)) Sub DumpTables() Dim db As Database, tdf As TableDef, fld As field, RST As Recordset, idx As index Dim strPKeyNames(1 To 10) As String, intPKeyCount As Integer, intI As Integer On Error Resume Next Set db = CurrentDb Set RST = db.OpenRecordset("zTableFields", , dbAppendOnly) For Each tdf In db.TableDefs If (tdf.Attributes And (dbSystemObject Or dbHiddenObject)) = 0 And _ tdf.Name <> "zTableFields" And Not IsNothing(tdf.Connect) Then intPKeyCount = 0 For Each idx In tdf.Indexes If idx.Primary Then For Each fld In idx.Fields intPKeyCount = intPKeyCount + 1 strPKeyNames(intPKeyCount) = fld.Name Next fld Exit For End If Next idx For Each fld In tdf.Fields RST.AddNew RST!TableName = tdf.Name RST!Sequence = fld.OrdinalPosition RST!FieldName = fld.Name RST!Description = fld.Properties("Description") RST!Caption = fld.Properties("Caption") For intI = 1 To intPKeyCount If fld.Name = strPKeyNames(intI) Then RST!PKey = True Exit For End If Next intI Select Case fld.Type Case dbBoolean RST!Type = "Yes/No" RST!Length = 1 Case dbByte RST!Type = "Byte" RST!Length = 1 Case dbInteger RST!Type = "Integer" RST!Length = 2 Case dbLong If (fld.Attributes And dbAutoIncrField) Then RST!Type = "Auto Number" Else RST!Type = "Long Integer" End If RST!Length = 4 Case dbCurrency RST!Type = "Currency" RST!Length = 8 Case dbSingle RST!Type = "Single" RST!Length = 4 Case dbDouble RST!Type = "Double" RST!Length = 8 Case dbDate RST!Type = "Date/Time" RST!Length = 8 Case dbText RST!Type = "Text" RST!Length = fld.Size Case dbLongBinary RST!Type = "OLE Object" Case dbMemo RST!Type = "Memo" Case dbGUID RST!Type = "Replication ID" RST!Length = 16 Case Else RST!Type = "Unknown" End Select RST.update Next fld End If Next tdf RST.close MsgBox "הושלם" End Sub
ניתן לשחק עם הפונקצייה כדי לשנות ולהוסיף את המאפיינים שאתה צריך.
אחרי שיש לך את זה בטבלה, אתה יכול לשחק עם זה וללכת לאן שבא לך <!-- s:-) --><img src="{SMILIES_PATH}/icon_e_smile.gif" alt=":-)" title="מחייך" /><!-- s:-) -->פורסם במקור בפורום CODE613 ב15/07/2015 11:51 (+03:00)