Newsgroup: it.comp.lang.visual-basic
Titolo: Comando movenext per database MDB

Ciao a tutti,
ho bisogno di una mano: ho realizzato una form1 con diversi campi collegati
a un database semplicemente impostando un datacontrol
Ora ho assegnato a un bottone il seguente codice:
    Data1.Recordset.MoveFirst
    While Text1.Text <> ""
        MsgBox Text1.Text
        Data1.Recordset.MoveNext
    Wend
Purtroppo prima di emettere il MsgBox di vede che nella form i dati cambiano
a seconda del record visualizzato. io vorrei che invece scorrere tutti i
record con MsgBox ma senza che i dati di questi vengano aggiornati nella
Form.
Come si fa?
Spero di essermi spiegato bene.
Inoltre come si fa ha inserire una form in VB all'interno di un'altra form e
visualizzarla come il foglio dati di Microsoft ACCESS?
Insomma vorrei inserire la visualizzazione di una tabella, come si fa?
Ringrazio tutti in anticipo
Ciao da Emiliano

 Insomma vorrei inserire la visualizzazione di una tabella, come si fa?
prova ad usare il componente microsoft databound grid.
leggine le caratteristiche.


Ciao Paolo,
provo a spiegarmi meglio, quando premo le frecce del data1 i dati sulla form
vengono aggiornati di record in record. Lo stesso ovviamente succede se
imposto un bottone (magari chiamato "Prossimo-->") con il seguente codice:
    Data1.Recordset.MoveNext
Penso che fin qua sia semplice.
Io vorrei invece salvare ad esempio su un file di testo tutti i dati
memorizzati in uno specifico campo di una tabella del database.
Ho provato a fare questo con il seguente codice:
    Data1.Recordset.MoveFirst
    While Text1.Text <> ""
        MsgBox Text1.Text
        Data1.Recordset.MoveNext
    Wend
Purtroppo però al suo avvio (essendoci il codice Data1.Recordset.MoveNext)
si vedono tutti i dati a schermo che scorrono in velocità fino dal primo
all'ultimo record. Io vorrei invece una soluzione che mi salvi i dati dentro
il file di testo senza spostarsi di record in record.
Purtroppo non so da che parte iniziare...
Ciao
Emiliano
P.S. grazie per l'aiuto su databound grid

 Insomma vorrei inserire la visualizzazione di una tabella, come si fa?
Non ho capito: Il controllo data abbinato a un datagrid cosa fa?
In alternativa (vivamente consigliata), devi inserire una griglia (per
esempio MsFlexGrid) o una ListView e compilarla da codice. Sul web ci sono
milioni di esempi.
Il messaggio subliminale (ma non troppo) è questo:
Credo che toglierò ESP0DAMA dal Sito Comune e lo metterò in un Sito
Personale ... a pagamento. <eg>

 ha scritto nel messaggio
news:jKQob.393791$R32.13...@news2.tin.it...

     Data1.Recordset.MoveFirst  'questo va bene
     While Text1.Text <> ""         'questo sinceramente non capisco che ci
stia a fare!
         MsgBox Text1.Text          'come sopra!!!
         Data1.Recordset.MoveNext
     Wend
creati un recordset diverso da quello che associ ai controlli della tua form
    dim rs as recordset
    set rs =new recordset
lo apri caricandoci i dentro i dati che vuoi e poi
per scorrere il recordset dal primo all'ultimo record fai cosi:
rs.movefirst
while not rs.eof
    esegui_quello_che_ti_pare
    rs.movenext
wend
ora sostituisci esegui_quello_che_ti_pare con il quello che vuoi relizzare
scrivere su di un file:
1)apri un file in modalità "APPEND" e scrivici dentro il valore del record
corrente
2)chiudi il file
scrivere in una textbox:
1)textbox1.text=textbox1 & vbcrlf & valore_recordcorrente
Se cambi il record corrente del recordset associato ai controlli della form
e logico
che ti cambia tutto il contenuto della form
..se ho capito bene (non sei stato chiarissimo!)...altrimenti...pardon!

 P.S. grazie per l'aiuto su databound grid
cosi' non puoi. se scorri il controllo data, e' normale che i dati scorrano.
devi dichiarare un recordset con le stesse caratteristiche (index, order by,
quello che e') del controllo, e usare quello. qcosa come:
on error goto errman
dim fname as string, fnum as long
dim rs as [dao/adodb]recordset
set rs=db.openrecordset ' vedi tu che tipo di tabella apri
fname= app.path & "\rubrica.txt"
fnum=freefile
open fname for output as #fnum
with rs
    do while not .eof 'quando lo apri e' gia' sul rec1 (c'e' qualcosa)
        print #fnum, trim(!cognome) & " " & trim(!nome)
        .movenext
    loop
end with
close #fnum
exit sub
errman: close #fnum
ciao, j.

Ciao Gio,
ti ringrazio per i consiglio, veramente utili,
per quanto riguarda il mio codice, non ho inserito tutta la parte per
scrivere il file di testo che ho sostituito con MsgBox Text1.text in quanto
in questa casella (collegata al database) appariva la ragione sociale del
cliente. Quando Text1.text diventa vuoto voleva dire che i record erano
finiti.
Tuttavia per eseguire il mio programma, sto leggendo un manuale, ed ho
notato che ci sono diversi modi per utilizzare i database in VB: ADO DAO e
altri... almeno avessero usato delle sigle più distinguibili... sembra tutto
uguale!
In particolare, come scriverò nel mio prossimo post oltre che in questo
thread, nel mio programma vorrei inserire un tasto "Sfoglia..." dove
l'utente può di volta in volta scegliere quale file MDB utilizzare, il quale
potrebbe essere localizzato anche in un PC di rete...
Cosa mi consigli?
Leggendo il manuale ho utilizzato un Ado Data Control 6.0 il quale mi ha
fatto configurare una fonte dati ODBC...questo sistema però mi pare che non
permetta una semplice impostazione del percorso del file MDB, ma una
configurazione della fonte ODBC da effettuare su tutte le macchine da parte
di un tecnico un po' più esperto di un normale utente, la quale tra l'altro
va rifatta ogni qualvolta si voglia cambiare il file MDB da utilizzare
(anche se si potrebbe utilizzare un FileCopy comunque è da impostare la
fonte ODBC). C'è un'alternativa?
Grazie ancora.
Ciao
Emiliano

Grazie Lupo,
penso proprio di utilizzare MsFlexGrid per la visualizzazione della tabella.
Ciao
Emiliano