Oppure

Loading
22/05/09 14:01
satriano
salve
Questo problemino é un seguito di un topic risolto ( Mostra contenuto campo database tramite valore in textbox) di una settimana fa;

Infatto é stato risolto in quanto sono passato al controlo ADO invece del vecchio data.
Ok
Con il seguente codice viene mostrato dunque il contenuto di un campo database (NUMERO)
in un text2.box.
Questo dunque funziona. Il campo NUMERO é numerico e con doppia precisione.
Poi vi é il campo PATOLOGIA che contiene dei valori testo;
Ma il valore di NUMERO a volte é con dei decimali, per esempio 12,123. In questo caso
se il valore é intero mi viene mostrato il contenuto del record. Se il valore assegnato al record é Numero=12,123 Patologia=Mano non mi viene mostrato nulla, a causa della virgola.
nb. il valore con la virgola, se presente, é necessario, non posso eliminare la virgola.
Si puoi risolvere ?
grazie

Private Sub Command1_Click()
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
Dim strConnection As String

strPercorsoDB = App.Path & "\Aldo.mdb"
strConnection = "PROVIDER=MSDataShape;Data PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPercorsoDB & ";;Jet OLEDB:Database Password="
cn.Open (strConnection)
         
rs.Open "Select * FROM malattie", cn, 1
While rs.EOF = False
    If rs("Numero").Value = Val(Text1.Text) Then
       Text2.Text = rs("Patologia").Value
    End If
    rs.MoveNext
Wend

End Sub
Ultima modifica effettuata da satriano 22/05/09 14:04
aaa
22/05/09 14:11
theprogrammer
Sostituisci la Val con la CDbl
aaa
22/05/09 14:36
satriano
Purtroppo non va ancora,
pur sostituendo val con CDbl
aaa
22/05/09 14:42
theprogrammer
Postato originariamente da satriano:

Purtroppo non va ancora,
pur sostituendo val con CDbl


Cosa non va?

Fai un po' di debugging ... esegui passo passo il codice ed esamina il contenuto di ogni variabile e campo ... troverai il problema.
aaa
22/05/09 14:48
satriano
Non va nel senso che non mostra, digitando il valore con la virgola, il corrispondente testo.

ok faccio un po di debugging.

grazie
satriano
aaa
22/05/09 14:52
theprogrammer
Se Numero e' un campo di tipo stringa nel tuo db, prova a scrivere la If in questo modo

If CDbl(rs("Numero";).Value) = CDbl(Text1.Text) Then
Ultima modifica effettuata da theprogrammer 22/05/09 14:53
aaa
22/05/09 14:57
satriano
Ok, funziona !!
Il problema era:

Se il valore é 12,12 ma io inserisco solo 12,1 allora non mostra nulla.(infatti a 12,1 non corrisponde nulla)

E' necessario ovviamente che TUTTO il valore venga inserito, quindi 12,12 ed allora mostra il contenuto.
Ok

Grazie infinite per l'aiuto.
Funziona perfettamente !
aaa
22/05/09 15:58
marco_grillo
Hey satriano...
te l'avevo detto che ti non complicavi la vita nella maniera che ti dicevo... :k:

Bravo theprogrammer ;)

Alla prossima, ciao 8-)
aaa