CISA FotoGallery

Statistiche

Tot. visite contenuti : 928215
Home Articoli tecnici Tabelle Modificare le Proprietà di un CAMPO

Modificare le Proprietà di un CAMPO

MODIFICARE LE PROPRIETA' DI UN CAMPO


Quando manualmente si modificano le proprietà di un Campo, Access esegue durante questa operazione alcune azioni:


1-Aggiunge un Nuovo Campo con le Proprietà richieste
2-Copia i Dati dal Campo Originale al Nuovo Campo
3-Elimina il vecchio campo

Per questo se si vuole effettuare questa operazione via Codice si deve effettuare la stessa sequenza di operazioni.

Quì trovate un Demo di Funzione che tramite predicato SQL esegue questo.
Purtroppo ci sono proprietà che via SQL non possono essere modificate per questo motivo è obbligatorio appoggiarsi a DAO(come in questo caso per RINOMINARE il Campo).

Sub sChangeField(strTableName As String, strFieldName As String, strFieldType As String)
    Dim db As Database
    Dim strSQL As String
    Set
db = CurrentDb
    ' Aggiunge il Nuovo Campo nella Tabella
    ' con un Nome Temporaneo(TempField)
    
strSQL = "ALTER TABLE [" & strTableName & _
                    "] ADD COLUMN [TempField] " & _
                    strFieldType & ";"
    db.Execute strSQL
    ' Copia i Dati dal Campo Esistente al Nuovo
    
strSQL = "UPDATE DISTINCTROW [" & strTableName & _
                    "] SET [" & strFieldName & "]=[TempField];"
    db.Execute strSQL
    ' Elimina il Vecchio campo
    
strSQL = "ALTER TABLE [" & strTableName & _
                    "] DROP COLUMN [" & strFieldName & "];"
    db.Execute strSQL
    ' Rinomina il Nuovo Campo con il nome del campo esistente
    
db.TableDefs(strTableName).Fields("TempField").Name = strFieldName
    Set db = Nothing
End Sub


Per chiamare questa Sub potete fare così::

Call sChangeField("tblName","fldName","TEXT(100)")


Alessandro Baraldi