Newsgroup: it.comp.appl.access
Titolo: singola maschera per editare i valori delle combobox

salve a tutti,
in un db ho diverse maschere al cui interno ci sono delle combobox i cui 
valori possibili sono stoccati in una serie di tabelle...
il problema nasce nel momento in cui le liste dei valori devono essere 
editate dagli utenti. Per fare ciň ho creato una maschera continua 
(vocabolari) con due caselle di testo (txt_liv1 e txt_liv2) e una listbox 
(listTabelle). La listbox ha come origine dei dati una tabella 
(ElencoTabelle) con tre campi: descrizione, nome_tabella e numero_campi: nel 
primo campo ho inserito (a mano) la descrizione del contenuto delle tabelle, 
nel secondo (sempre a mano) i nomi delle tabelle e nel terzo (ancora a mano) 
il numero dei campi delle tabelle (ci sono delle tabelle che forniscono i 
valori a due combobox gerarchizzate)
Per fare questo ho dovuto chiamare tutti i campi nelle tabelle liv_1 o liv_1 
e liv_2 e associare all'evento on_click della listTabelle il seguente 
codice:
Private Sub listTabelle_Click()
Dim QualeTabella As String
Dim NumeroCampi As Integer
QualeTabella = Me.listTabelle.Column(1)
NumeroCampi = Me.listTabelle.Column(2)
Me.Form.RecordSource = QualeTabella
If NumeroCampi = 1 Then
    Me.txt_liv2.Visible = False
    Me.Etichetta2.Visible = False
    Me.txt_liv1.ControlSource = "liv_1"
Else: NumeroCampi = 2 Then
    Me.txt_liv2.Visible = True
    Me.Etichetta2.Visible = True
    Me.txt_liv1.ControlSource = "liv_1"
    Me.txt_liv2.ControlSource = "liv_2"
End If
End Sub
In questo modo, sicuramente barbaro, il tutto funziona perň non riesco a 
cambiare la caption (si dice la caption?) delle etchette dei controlli, 
assegnandogli l'etichetta del campo (ad es. nome campo liv_1, etichetta TIPO 
DI OGGETTO).
Inoltre volevo sapere se esiste un modo diciamo automatico, per riempire la 
tabella ElencoTabelle (quella alla origine della listbox) o ancora meglio 
farne a meno?
Grazie infinite a tutti. 

 End Sub

Prova  Me.Etichetta2.Caption="<DESCRIZIONE>"
Nella tabella di sistema MSysObjects
(Strumenti-Opzioni-Visualizzazione-Oggetti di sistema) i record con Type=1
e Flags=0 sono le tabelle del tuo database. Puoi usarla come origine per
una combo ma devi trovare un modo per distinguere le tabelle che vuoi
poter visualizzare dalle altre.
Ciao.
-Marco-
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Prova  Me.Etichetta2.Caption="<DESCRIZIONE>"
Ah, scusa, forse cercavi la sintassi per leggere la descrizione dei campi,
quella che imposti in visualizzazione struttura delle tabelle:
 
CurrentDb.TableDefs("nome_tabella").Fields("nome_campo").Properties("description")
Richiede un riferimento alla libreria Microsoft DAO.



grazie mille... funziona benissimo, ho soltanto modificato
CurrentDb.TableDefs("nome_tabella").Fields("nome_campo").Properties("description")
in
CurrentDb.TableDefs("nome_tabella").Fields("nome_campo").Properties("caption")
in quanto mi interessava l'etichetta del campo.
Usando la tabella MSysObjects, inoltre, riesco velocemente a prendere tutte 
le tabelle che mi servono in quanto il loro nome inizia sempre per 
vocabolario...
Grazie ancora
Ciao Andrea