Newsgroup: it.comp.appl.access
Titolo: [SC Sez. Tabelle  1.9] Esempio di come aggiornare la base dati dal FE

Facendo riferimento all'esempio elaborato da Enrico Oemi riportato in 
oggetto.
Ho difficoltà a creare un nuovo campo con la funzione:
Function aggiungiCampo(tabella As String, campo As String, tipo As Integer, 
_
    Optional dimensioni As Long, Optional incrementa As Boolean = False, _
    Optional default As Variant, Optional descr As String) As Boolean
    Dim tdef As DAO.TableDef, fld As DAO.Field
    Dim prp As DAO.Property
    Set tdef = dbs.TableDefs(tabella)
    Set fld = tdef.CreateField(campo, tipo, dimensioni)
    If fld.Type = dbLong And incrementa = True Then fld.Attributes = 
dbAutoIncrField
    If Not IsNull(dimensioni) Then fld.Size = dimensioni
    If Not IsMissing(default) Then fld.DefaultValue = default
    On Error Resume Next
    tdef.Fields.Append fld
    If Not IsMissing(descr) Then
        Set prp = fld.CreateProperty("description", dbText)
        prp.Value = descr
        fld.Properties.Append prp
    End If
    If Err Then
        aggiungiCampo = False
    Else
        aggiungiCampo = True
    End If
End Function
Il problema è che per il parametro tipo ho passato l'enumerazione di Type 
dbText come previsto dall'Help per CreateField
ApriBE(CurrentProject.Path & "\Data\dati1.mdb")
AggiungiCampo "TabEntrate", "Scrittura", dbText, 7, False,"Entrata","Nota:")
Chiudi
ma al posto di creare un campo di testo di dimensione 7 crea un campo 
oggetto OLE senza valore predefinito e senza descrizione...
HTH
Luca

 Luca
-- 
Roberto
-----------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
-----------------------------------------------

 Roberto
Grazie.
Comunque adesso riprovo come hai fatto tu.
Luca 

 Luca
-- 



Ho modificato la funzione REL_ApriBE in questo modo perchè il mio database 
ha una password
Ed ho evitato di dichiarare la varibile MiaAreaLavoro (Dim MiaAreaLavoro As 
DAO.Workspace)
tanto la recupero da DBEngine
Public Function REL_ApriBE(nomeBE As String)
    Set DbsP = DBEngine.Workspaces(0).Databases(0)
    Set dbs = DBEngine.Workspaces(0).OpenDatabase(nomeBE, False, False, 
";PWD=visir")
End Function
Ora il problema è sempre lo stessto anche utilizzando il modulo copiato 
aggiungendo solo l'aggiunta del parametro per la password mi crea sempre un 
campo oggetto ole...
Ho anche provato così
Dim b As Boolean
'il variant mi è sembrato eccessivo...
REL_ApriBE(CurrentProject.Path & "\Data\dati1.mdb")
b = aggiungiCampo("TabEntrate", "Scrittura", dbText, 7) 'togliendo gli 
argomenti facoltativi...
REL_Chiudi
Stesso risultato TabEntrate.[Scrittura] --> OGGETTO OLE
Arrrggg
Questi sono i veri misteri della vita.(Sarà il solito guasto del tipo: - ma 
l'hai attacata la spina?)
Luca 

 ha scritto nel messaggio 
news:rRAof.5070$eD5....@twister2.libero.it...


 Le DAO 3.6 sono al 4° posto nei riferimenti
Se puoi spingila ancora più in alto: devono comunque trovarsi prima degli
eventuali riferimenti ADO, altrimenti è come se non li avessi aggiunti; anzi
se non usi la libreria ADO, per tranquillità elimina i riferimenti a tale
libreria.

E' sicuramente possibile, ma per quanto mi riguarda non ho altri
suggerimenti da darti oltre a quello di sistemare correttamente i
riferimenti.
