Oppure

Loading
19/05/09 17:55
satriano
Buonasera
Scusate il titolo strano del topic ma non ho saputo fare meglio.

Ho una piccola database access con i 2 campi:
VALORE (numerico)
TESTO (text)
Ho un centinaio di records.

Su un form ho:
un controllo DATA collegato al database tramite databasename
Text1.text collegato al field WAARDE del database
TEXT2.text collegato al field TESTO del database.

La mia domanda é:

E’ possibile, inserendo manualmente nel text1.text un valore, per esempio 25
far visualizzare automaticamente il contenuto del field TESTO in text2.text del record corrispondente?
Se si, con quale sintassi da scrivere per Text1.text ?

Grazie infinite
satriano
Ultima modifica effettuata da satriano 19/05/09 17:57
aaa
19/05/09 18:20
marco_grillo
Buonasera...
a prescindere dal fatto che non capisco il field WAARDE del database passiamo al codice.

Ipotizziamo che inserendo un valore nella text1 premiamo un bottone per avviare la ricerca:

sottointendiamo la parte di accesso al database
Private Sub Command1_Click()
While rs.EOF = False
    If rs("WAARDE").Value = val(text1.text) Then
       text2.text=rs("TESTO").value
    end if
    rs.MoveNext
Wend
End Sub


Ovviamente avrai problemi nella visualizzazione del contenuto di text2.text se qualora nel campo WAARDE avessi uguale il contenuto di text1.text. Per farti un esempio:
Se nel tuo database hai i seguenti valori:
WAARDE: 25 TESTO: prova 1
WAARDE: 13 TESTO: prova 2
WAARDE: 25 TESTO: prova 3

e se cerchi il valore 25 nella text2 avrai come valore prova 3, cioè l ultimo valore dei record che hai nel database. Io ti consiglio per evitare ciò di sostituire la seconda textbox con una listbox, avendo kos l'elenco completo di tutti i tuoi valori corrispondenti al paramento di ricerca.

Il codice nel caso in cui volessi utilizzare la listbox è:

Private Sub Command1_Click()
While rs.EOF = False
    If rs("WAARDE").Value = val(text1.text) Then
       list1.additem rs("TESTO").value
    end if
    rs.MoveNext
Wend
End Sub


Beh... spero d essere stato chiaro ma ovviamente per qualsiasi dubbio non esitarmi nel chiedere spiegazioni.. a presto, ciao
Ultima modifica effettuata da marco_grillo 19/05/09 18:21
aaa
19/05/09 18:31
satriano
Ciao marco grillo

Ti ringarzio della risposta
Scusa la la parola WAARDE in realtà volevo scrivere VALORE

Provero' il tuo suggerimento e ti faccio sapere.
Spero soltanto che il tuo esempio funziono, in quanto io sto usando
(ancora) Vb6 !!

ti faccio sapere

satriano
aaa
19/05/09 18:42
marco_grillo
immaginavo ke fosse VALORE ;)

Comunque il codice da me postato è in vb6!

Se hai problemi kiedi pure :k:
aaa
19/05/09 18:42
satriano
Ho appena provato ma ricevo errore 424, objet required
riferito al rigo

While rs.EOF = False

grazie

ps.non credo abbia fatto qualcosa di sbagliato nel database o nel collegamento in quanto se uso il database SOLTANTO con il controllo DATA i dati vengono visualizzati correttamente net textbox.
Ultima modifica effettuata da satriano 19/05/09 18:57
aaa
19/05/09 18:57
marco_grillo
oggetto mancate...!!!

Per connettermi al database io faccio:

Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
Dim strConnection As String

strPercorsoDB = App.Path & "\nomedatabase.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 nometabella", cn, 1

While rs.EOF = False
     istruzioni precedenti
Wend


Usi questa sequenza di codice per connetterti al database??
aaa
19/05/09 19:05
satriano
No in quanto , come detto io uso il metodo vecchio con DATA !
quindi io il collegamento lo faccio non da codice ma tramite le proprietà
del controllo DATA.

Non uso e non so usare ADO o DAO
aaa
19/05/09 19:15
marco_grillo
beh... cerca d usare le ADO o DAO sn molto + efficaci...
aaa