2016-08-03 28 views
1

Ich möchte eine Tabelle ändern und ein neues Feld mit dem Typ Anlage erstellen.Anlage Feld in MS Access

Zuerst dachte ich, die folgenden Möglichkeiten:

Dim SQL_Attachement_Str As String 
SQL_Attachement_Str = "ALTER TABLE tbl_FinalTable_summerized ADD CoCAttachement ATTACHMENT" 
DoCmd.RunSQL SQL_Attachement_Str 

Aber leider (in meinem Fall) dies nicht möglich ist.

Mein zweiter Versuch war es, zuerst das Feld als TEXT-Typ zu erstellen und dann später die Art in Anhang ändern, wie die folgenden:

Dim SQL_Attachement_Str As String 
SQL_Attachement_Str = "ALTER TABLE tbl_FinalTable_summerized ADD CoCAttachement TEXT" 
DoCmd.RunSQL SQL_Attachement_Str 

Dim tbl As TableDef 

Set db = CurrentDb 
Set tbl = db.TableDefs("tbl_FINALtable_Summerized") 
tbl.Fields("CoCAttachement").Type = dbAttachment 

Set tbl = Nothing 
Set db = Nothing 

So Was ich brauche, ist ein Weg, um ein Feld mit der hinzufügen Typ Befestigung am Tisch

danke Leute: D

+0

keine Textfelder für Binärdaten verwenden. Textfelder unterliegen Zeichensatzübersetzungsregeln und Validierung. Binärdaten können/werden Bytefolgen enthalten, die für die Kollation/den Zeichensatz ungültig sind, die das Feld verwendet, und können/werden beschädigt. –

+0

Also, wie würde ich es tun? Kann ich einen anderen Feldtyp in einen Anhang umwandeln? – hajan11

+0

Warum wird eine Codelösung benötigt? Ist der Designer aus irgendeinem Grund nicht akzeptabel? – Brad

Antwort

0

Wenn Sie keine Daten anhängen, nur ein Feld hinzufügen könnte man immer es nur einfach halten und das Feld in der Entwurfsansicht hinzufügen, nicht wahr?

Sie haben gerade etwas Forschung angeregt.

currentdb.TableDefs("Table").CreateField("Attachment",dblongbinary) 

https://msdn.microsoft.com/en-us/library/office/ff845510.aspx

+0

Sie können TEXT nicht durch Anhang ersetzen. Es gibt einen Fehler. – hajan11

+0

Versuchen Sie 'OLE Object' dann? –

0

Wenn jemand eine Antwort auf diese Frage sucht, tut dies der Trick:

Dim fld As DAO.Field 

Set fld = CurrentDb().TableDefs("MyTable").CreateField("NewField", 101&) 
CurrentDb().TableDefs("MyTable").Fields.Append fld 
CurrentDb().TableDefs.Refresh 

Set fld = Nothing 

Fieldtype Werte für andere komplexe Datentypen finden sich hier: http://allenbrowne.com/func-DAO.html#FieldTypeName