Newsgroup: it.comp.lang.visual-basic
Titolo: [VB6] Texbox svuota i dati quando premo TAB

Salve a tutti :-)
Ho uno strano problema...
Con VB6 ho creato una matrice di TextBox che ho poi collegato ad un 
database in questo modo:
--- codice ---
Dim oText As TextBox
For Each oText In Me.txtAnnuale
     Set oText.DataSource = ado_Annuali_RS
Next
--- codice fine ---
Dove ovviamente txtAnnuale è il nome della matrice di Textbox
Il collegamento al DB è perfetto e se scrivo manualmente sul Database
i valori... questi compaiono nelle textbox... e ovviamente se vado a 
modificarli... si modificano.
Però se creo un record nuovo usando il programma, quando inserisco un 
valore in una casella di testo e premo [Tab] per passare alla casella 
successiva... o cmq semplicemente sposto il focus da quella caselle... 
il valore digitato sparisce.
Ovviamente non c'è un evento lostfocus che azzera la casella.
Come posso risolvere?
Ringrazio Anticipatamente per le risposte
-- 
Daniele Pinna
www.dapinna.com
www.ildocfainpillole.it
leva oops. per rispondere

 Salve a tutti :-)
Risolto... :-)
Per qualche strano motivo non mi creava più il record nuovo.
Creando il record nuovo subito risolvo i problemi


 Come posso risolvere?
Ado in modalità Bound non ha mai funzionato.
Magari risolvi questa, ma domani te ne esce un'altra, poi su un sistema 
operativo appare un altro bug, poi con una versione del db qualcosa non 
va più, eccetera...
Se poi il db sottostante fosse Access, saremmo nel campo 
dell'informatica esoterica, quindi non deterministica.
Se vuoi un consiglio, dedica il tempo che perderesti a risolvere i bug, 
a convertire ciò che hai già fatto da Bound a UnBound, e ne trarrai 
beneficio...
Alberto
-- 
La forza di volontà è guardare negli occhi una ragazza in topless.

 beneficio...
Ok... grazie per il consiglio...
anche se per ora lo lascio così :-)
Non ho il tempo di modificarlo dato che devo compilarlo, impacchettarlo 
e spedirlo al committente entro domani...
Applicherò le modifiche insieme alle "immancabili" modifiche che mi 
chiederà domani il committente :-)
Cmq Grazie :-)


 domani il committente :-)
Ciao
Alberto
-- 
Karl Marx: Le circostanze fanno l'uomo non meno di quanto l'uomo faccia 
le circostanze.

 Giusto? :-)
Esatto.
E se fai un po' le cose a modino di gestisci le cose ugualmente rapido che
con il Bound.
Io ad esempio sfrutto la matrice di controllo, e all'inizializzazione delle
form ho:
TxtTab(0).Tag="SCOGNOME|Cognome"
Il primo carattere mi da il tipo, il secondo il nome del campo nel DB, il
terzo la caption per le label.
Ora io per aggiungere un campo ad una form incollo la textbox e scrivo la
riga di cui sopra e mi funziona caricamento dati, insert, update.
Devo scrivere solo del codice se quella casella ha codice particolare.
E come l'ho fatto è abbastanza scomodo.
Per fare una cosa fatta bene basterebbe fare uno UserControl partendo da
una textbox e aggiungendoci:
- TipoDato (string, date, currency, integer, time ecc.)
- NomeCampo (Cognome, DataNascita ecc.)
- CaptionCampo ("Data di nascita").
La caption poi magari la carichi da una tabella o da un file esterno.

 Decisamente.
OK...
Grazie per le info
-- 
Daniele Pinna
DAPINNA.COM
(leva oops per rispondere)
www.dapinna.com
www.ildocfainpillole.it

 Questa mai usata... quali sono le principali differenze?
Se il nome del campo contiene spazi, caratteri speciali, o altri 
giocattoli simpatici...
Che in una tabella raw, sarebbe una cosa 'sbagliata'.
Ma siccome io non accedo mai direttamente alle tabelle, il recordset 
che mi arriva viene generato da viste o stored procedure, quindi i nomi 
delle colonne potrebbero essere legati alla visualizzazione, oppure 
addirittura essere dinamici.
E se il nome della colonna è dinamico (ossia deriva da qualcosa di 
configurabile a runtime), ti voglio vedere a metterlo dopo il punto 
esclamativo nel codice...
Alberto
-- 
Il tuo stesso identico umore,
ma la divisa di un altro colore


wrote:
....se mi posso permettere.....
una parte doloroso della mia vita di informatico è stata quando
collaboravo con alcuni ricercatori universitari....ogni 15 gg mi
cambiavano la struttura di una tabella...
E si usava access e si lavorava bound...e si usava dao....
Appena son riuscito a farlo....ho installato ado e lavorato
disconnesso
Ho scritto più codice ma diminuito sensibilmente le bottiglie di malox
consumate:
Funzioni
VisualizzaDati
CancellaDati
SalvaDati
RicercaDati
e un po di funzioni di supporto per collegare db e creare sql
Il metodo è semplice
Connessione da codice....invio sql....recupero dati che sono
visualizzati da VisualizzaDati....cambia un campo? La disposizione? La
visualizzazione?(ad esempio da textbox...diventa un listbox...o una
sottomaschera collegata?)...intervieni solo qui!(e i miei ricercatori
mi cambiavano spesso le visualizzazioni)
Lo stesso serve un campo in più?
(avevo fatto una utility stupida...un command che eseguiva una "alter
table")
lo crei....e aggiorni le funzioni!
Se poi anche le form le fai disegnare dal programma...hai la
parametrizzazione COMPLETA della tua applicazione!
Ed è utilissimo ed IMPAGABILE avere access come file config per
disegnare le tue form! (ora con 
vb.net
 è un file xml....io lo facevo
già qualche hanno fà usando access)
E stravolgere tutta la visualizzazione diventa una cosa possibile
anche da una apprendista che mandi dal tuo cliente!
Prendili come spunti...