Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Ciao, sn d nuovo Jack...ho un altro problema xò cn i database,in specifico x la ricerca d una parola...
Ho fatto il collegamento tra Database e visualBasic...Ho inserito i vari command,cm ad esempio,"AggiungiRecord","ModificaRecord",EliminaRecord", ora vorrei fare il commandbutton x la ricerca...cioè:
La ricerca mi deve trovare una parola...
Ad Es Database:
Parola(CampoDat): Traduzione(CampoDat):
1)Open Aperto
2)Close Chiuso
(ecc. altre parole nei vari campi)
Allora la ricerca un volta trovata la parola mi deve visualizzare la sua traduzione in una textBox...
Allora nel Database c sn sl due campi e cioé, uno(ParolaInglese) dv c sn tutte le parole in inglese
e l'altro campo(Traduzione) cioè la corrispondente traduzione della parola in inglese...questo è il database...In visual Basic 6,invece,dp aver fatto il collegamento e aver aggiunto i vari commandbutton necessari...mi serve un altro command x la ricerca,
cioé,dp aver inserito la parola in inglese cn l'istruzione: "InputBox" mi deve dare in una textbox la sua traduzione...Capito?
Cioè se cerco ad Es: Mother, nella textbox mi visualizzare "Mamma"...Ok?
FindFirst,FindLast,FindNext,FindPrevious (Individuano il primo, l'ultimo, il successivo o il precedente record in un oggetto Recordset di tipo dynaset o di tipo snapshot che soddisfa i criteri specificati e lo rendono il record corrente.
Parti della funzione:
setdirecord :Variabile di oggetto che rappresenta un oggetto Recordset di tipo dynaset o snapshot esistente.
criteri :Tipo di dati String utilizzato per individuare il record come, ad esempio, la proposizione WHERE in un'istruzione SQL senza la parola WHERE.)
oppure seek (Individua in un oggetto Recordset di tipo tabella indicizzato il record che soddisfa i criteri specificati per l'indice corrente e rende tale record il record correntearee di lavoro di Microsoft Jet.
Parti della funzione:
setdirecord :Variabile di oggetto che si riferisce ad un oggetto Recordset di tipo tabella esistente che ha un indice definito come indicato dalla proprietà Index dell'oggetto Recordset.
confronto: Una delle seguenti espressioni stringa: <, <=, =, >=, o >.
chiave1, chiave2...chiave13: Uno o più valori corrispondenti ai campi nell'indice corrente dell'oggetto Recordset, come indicato nell'impostazione della proprietà Index dell'oggetto. È possibile utilizzare un massimo di 13 argomenti chiave)
...
Ultima modifica effettuata da Hacker il 02/03/2007 alle 16:04
ti riporto gli esempi presi da MSDN per l'utilizzo di queste due funzioni:
Esempio del metodo Seek
Nel seguente esempio viene utilizzato il metodo Seek consentendo all'utente di ricercare un prodotto in base ad un numero identificativo (ID).
Sub SeekX()
Dim dbsNorthwind As Database
Dim rstProdotti As Recordset
Dim intPrimo As Integer
Dim intUltimo As Integer
Dim strMessaggio As String
Dim strRicerca As String
Dim varSegnalibro As Variant
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
' È necessario aprire un oggetto Recordset di tipo
' tabella per usare un indice e il metodo Seek.
Set rstProdotti = _
dbsNorthwind.OpenRecordset("Prodotti", dbOpenTable)
With rstProdotti
' Imposta l'indice.
.Index = "ChiavePrimaria"
' Ottiene i numeri ID massimi e minimi.
.MoveLast
intUltimo = !IDProdotto
.MoveFirst
intPrimo = !IDProdotto
Do While True
' Visualizza le informazioni sul record
' corrente e chiede all'utente il numero ID.
strMessaggio = "ID Prodotto: " & !IDProdotto & vbCr & _
"Nome: " & !NomeProdotto & vbCr & vbCr & _
"Immettere un ID prodotto tra " & intPrimo & _
" e " & intUltimo & "."
strRicerca = InputBox(strMessaggio)
If strRicerca = "" Then Exit Do
' Memorizza il segnalibro corrente nel caso in cui il metodo Seek non riesca.
varSegnalibro = .Bookmark
.Seek "=", Val(strRicerca)
' Ritorna al record corrente se il metodo Seek non riesce.
If .NoMatch Then
MsgBox "ID non trovato!"
.Bookmark = varSegnalibro
End If
Loop
.Close
End With
dbsNorthwind.Close
End Sub
Esempio di metodi FindFirst, FindLast, FindNext, FindPrevious
Nel seguente esempio vengono utilizzati i metodi FindFirst, FindLast, FindNext e FindPrevious per spostare il puntatore del record di un oggetto Recordset in base alla stringa di ricerca e il comando. Per eseguire la routine è necessaria la funzione TrovaQualsiasi.
Sub FindFirstX()
Dim dbsNorthwind As Database
Dim rstClienti As Recordset
Dim strPaese As String
Dim varSegnalibro As Variant
Dim strMessaggio As String
Dim intComando As Integer
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
Set rstClienti = dbsNorthwind.OpenRecordset( _
"SELECT NomeSocietà, Città, Paese " & _
"FROM Clienti ORDER BY NomeSocietà", _
dbOpenSnapshot)
Do While True
' L'utente immette e genera la stringa di ricerca.
strPaese = _
Trim(InputBox("Immettere paese per la ricerca."))
If strPaese = "" Then Exit Do
strPaese = "Paese = '" & strPaese & "'"
With rstClienti
' Riempie il set di record.
.MoveLast
' Trova il primo record richiesto dalla stringa
' di ricerca. Esce dal ciclo se non esiste un tale record.
.FindFirst strPaese
If .NoMatch Then
MsgBox "Nessun record trovato con " & _
strPaese & "."
Exit Do
End If
Do While True
' Memorizza il segnalibro del record corrente.
varSegnalibro = .Bookmark
' L'utente sceglie quale metodo utilizzare.
strMessaggio = "Società: " & !NomeSocietà & _
vbCr & "Posizione: " & !Città & ", " & _
!Paese & vbCr & vbCr & _
strPaese & vbCr & vbCr & _
"[1 - TrovaPrimo, 2 - TrovaUltimo, " & _
vbCr & "3 - TrovaSuccessivo, " & _
"4 - TrovaPrecedente]"
intComando = Val(Left(InputBox(strMessaggio), 1))
If intComando < 1 Or intComando > 4 Then Exit Do
' Utilizza il metodo Find selezionato. Se il metodo
' Find non riesce, ritorna all'ultimo record corrente.
If TrovaQualsiasi(intComando, rstClienti, _
strPaese) = False Then
.Bookmark = varSegnalibro
MsgBox "Nessuna corrispondenza—ritornare a " & _
"record corrente."
End If
Loop
End With
Exit Do
Loop
rstClienti.Close
dbsNorthwind.Close
End Sub
Function TrovaQualsiasi(intScelta As Integer, _
rstTemp As Recordset, _
strTrova As String) As Boolean
' Utilizza il metodo Find in base all'input dell'utente.
Select Case intScelta
Case 1
rstTemp.FindFirst strTrova
Case 2
rstTemp.FindLast strTrova
Case 3
rstTemp.FindNext strTrova
Case 4
rstTemp.FindPrevious strTrova
End Select
' Imposta il valore restituito in base alla proprietà NoMatch.
TrovaQualsiasi = IIf(rstTemp.NoMatch, False, True)
End Function
Dimmi se ti sono stati d'aiuto
Ultima modifica effettuata da Hacker il 03/03/2007 alle 16:46