Oppure

Loading
17/02/08 9:18
gabryk
Preciso subito che in teoria so come si fa, dovrebbe bastare qualcosa del genere:

Text1(i).DataField = "Cognome"

Il mio problema è che questa sintassi è "chiusa" e prevede che si conosca in anticipo il nome del campo, io invece voglio che la sintassi si basi sul numero del campo piuttosto che sul nome.

Deve fare questo: leggere quante righe ci sono nella tabella, creare a runtime un egual numero di textbox, associare sempre a runtime un datafield progressivo alle textbox, che sarà quindi un int, tipo i in un Loop.
Come posso fare? Grazie mille ;)

-------------------------------

Ho visto che potrebbe fare a caso mio la proprietà fields del recordset, però con una sintassi tipo questa:

Text1(i).DataField = Personaggio.Recordset.Fields(i)

mi da "errore variabile oggetto o variabile with non impostata". Non ho dichiarato il db via codice ma l'ho impostato su un controllo Data.

--------------------------------

RISOLTO!
Così:

Text1(i).DataField = rs.Fields(i).Name

Scusate se ho parlato da solo :asd:


[edit] usate il pulsante EDIT per modificare... Non postate nuovi messaggi per aggiungere dettagli o frasi... [/edit]
Ultima modifica effettuata da Shutdown 17/02/08 16:33
aaa
17/02/08 10:53
GrG
sono contento ke hai risolto...

p.s. sei stato bravo a risolvere il problema da solo cmq ora mi sa ke il moderatore ti modifikerà o cancellerà i post, perchè 3 post di fila non si possono fare, magari potevi usare edit cioè potevi modifikare il tuo primo post...

Fallo prima ke il moderatore se ne accorge!:rotfl:
aaa
17/02/08 12:08
gabryk
Perdonatemi, ho dimenticato per un attimo le regole del forum. Comunque, ho totalmente cambiato strada rispetto a quello che stavo facendo prima, ora uso un controllo Adodc e un Datagrid in cui caricare il db.
Riesco a creare a runtime le textbox a seconda del numero di colonne nella tabella, quindi questo punto è ok. Il problema ora è che non riesco a muovermi nel database. Vorrei fare i classici pulsanti per spostarsi avanti e indietro tra le righe del db (i record), e di conseguenza tutti i valori delle textbox dovrebbero cambiare con quelli della nuova riga... non ci riesco!

Questo è quello che ho:

colonne = DataGrid1.Columns.Count
       
    righe = 1
    While Adodc1.Recordset.EOF = False
        righe = righe + 1
        Adodc1.Recordset.MoveNext
    Wend
    
    Adodc1.Recordset.MoveFirst

    i = 1
    Do Until i >= colonne
        Load Text1(i)
        Text1(i).Top = Text1(i - 1).Top + Text1(i - 1).Height + 50
        Text1(i).Visible = True
        Text1(i).DataField = Adodc1.Recordset.Fields(i).Name
        Load Label1(i)
        Label1(i).Top = Label1(i - 1).Top + Label1(i - 1).Height + 50
        Label1(i).Visible = True
        Label1(i).Caption = Adodc1.Recordset.Fields(i).Name
    i = i + 1
    Loop


Intanto nelle textbox mi trovo i valori dell'ultima riga e non della prima, poi come dicevo non riesco a fargli cambiare riga e aggiornare le textbox di conseguenza... come posso fare? Grazie e scusate per i tre post di fila...
aaa
17/02/08 15:09
GrG
io non ti posso aiutare, con i database nn ci ho ankora mai lavorato... :s

aspetta qualkuno + esperto...
aaa
17/02/08 15:21
gantonio
Come hai collegato i vari oggetti? (Adodc, griglia ...)
aaa
17/02/08 15:39
gabryk
Ho impostato la stringa di connessione al db nell'oggetto adodc1 e nella prima textbox (con indice 0) ho messo datasource adodc1 e datafield "Nome" che è la prima colonna. Le altre textbox vengono farcite a runtime con
Text1(i).DataField = Adodc1.Recordset.Fields(i).Name

e la datagrid1 è collegata ad adodc sempre tramite datasource direttamente nelle proprietà dell'oggetto.
Non ho fatto alcuna dichiarazione via codice per aprire o gestire il database, speravo si potesse fare tutto con i metodi di questi oggetti.
Ultima modifica effettuata da gabryk 17/02/08 15:42
aaa
17/02/08 16:26
gantonio
Tu dici che vorresti cambiare riga ... come vorresti farlo?
aaa
17/02/08 16:35
Shutdown
Postato originariamente da GrG:

sono contento ke hai risolto...

p.s. sei stato bravo a risolvere il problema da solo cmq ora mi sa ke il moderatore ti modifikerà o cancellerà i post, perchè 3 post di fila non si possono fare, magari potevi usare edit cioè potevi modifikare il tuo primo post...

Fallo prima ke il moderatore se ne accorge!:rotfl:


Esatto... Ha ragione!
aaa