Newsgroup: it.comp.appl.access
Titolo: layout tabella da codice

Buongiorno, vorrei stampare una tabella creata temporaneamente tramite
una query <into...> che poi verrà aperta con DoCmd.OpenTable ,
stampata con DoCmd.PrintOut  e cancellata con DoCmd.deleteObject,
ha 5 campi alcuni numerici e alcuni testo ora quando la stampo i campi
hanno tutti la stessa larghezza con il risultato che le colonne con il
testo vengono 'tagliatè' in stampa e i campi numerici sono troppo
grandi.
Domanda: c'è una proprietà tipo width delle colonne di una tabella
nella quale si puo' impostare via codice la larghezza ?
Lo so' mi direte ma che ti complichi la vita? fai con il pusante destro
imposti la larghezza e la tabella non la cancelli  oppure fatti un
reportuccio no? Certo ma ... sono testardo e vorrei fare senza
aggiungere un oggetto nel database. 
Grazie

 ha scritto nel messaggio 
news:1140450370.5...@f14g2000cwb.googlegroups.com...

La cosa si può fare e come!
Prima di darti un qualche suggerimento ti consiglio di leggere nella guida i 
seguenti argomenti:
Proprietà DatasheetFontItalic, DatasheetFontUnderline
Proprietà ColumnWidth
Proprietà ColumnOrder
Proprietà RowHeight
Ciao, Carlo

Garzie Carlo per la risposta, le proprietà che hai elencato non
modificano la tabella dati come chiedevo specificamente ma il form
visualizzato come tabella poi infatti ho fatto proprio così, aperta la
maschera visualizzazione tabella ho aggiustato la larghezza dei campi e
salvato e rimesso visualizzazione normale, con un pulsante e un po' di
codice  stampo senza creare oggetti nuovi così.
1 riapro il form corrente in modalità tabella  (docmd.openform,  mask
, acformds)
2 applico il filtro (filteron true)
3 stampo i record filtrati (docmd.printout)
4 riapro il form in modalità normale  (docmd....)
5 tolgo il filtro (filteron true)
ho aggiunto una gestione errori per recordset vuoto et voila la stampa
di tabella senza stampare la tabella! e senza report.
Grazie e ciao

 ha scritto nel messaggio 
news:1140478486.1...@z14g2000cwz.googlegroups.com...
Garzie Carlo per la risposta, le proprietā che hai elencato non
modificano la tabella dati come chiedevo specificamente ma il form
visualizzato come tabella ...
cut
[risposta]
E no quello che ti ho scritto si riferisce proprio alle tabelle e fa 
esattamente quello che tu desideri.
Questo un esempio di codice dove alla sub ImpostaProprieta devi passare il 
nome della tabella e
al posto di ImpostaProprietāCampo tdfComuni![Provincia] puoi mettere il nome 
di un campo a tua scelta
o aggiungerne di altri:
Public Sub ImpostaProprieta(TuaTbl As String)
Dim dbs As Database
Dim tdfComuni As TableDef
Set dbs = CurrentDb
Set tdfComuni = dbs.TableDefs(TuaTbl)
ImpostaProprietāTabella tdfComuni, "DatasheetFontItalic", dbBoolean, False
ImpostaProprietāTabella tdfComuni, "DatasheetFontUnderline", dbBoolean, 
False
ImpostaProprietāTabella tdfComuni, "RowHeight", dbLong, 450
ImpostaProprietāCampo tdfComuni![Provincia], "ColumnWidth", dbInteger, 2160
DoCmd.OpenTable TuaTbl, acViewNormal
End Sub
Sub ImpostaProprietāTabella(tdfOggTabella As TableDef, strNomeProprietā As 
String, _
        intTipoProprietā As Integer, varValoreProprietā As Variant)
       Const conErroreProprietāNonTrovata = 3270
    Dim prpProprietā As Property
    On Error Resume Next
    tdfOggTabella.Properties(strNomeProprietā) = varValoreProprietā
    If Err <> 0 Then
        If Err <> conErroreProprietāNonTrovata Then
            On Error GoTo 0
            MsgBox "Impossibile impostare la proprietā '" & strNomeProprietā 
_
                & "' nella tabella '" & tdfOggTabella.Name & "'", 48, 
"ImpostaProprietāTabella"
Else
            On Error GoTo 0
            Set prpProprietā = 
tdfOggTabella.CreateProperty(strNomeProprietā, _
                intTipoProprietā, varValoreProprietā)
            tdfOggTabella.Properties.Append prpProprietā
        End If
    End If
    tdfOggTabella.Properties.Refresh
End Sub
Sub ImpostaProprietāCampo(fldCampo As Field, strNomeProprietā As String, _
        intTipoProprietā As Integer, varValoreProprietā As Variant)
Const conErroreProprietāNonTrovata = 3270
    Dim prpProprietā As Property
    On Error Resume Next
    fldCampo.Properties(strNomeProprietā) = varValoreProprietā
    If Err <> 0 Then
        If Err <> conErroreProprietāNonTrovata Then
            On Error GoTo 0
            MsgBox "Impossibile impostare la proprietā '" & strNomeProprietā 
_
                & "' nel campo '" & fldCampo.Name & "'", 48, 
"ImpostaProprietāCampo"
Else
            On Error GoTo 0
            Set prpProprietā = fldCampo.CreateProperty(strNomeProprietā, _
                intTipoProprietā, varValoreProprietā)
            fldCampo.Properties.Append prpProprietā
        End If
    End If
End Sub
Comunque se hai risolto diversemente e con la tua testa meglio cosė.
Ciao, Carlo