Adesso sei stato chiaro.
Secondo me sarebbe meglio usare un ListBox al posto dei CommandButton.
Tieni presente infatti, che oltre a caricare dinamicamente i nuovi pulsanti, devi anche gestirne la posizione di ognuno e la cosa non è così semplice se le tabelle sono o possono essere tante. Ad esempio, se il database ha 100 tabelle che fai? aggiungi 100 pulsanti?
E dove li metti? Come li disponi?
In genere, questo tipo di form devono servire per l'accesso a diversi database, quindi deve essere il più possibile flessibile per adattarsi a qualsiasi situazione.
Io procederei invece così.
1 solo form in cui inserisco:
- 1 CommandButton "Sfoglia..." (per selezionare ed aprire la connessione al database)
- 1 ListBox (lstTables ) a sx del form
- 1 DataGrid (DataGrid1 ) a dx del listbox
Al progetto aggiungo un Riferimento ad ADO , cioè esattamente al Microsoft ActiveX Data Objects 2.5 (o superiore, ma non inferiore alla 2.5).
Una volta aperta la connessione al database con ADO ed il Jet OleDB
- utilizzo il metodo OpenSchema di ADODB.Connection per recuperare i nomi di tutte le tabelle (escludendo quelle di sistema che iniziano con "MSys")
- aggiungo i nomi delle tabelle al listbox lstTables
- aggiungo nell'evento Click del listbox il codice che apre un recordset con la tabella scelta, ed assegna il recordset ottenuto alla proprietà DataSource del DataGrid1
Come vedi niente di complicato da implementare.![]()
Ciao

Rispondi quotando