posso inserire il dato nel' inputbox, ma deve essere scritto per intero
Eh, perciò t'avevo posto la domanda.
Ad ogni modo per evidenziare una cella specifica della GridView potresti usare il combinato disposto delle seguenti funzione e proprietà (ne faccio appresso un semplice esempio):
Public Sub GridView1_GotFocus()
With GridView1
.MoveTo(1, 1)
.ShowCursor = True
End With
End
...insomma una cosa così:
Public Sub Form_Open()
With GridView1
.Columns.Count = 2
.Rows.Count = 2
End With
GridView1[0, 0].Text = "uno"
GridView1[0, 1].Text = "due"
GridView1[1, 0].Text = "tre"
GridView1[1, 1].Text = "quattro"
End
Public Sub GridView1_GotFocus()
Dim j, k As Byte
Dim s As String
s = InputBox("Immetti la parola da cercare:")
' Inizia il doppio ciclo per leggere tutte le celle della "GridView":
For j = 0 To 1
For k = 0 To 1
' Se il testo presente nella corrente cella è simile (non necessariamente identico)
' a quello immesso nell'InputBox per la ricerca....
If GridView1[j, k].Text Like s & "*" Then
'...allora ci si posiziona automaticamente nella corrente cella, la quale viene anche evidenziata...:
With GridView1
.MoveTo(j, k)
.ShowCursor = True
End With
'...e si esce quindi dal ciclo, perché abbiamo trovato la parola simile a quella immessa nell'InputBox:
Exit
Endif
Next
Next
End
in questo modo mi utilizza il primo carattere che inserisco da tastiera:
Public Sub GridView1_KeyPress()
Dim i As Integer
Dim valore As String
valore = Key.Text
For i = 0 To GridView1.Rows.Count - 1
If GridView1[i, 0].Text Like valore & "*" Then
Label9.text = "Trovato " & valore & " al record n° " & i 'verifico se mi ha trovato il record
With GridView1
.MoveTo(i, 0)
.ShowCursor = True
End With
GridView1.SetFocus
Endif
Next
End
è già un passo avanti.... :D ora sono un pò fuso!
credo di aver risolto :rolleyes:
Public valore As String
Public Sub GridView1_KeyPress()
Dim nomedb As String
Dim rscomuni As Result
Dim aprodb As New Connection
Dim sql As String
Dim iRow As String
Dim i As Integer
valore = valore & Key.Text ' aggiungo una lettera per volta
For i = 0 To GridView1.Rows.Count - 1
If GridView1[i, 0].Text Like valore Then
Label9.text = "Trovato " & valore & " al record n° " & i 'verifico se mi ha trovato il record
With GridView1
.MoveTo(i, 0)
.ShowCursor = True
End With
Endif
Next
If Key.code = Key.Return Then
nomedb = "Comuni"
With aprodb
.Type = "sqlite3"
.Host = Application.Path
End With
aprodb.Name = nomedb
aprodb.Open
iRow = GridView1.Row ' imposto iRow con il numero riga che ho cliccato
sql = "SELECT * FROM Comuni ORDER BY Comune" ' creo stringa per la query, seleziono tutti i record di rubrica
rscomuni = aprodb.Exec(sql) ' eseguo la query
If iRow <> -1 Then ' se il numero riga è diverso da -1 (cioè nullo) continuo
rscomuni.MoveTo(iRow) 'mi sposto nel record uguale al numero cliccato
TextBox5.Text = rscomuni!Comune ' riepio le caselle
TextBox6.Text = rscomuni!CAP
TextBox7.Text = rscomuni!SiglaProv
Endif
Catch
Message.Error(Error.Text)
Endif
End
è ancora da perfezionare ma può andare per il momento grazie a "Vuott" per i suggerimenti.