Hur söker man i en databas med Find() och Seek() och vilken funktion ska man använda när? Hej Nu använder jag mig inte av någon Data-kontroll så hur ska jag då skriva en sökfunktion med Find? Hej denna kod snutt öppnar databasen och kör ett rs. Hej Nu råkar det vara så att rs.FindFirst och rs.NoMatch inte finns. Hur ska man då skriva sökfunktionen? Hej Igen Läs och begrunda Jag har deklarerat mitt RecordSet som ett ADODB.RecordSet-objekt men även om jag deklarerar ett recordset så här: Dim rs As RecordSet finns det ändå igen FindFirst och NoMatch. Varför? Hej Finns det nån artikel här om DAO eller skulle någon kunna ge ett kodexempel på hur man ansluter till en databas med DAO då?Sökning i databas
/ PeterSv: Sökning i databas
Exempel Find, Du har en DataKontroll eller ett Recordset.
Dim criteria As String
criteria = "EFTERNAMN LIKE 'Persson'"
Data1.Recordset.FindFirst criteria
Do until Data1.NoMatch
Data1.Recordset.FindNext
Loop
Kommer att hitta alla som ligger i Fält EFTERNAMN och heter Persson
SEEK kan du bara använda om du gjort TableDef.
IDperson = 155
Ex.TBLAdressBok.Seek "=", IDperson
Kommer att hitta rad som har IDperson 155
Tycker att du kan glömma SEEK det är bättre att skriva ett SQL
mvh
SvenSv: Sökning i databas
/ PeterSv: Sökning i databas
Funkar för Access och DAO
Dim dbs as database
Dim rs as recordset
'LblData är sökvägen till databasen du kan ev använda dig av App.Paht
'om databasen ligger i samma katalog som programmet
Set db = OpenDatabase(LBlData2.Caption, False)
Set rs = dbs.OpenRecordset("select ID, Förnamn, Efternamn from TeleAdress WHERE Förnamn LIKE '" & Text1(=).Text & "*'", dbOpenSnapshot)
' Adderar posterna till textboxar
Text1(1).Text = rs.Fields("Id").Value & vbNullString
Text1(2).Text = rs.Fields("Förnamn").Value & vbNullString
Text1(3).Text = rs.Fields("Efternamn").Value & vbNullString
rs.MoveNext
rs.close
set rs=nothing
dbs.close
Set dbs = nothingSv: Sökning i databas
Eftersom han frågar om Find så är det väl det man bör svara på Eller ??.
Dim criteria As String
criteria = "EFTERNAMN LIKE 'Persson'"
MyRs.FindFirst criteria
Do until MyRs.NoMatch
MyRs.FindNext
Loop
Dvs MyRs är det recordset du har deklarerat någonstans
Ex. Dim MyRs As Recordset
DSSv: Sökning i databas
/ PeterSv: Sökning i databas
På min dator är det inga problem här ett exempel som
jag kör i ett av mina prog.
Dim DbBas As Database
Dim rs As Recordset
Set DbBas = OpenDatabase(PathFondData)
Set rs = DbBas.OpenRecordset("FONDDATA", dbOpenDynaset)
rs.FindFirst ("KontoId = " & EdId)
Eftersom du frågar efter Find så är det väl det du vill ha svar på ?
SvenSv: Sökning i databas
FindFirst, FindLast, FindNext, FindPrevious Methods Example (MDB)
The following example creates a dynaset-type Recordset object and then uses the FindFirst method to locate the first record satisfying the specified criteria. The procedure then finds the remaining records that satisfy the criteria.
Sub FindRecord()
Dim dbs As Database, rst As Recordset
Dim strCriteria As String
' Return reference to current database.
Set dbs = CurrentDb
' Define search criteria.
strCriteria = "[ShipCountry] = 'UK' And " _
& "[OrderDate] >= #1-1-95#"
' Create a dynaset-type Recordset object based on Orders table.
Set rst = dbs.OpenRecordset("Orders", dbOpenDynaset)
' Find first matching record.
rst.FindFirst strCriteria
' Check if record is found.
If rst.NoMatch Then
MsgBox "No record found."
Else
' Find other matching records.
Do Until rst.NoMatch
Debug.Print rst!ShipCountry; " "; rst!OrderDate
rst.FindNext strCriteria
Loop
End If
rst.Close
Set dbs = Nothing
End Sub
DSSv: Sökning i databas
/ PeterSv: Sökning i databas
Har aldrig testat ADO förstår överhuvdtaget inte varför man
använder ADO när man kör mot Access . mdb.
Typiska MS grejer DAO 360 är optimalt när man kör .mdb
Tycker
Sven
som lägger av denna tråd.Sv: Sökning i databas