Newsgroup: it.comp.lang.visual-basic
Titolo: Problema lettura record da DB

Ciao,
sempre in vb6;
ho un db access contenente una table cosě composta:
numerotreno|orapartenza|oraarrivo|localitapartenza|localitaarrivo
Ok,
ora, ho creato una form in cui si deve inserire il numero treno; al
click su un pulsante si apre un'altra form in cui vengono visualizzate
tutte le info.
Private Sub Form_Load()
 
 
    Dim StrSQL As String
    Dim DBase As DAO.Database
    Dim RecSet1 As DAO.Recordset
 
    StrSQL = "SELECT * FROM TRENI ORDER BY NUMEROTRENO"
    Set DBase = OpenDatabase("treni.mdb")
    Set RecSet1 = DBase.OpenRecordset(StrSQL)
 
    CTreno = RecSet1.Fields("NUMEROTRENO")
    COraPartenza = RecSet1.Fields("ORAPARTENZA")
    COraArrivo = RecSet1.Fields("ORAARRIVO")
    CDa = RecSet1.Fields("LOCALITAPARTENZA")
    CA = RecSet1.Fields("LOCALITAARRIVO")
 
End Sub
Con questo codice mi appare sempre il primo treno nella tabella,
qualsiasi numero io inserisca (anche se quel treno non esiste).
Ovviamente succede questo perchč non ho imposto nessuna condizione
WHERE nella query SQL.
Se invece uso questo codice:
Private Sub Form_Load()
 
 
    Dim StrSQL As String
    Dim DBase As DAO.Database
    Dim RecSet1 As DAO.Recordset
    Dim Treno2 As Integer
 
    Treno2 = FInizio.CTreno
    StrSQL = "SELECT * FROM TRENI WHERE NUMEROTRENO = '1' ORDER BY
NUMEROTRENO"    Set DBase = OpenDatabase("treni.mdb")
    Set RecSet1 = DBase.OpenRecordset(StrSQL)
 
    'RecSet1.MoveFirst
    CTreno = RecSet1.Fields("NUMEROTRENO")
    COraPartenza = RecSet1.Fields("ORAPARTENZA")
    COraArrivo = RecSet1.Fields("ORAARRIVO")
    CDa = RecSet1.Fields("LOCALITAPARTENZA")
    CA = RecSet1.Fields("LOCALITAARRIVO")
 
End Sub
Mi da errore sulla query ma non capisco dove possa essere l'errore.
Ciao, Marco.
 
-- 
I'm using an evaluation license of nemo since 106 days.
You should really try it!
http://www.malcom-mac.com/nemo

 Mi da errore sulla query ma non capisco dove possa essere l'errore.
Prima di tutto bisognerebbe sapere qual è l'errore.
Sarà mica che la colonna NUMEROTRENO è un numero e non una stringa e quindi 
non vuole gli apicelli?
Ciao 

 wrote:
No scusa, ho sbagliato il codice:
Private Sub Form_Load()
Dim StrSQL As String
Dim DBase As DAO.Database
Dim RecSet1 As DAO.Recordset
Dim Treno2 As Integer
Treno2 = FInizio.CTreno
StrSQL = "SELECT * FROM TRENI WHERE NUMEROTRENO = Treno2 ORDER BY
NUMEROTRENO"
Set DBase = OpenDatabase("treni.mdb")
Set RecSet1 = DBase.OpenRecordset(StrSQL)
CTreno = RecSet1.Fields("NUMEROTRENO")
COraPartenza = RecSet1.Fields("ORAPARTENZA")
COraArrivo = RecSet1.Fields("ORAARRIVO")
CDa = RecSet1.Fields("LOCALITAPARTENZA")
CA = RecSet1.Fields("LOCALITAARRIVO")
End Sub
Io la query SQL la devo fare basandomi sul numero inserito;
e poi come faccio a controllare che il numero inserito esista nel db?
Grazie.
Ciao!


 NUMEROTRENO"
...
spulciato al volo
il treno2 che metti nella istruzione sql, dato che e' dentro gli apici,
non e' una variable, ma proprio la strings "Treno2".
dovresti fare :
StrSQL = "Select * from treni where numerotreno = " & treno2 % " order
by... "
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 wrote:
Dimenticavo, l'errore è 3061, parametri insufficienti! ;-)


 by... "
Facciamo
StrSQL = "Select * from treni where numerotreno = " & Str(treno2) & " 
Order by... "
e siamo anche più sereni...
Alberto
-- 
Max Beerbohm: Tutto ciò che è degno di essere fatto è stato fatto 
ripetutamente. Dalle cose mai fatte bisognerebbe tenersi, sospetto, 
molto alla larga.

 Order by... "
...
Veramente non avevo pensato proprio all' Str()



wrote:
Sono riuscito a risolvere il problema del record non esistente
all'interno del DB;ora ho un altro "problema".
Il form principale del programma ha una textbox in cui bisogna
inserire il numero del treno ed un bottone; cliccando sul bottone si
apre un secondo form in cui appaiono le info su quel treno...ok!
Problema: se inserisco un numero treno non esistente nel DB mi appare
la msgbox ma poi mi apre lo stesso il form con le info (ovviamente con
tutti i campi vuoti), perņ non deve aprirsi.
Il form io lo faccio aprire quando si clicca sul bottone (che si trova
nel form iniziale) con un semplice FInfo.show
Come risolvo?
Grazie.
Ciao!
 
-- 
I'm using an evaluation license of nemo since 107 days.


 la msgbox 
...
Quale msgbox?
Hai messo una msgboX che avverte che il treno non e' stato trovato?
Se si, come e dove l'hai messa... a volte basta un Exit Sub per risolvere


  Hai messo una msgboX che avverte che il treno non e' stato trovato?
Esatto,
ho fatto 
if RecSet1.EOF then
	MssBox "Il treno non esiste"
else
..
end if


 end if
...
e dove hai messo l'istruzione che mostra il form dei dettagli dei treni?
