|
|
||||||
|
#1
|
|
|
|
|
Ciao,
faccio riferimento al thread di www.sitocomune.com "1.35 Come si possono modificare via codice le proprietà dei campi di tabella? (2)" Dove posso trovare un elenco dei FieldType e dei Format? Ho provato a guardare nella Help, ma non ho trovato nessun link che li indichi. PS: il codice elimina il contenuto originale. Esiste un modo di evitarlo, se cambio solo il formato e non il tipo di valore? Vi ringrazio Ricky Sub sChangeField(strTableName As String, strFieldName As String, strFieldType As String) Dim db As DAO.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").Nam e = strFieldName Set db = Nothing End Sub La Sub sChangeField() può essere richiamata nel seguebte modo: Call sChangeField("tblName","fldName","TEXT(100)") |
|
|
|
#2
|
|
|
|
|
Ricky wrote:
>... > faccio riferimento al thread di [..] > "1.35 Come si possono modificare via codice le proprietà dei campi di > tabella? (2)" > > Dove posso trovare un elenco dei FieldType e dei Format? > Ho provato a guardare nella Help, ma non ho trovato nessun link che li > indichi. > > PS: il codice elimina il contenuto originale. Esiste un modo di > evitarlo, se cambio solo il formato e non il tipo di valore? > ... Da JET 4 = 1999 questo procedimento per cambiare il tipo di un campo è invecchiato. Vedi l'ultimo paragrafo di Cambiare il tipo dati di un campo via codice http://www.donkarl.com/it?FAQ3.5 Con la proprietà Format è più complicata perché si tratta di una proprietà di Access non di JET/ACE e devi usare DAO o ADO per cambiarla. Un elenco dei tipi di dati trovi con <F1> nella vis. struttura di una tabella, per l'uso in SQL invece lo trovi p.e. qui: http://msdn.microsoft.com/en-us/libr...tsql_datatypes Non è chiaro cosa intendi con "se cambio solo il formato". Dai un esempio su cosa vuoi ottenere. |
|
#3
|
|
|
|
|
On 21 Feb, 19:40, "Karl Donaubauer" <NoS> wrote:
> Da JET 4 = 1999 questo procedimento per cambiare il tipo di > un campo è invecchiato. Vedi l'ultimo paragrafo di > > Cambiare il tipo dati di un campo via codicehttp://www.donkarl.com/it?FAQ3.5 Ciao Karl, ho provato il codice con una tabella con 3 campi, tentando di variare la lunghezza di un campo testo da 255 a 100 caratteri. db.Execute "ALTER TABLE MiaTabella ALTER COLUMN MioCampo VARCHAR(100)" Ottengo messaggio di runtime error 424 'Object required' Utilizzo Office 2007 > Con la proprietà Format è più complicata perché si tratta di > una proprietà di Access non di JET/ACE e devi usare DAO > o ADO per cambiarla. hai una Faq a proposito? > Un elenco dei tipi di dati trovi con <F1> nella vis. struttura di > una tabella, per l'uso in SQL invece lo trovi p.e. qui:[..]... Visto, grazie > Non è chiaro cosa intendi con "se cambio solo il formato". > Dai un esempio su cosa vuoi ottenere. Casi classici per il mio utilizzo è questo: - passare da un DataType Number senza formato esplicitato ad un formato standard 1.234,56 - passare da un DataType Date/Time con formato General Date ad un formato Shot Date. Buona giornata Ricky |
|
#4
|
|
|
|
|
Ricky wrote:
> Karl Donaubauer wrote: >> ... >> Cambiare il tipo dati di un campo via codice >> [..] > > ho provato il codice con una tabella con 3 campi, tentando di > variare la lunghezza di un campo testo da 255 a 100 caratteri. > > db.Execute "ALTER TABLE MiaTabella ALTER COLUMN MioCampo > VARCHAR(100)" > > Ottengo messaggio di runtime error 424 'Object required' > Utilizzo Office 2007 Forse la causa è la tua definizione di "db". Non si puo dire molto se non copia/incolla il tuo vero e completto codice rilevante. >> Con la proprietà Format è più complicata perché si tratta di >> una proprietà di Access non di JET/ACE e devi usare DAO >> o ADO per cambiarla. > > hai una Faq a proposito? No. > Casi classici per il mio utilizzo è questo: > - passare da un DataType Number senza formato esplicitato ad un > formato standard 1.234,56 > - passare da un DataType Date/Time con formato General Date ad un > formato Shot Date. Un esempio per l'ultimo caso: On Error GoTo ErrProp Dim db As DAO.Database Dim tdf As DAO.TableDef Dim prp As DAO.Property Dim fld As DAO.Field Set db = CurrentDb Set tdf = db.TableDefs("TuaTabella") Set fld = tdf.Fields("TuoCampo") fld.Properties("Format") = "Short Date" ExitProp: Set db = Nothing Exit Sub ErrProp: If Err.Number = 3270 Then Set prp = fld.CreateProperty("Format", dbText, "Short Date") fld.Properties.Append prp Resume ExitProp End If Altri esempi trovi su google groups ecc. con una cerca per "CreateProperty". |
|
#5
|
|
|
|
|
On 22 Feb, 12:43, "Karl Donaubauer" <NoS> wrote:
> > Un esempio per l'ultimo caso: cut > Altri esempi trovi su google groups ecc. con una cerca > per "CreateProperty". Grazie Karl, e scusa se non ti riposto prima. Buona giornata Ricky |
|
|
| Discussioni simili | |
| DAO tipi di Recordset Ciao, uso Access 2000 (DAO) e ho notato quanto segue: Se separo la mia applicazione, mettendo le tabelle in un file mdb e il codice VBA, query e quant'altro in un altro,... |
|
| elenco ricavato da recordset ho una tabella contenente nominativi con cap "utenti" ho una tabella contenente tutti i cap e i parentid delle provincie e regioni relative "CAPtot" quando in zona imposto... |
|
| [ADO] Recordset.Sort con Recordset aperto da un Command.Execute adCmdStoredProc Ciao a tutti ! Come da oggetto, popolo un recordset (RcST) tramite un Execute di un Command (Cmnd) dove Cmnd è una StoredProcedure. In Rcst non riesco a fare .Sort ... Ho... |
|
| [Pensierino] Tipi maschi e tipi femmine, mi raccomando. Oh quei tipi tantrici che sopportano il solletico! Che nervi, no? E quelli che aspettano per aprire un regalo? Tutti con questa attesa dell'aura giusta... Brrr che freddo! Mi... |
|
|
Tutti gli orari sono GMT. Attualmente sono le 00:36. | Privacy Policy
|