Newsgroup: it.comp.lang.visual-basic
Titolo: Attributi di un Field di una Tabella MDB (DAO)

Vi assicuro che ho cercato e provato prima di scrivere questo post.
Ma poi alla fine mi sono arreso.
Insomma, se ho ben capito, il valore di tutti gli attributi è un long il cui
valore è la somma di diversi valori che hanno una corrispondenza coi diversi
attributi.
Al momento devo sapere se il campo della tabella è uno di quelli ad
incremento automatico (valore 16 costante vbAutoIncrField).
Non sono riuscito a capire come trattare il tutto per ricavare i singoli
attricuti.
Forse qualcuno che mi legge ha già una funzioncina ad hoc.
Mi farebbe un favore mostrandomela.
Sto cercando di fare un'aggiunta al programma di Lupo ESPODAMA nella sezione
Varie DB coi seguenti intenti:
- possibilità di ricopiare un MDB modificando alcune proprietà dei campi
(sempre no requested, accetta lunghezza=0 e valore di default per i
numeri=0).
- copiare i record per tutte le tabelle, per nessuna o per alcune a scelta)
Per il tipo di lavro che sto facendo mi capita frequentemente di importare
delle tabelle DBF con access il quale da le sue impostazioni di default che
non mi vanno bene.
Grazie e saluti a tutti, Sauro

 singoli attricuti.
Se, come immagino, l'attributo è una maschera di bit, non devi far altro che
un and tra l'attributo e la costante che lo rappresenta, se il risultato è
zero, il singolo attributo non è settato.
Se le cose stanno diversamente.....
Salutoni
Sergio

 ha scritto

non sono sicuro che quanto sotto ti serva, quando (parecchio tempo fa) ho
cercato i tipi di campo non ero riuscito ad andare oltre.
nel caso, la funzione la chiami semplicemente p.e. cosi':
dim fld as field
...
List1.AddItem "Type: " & fld.Type & Chr(9) & "(" & TipoCampo(fld.Type) & ")"
ciao, a.
Public Function TipoCampo(FldType)
    Select Case FldType
        Case 1: TipoCampo = "BOOLEAN"
        Case 2: TipoCampo = "N-BYTE"
        Case 3: TipoCampo = "N-INTEGER"
        Case 4: TipoCampo = "N-LONGINT"
        Case 5: TipoCampo = "N-CURRENCY"
        Case 6: TipoCampo = "N-SINGLEPREC."
        Case 7: TipoCampo = "N-DOUBLEPREC."
        Case 8: TipoCampo = "DATE/TIME"
        Case 9: TipoCampo = "UNDEF"
        Case 10: TipoCampo = "TEXT"
        Case 11: TipoCampo = "OLE"
        Case 12: TipoCampo = "MEMO/HYPER"
        Case 13: TipoCampo = "UNDEF"
        Case 14: TipoCampo = "UNDEF"
        Case 15: TipoCampo = "N-IDREPLICA / GUID"
        Case 16: TipoCampo = "N-BIG INTEGER"
        Case 17: TipoCampo = "VARBINARY"
        Case 18: TipoCampo = "CHAR"
        Case 19: TipoCampo = "N-NUMERIC"
        Case 20: TipoCampo = "N-DECIMAL"
        Case 21: TipoCampo = "N-FLOAT"
        Case 22: TipoCampo = "TIME"
        Case 23: TipoCampo = "TIMESTAMP"
        Case Else: TipoCampo = "_UNDEF_"
    End Select
End Function

 Sergio
Ciao, Sergio
Una maschera di bit??
Tutti i giorni una nuova.
A parte gli scherzi, grazie.
Domani in ufficio proverò.
Ciao, Sauro

[cut]
"a.p"  ha scritto:

Solo per pignoleria preciso che Type è una proprietà e non un attributo.
Io cerco un attributo della proprietà attributes e più precisamente quello
che stabilisce se quel campo è ad incremento automatico (costante
vbAutoIncrField).
Grazie comunque per la tua disponibilità.
Ciao, Sauro

 vbAutoIncrField).
In ESP0DAMA cerca, in tutti i moduli, la stringa "INCR".
Troverai vari riferimenti a quanto chiedi, sia per DAO che per ADO.

*Lupo* ha scritto:

Comunque (vbAutoIncrField non l'ho mai vista):
Per DAO:
If (recordset("nome_campo").Attributes And dbAutoIncrField) Then ...
Per ADO:
If recordset("nome_campo").Properties("IsAutoIncrement") Then ...

 If (recordset("nome_campo").Attributes And dbAutoIncrField) Then ...
Effettivamente, scrivendo a memoria, ho confuso l'iniziale db con vb.
Grazie, era proprio quello che cercavo.
Una volta concluso il lavoro, se l'aggiunta che ho descritto nel 1° post può
essere di qualche interesse per te, sarò lieto di mandartela..
Ciao, Sauro

*Sauro* ha scritto:

Sì, volentieri, ma, attenzione, anch'io sto continuamente pastrocchiando il
ESP0DAMA (ne avevo dato anche un aggiornamento su floppy al WM in occasione
del meeting, ma se lo deve essere mangiato confondendolo, anche se rosso,
col torrone bianco, ma duri uguali ;-) ), per cui mi dovrai evidenziare per
bene le parti aggiunte/modificate.

 bene le parti aggiunte/modificate.
Lo farň.
Battuta ottima.
Ciao, Sauro